> -----Original Message-----
> From:
> [email protected]
> [mailto:avr-gcc-list-bounces+eweddington=cso.atmel....@nongnu.
> org] On Behalf Of Radoslav Kolev
> Sent: Saturday, February 28, 2009 10:51 AM
> To: [email protected]
> Subject: [avr-gcc-list] just 2 bytes allocated for uint32_t?
>
>
> The problem is the compiler inlining functions more than once,
Known issue.
>
> char getch(void)
> {
> /* m8 */
> uint32_t count = 0;
> while(!(inb(UCSRA) & _BV(RXC))) {
> /* HACKME:: here is a good place to count times*/
> count++;
> if (count > MAX_TIME_COUNT)
> app_start();
> }
> return (inb(UDR));
> }
>
> The complete code is available here:
>
> When I changed the type of the count variable from uint32_t to
> unsigned long things started working correctly.
>
> But aren't uint32_t and unsigned long supposed to be the same and both
> 4 bytes long in this case?
>
Are you including <stdint.h> or <inttypes.h>?
And please stop using inb() and outb(). They have been removed from avr-libc
and are not necessary. Just use a regular assignment.
_______________________________________________
AVR-GCC-list mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list