IAR Embedded Workbench: Assembler case sensitive option is unset
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2010-08-11 2:07 AM
IAR Embedded Workbench: Assembler case sensitive option is unset
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2011-05-17 5:01 AM
Some more debugging that i have done on this..
My code is going to the main , from there if i step in many times then its not showing the Hard Fault exception , but when i just do go its showing that, i tried stepping in many times, but could not get the exception.
I am doing this excercise to optimize the code size of my project, i have already compiling the code size with optimization set to High, please let me know if there are any other methods in reducing the code size...
Thanks in Advance
Siva
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2011-05-17 5:01 AM
''if i step in many times then its not showing the Hard Fault exception , but when i just do go ... could not get the exception.''
That suggests a timing issue; which, in turn, suggests interrupts. Check for stack overflow, interrupt-related pointer issues, and interrupt-related buffer overrun vulnerabilities...A complex system designed from scratch never works and cannot be patched up to make it work.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2011-05-17 5:01 AM
One trick I do is set EVERY unused interrupt to a simple jump to itself. This is easier in assembly but still doable in C. (If your vector area is done in assembly make C++ ISR subroutines “C�?.) Then when things die I look at which vector was used, both stack pointers, find the 8-word ISR save block, find where my code was before it hit the fault and think.
IMHO RAM should be zeroed pre main. This helps debugging. Blocks of RAM that have been used are obvious.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2011-05-17 5:01 AM
Thanks for the replies, one interesting thing i am seeing in the map file generated.
These are the observations when the ''user symbols case sensitive'' option is checked and uncheked..
1) When Checked, i.e in the no issue case
Section Kind Address Size Object
------- ---- ------- ---- ------
''A1'': 0xec
.intvec ro code 0x08000000 0xec startup_stm32f10x_md.o [1]
- 0x080000ec 0xec
2) When UnChecked, i.e in case of hard fault exception issue
Section Kind Address Size Object
------- ---- ------- ---- ------
''A1'': 0x40
.intvec ro code 0x08000000 0x40 vector_table_M.o [4]
- 0x08000040 0x40
Wondering how the vector_table_M.s got attached in this case, and also when i keep break points in the stm32f10x_usb_it.c , debugger is showing as not valid.
Please let me know...
Thanks
Siva
