We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
question 1: This is the original reset handler that is in the startup file (*.s)
Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT __main LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP
which i modify to
Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT OSInit IMPORT __main LDR R0, =SystemInit BLX R0 LDR R0, =OSInit BLX R0 LDR R0, =__main BX R0 ENDP
Here the OSInit is a function. This works fine.
But when i modify the original to following, I get a hard fault.
Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT main IMPORT OSInit LDR R0, =SystemInit BLX R0 LDR R0, =main BLX R0 ;getting hardfault here LDR R0, =OSInit BX R0 ENDP
Irrespective of whether the OSInit is a function or a task, i get Hardfault.
question 2: does the '__' (two underscores) before 'main' have any significance. Because when i write __OSInit, the compiler is unable to locate OSInit function (Error L6218E: undefined symbol). but for '__main' the function name is always 'main' and compiler locates it.
Per, Tamir, John, Andrew, Marcelle, Hans-Bernhard Thank you guys. The discussion was really awesome. :)
Marcelle, you got it correct. ...the OP has little real understaning of the C runtime startup sequence. If he learns about this he might find out what he can meaningfully do.Request all of you to give reference of good technical material, in case you know any (i m googling it already in the adjacent tab but your recommendations are priority).
Per, It is after this discussion, i came to know about the __main, scatter file, CRTL, etc. The idea _could_ have been better if you had owned the source code for the CRTL + the OS, allowing you to redesign the code for the changed use case. Is there any way to get source for CRTL + the OS? Would prefer the free one.
John, question, my thought is: Yes, and not only the procedures, but also the source code.where and How can i get the source code?