2010-08-11 02:07 AM
IAR Embedded Workbench: Assembler case sensitive option is unset
2011-05-17 05: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
2011-05-17 05: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...2011-05-17 05: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.2011-05-17 05: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