- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I want to use the EMIF. Since the EMIF is not part of the GCC default linker file, a custom linker file has to be created.
This document www.cypress.com/ describes the basics of linker file modification on page 28. Additionally, I found a example project here www.cypress.com/ in the last posting.
Now, my question is about initializing the variables located in external memory. According to the PDF document global and/or static initialized and zero initialized variables must reside in the .data/.bss sections, otherwise they're not initialized, even if they're explicitely initialized. To ensure variables are initialized, the AT keyword has to be used (see page 24).
Viewing the example project mentioned above shows that the linker file also has a SECTIONS entry for the EMIF with the AT keyword. The question is why it uses the AT if initialization is ignored? Or does it mean that only local variables can be initialized?
Regards,
Ralf
- Labels:
-
PSoC 5LP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello ,
I'll check internally with the Application Note authors and will get back to you.Thank you for the patience.
Thanks,
Hima
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi BMAH,
thank you for the link, my project is based on that example and AN89610. However, it doesn't state what really happens regarding initialization, etc. Maybe I'll connect a SRAM and look what happens...
Regards,
Ralf
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ralf,
As you said the variable is not initialized. I think you can skip the keyword "AT" as we are not initializing the EMIF variable. You can try modifying the .ld file as:
.EMIF_ASYNC : ALIGN(8)
{
*(.MY_EMIF_sect)
} >EMIF >rom
Regards
BMAH
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi BMAH,
we'll have to turn-around the question: it simply means that EMIF variables can't be initialized, right? The original question was if any EMIF variables, wether global or local, can be initialized?
Regards,
Ralf