>> From the error that I'm getting, below, I belive that __data_load_end
>> is only 16 bits wide?
>
> No, obviously it's wider:
>
>  0x0003c370   __data_load_start = LOADADDR (.data)
>  0x0003c378   __data_load_end = (__data_load_start + SIZEOF (.data))
>
> (That's from a map file.)

My map files has:
                0x0000ff22                __data_load_start = LOADADDR (.data)
                0x0000ffc0                __data_load_end =
(__data_load_start + SIZEOF (.data))

I'm not seeing how to deduce any particular width out of either of
those examples?

> Note that the linker has no notion of what C knows as a "type".  It
> only has symbols.

I'll dig out the linker manual and read up on this section.

> unless resorting straight to assembly:
>
> static inline uint32_t get_data_load_end(void)
...

Thank you.

_______________________________________________
AVR-libc-dev mailing list
AVR-libc-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-libc-dev

Reply via email to