[HELP] Invalid address for created tasks
Description
As shown in the image, I'm encountering an issue where a task is located at address 0x000001E8, which is invalid for my board and causes NuttX to crash.
My base load address is 0x79100000 — you can confirm this from the register values in the top-right corner of the debugger view.
Could you clarify what this task is, what its role is, and where (in which file/function) it is created? More importantly, what might cause it to end up at this invalid address, and how can I ensure it gets a proper, valid address during initialization?
Verification
- [x] I have verified before submitting the report.
@emomaxd probably there is some issue with your chip port, these issues you are facing are not common on NuttX. Could you please print the dump of this crash? This way we could instruct you how to analyze it.
Please take a look at these links, maybe it could help you: https://nuttx.apache.org/docs/latest/debugging/cortexmhardfaults.html https://nuttx.apache.org/docs/latest/guides/armv7m_runtimestackcheck.html
@acassis, I don't have UART or console set up at the moment because my main goal is just to get the system to successfully reach the idle loop.
The crash I'm seeing is due to an invalid memory access — likely caused by a task being created with a bad address.
I suspect that something in nx_start() is responsible for creating that task, but I'm not sure which part exactly. Could you help me identify which config options or functions are responsible for task creation during the initialization phase, and particularly which one might be assigning those addresses?
Hi @acassis I think you could have enabled hook to create an initialization there during the nx_start() because normally only the idle thread and the nsh_main thread are suppose to be created.