This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RM46L852:FreeRTOS + MPU -禁用 MPU 会使我崩溃

Guru**** 2343960 points
Other Parts Discussed in Thread: HALCOGEN
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1189212/rm46l852-freertos-mpu---disabling-mpu-makes-me-crash

器件型号:RM46L852
主题中讨论的其他器件:HALCOGEN

你好!

我正在尝试将我的 RM46与 FreeRTOS (halcogen)和 MPU 结合使用。

当前,当我尝试启动调度程序时, prvMpuDisable 函数会崩溃:我被卡在undefEntry中。

我的代码结束位置:

使我的代码在 portasm.asm 内崩溃的行

您是否有什么想法会导致这种情况?

其他信息:

这是我的 CCS 配置

这是故障发生后的系统寄存器导出

521177 13
R System_Registers_CP15_ID_CODE 0x0000000B 0x411FC143
R System_Registers_CP15_MAIN_ID 0x0000000B 0x411FC143
R System_Registers_CP15_CACHE_TYPE 0x0000000B 0x8003C003
R System_Registers_CP15_TCM_TYPE 0x0000000B 0x00010001
R System_Registers_CP15_MPU_TYPE 0x0000000B 0x00000C00
R System_Registers_CP15_MULTIPROCESSOR_ID 0x0000000B 0x00000000
R System_Registers_CP15_PROCESSOR_FEATURE_0 0x0000000B 0x00000131
R System_Registers_CP15_PROCESSOR_FEATURE_1 0x0000000B 0x00000001
R System_Registers_CP15_DEBUG_FEATURE_0 0x0000000B 0x00010400
R System_Registers_CP15_AUXILIARY_FEATURE_0 0x0000000B 0x00000000
R System_Registers_CP15_MEMORY_MODEL_FEATURE_0 0x0000000B 0x00210030
R System_Registers_CP15_MEMORY_MODEL_FEATURE_1 0x0000000B 0x00000000
R System_Registers_CP15_MEMORY_MODEL_FEATURE_2 0x0000000B 0x01200000
R System_Registers_CP15_MEMORY_MODEL_FEATURE_3 0x0000000B 0x00000011
R System_Registers_CP15_INSTRUCTION_SET_ATTRIBUTE_0 0x0000000B 0x01101111
R System_Registers_CP15_INSTRUCTION_SET_ATTRIBUTE_1 0x0000000B 0x13112111
R System_Registers_CP15_INSTRUCTION_SET_ATTRIBUTE_2 0x0000000B 0x21232131
R System_Registers_CP15_INSTRUCTION_SET_ATTRIBUTE_3 0x0000000B 0x01112131
R System_Registers_CP15_INSTRUCTION_SET_ATTRIBUTE_4 0x0000000B 0x00010142
R System_Registers_CP15_INSTRUCTION_SET_ATTRIBUTE_5 0x0000000B 0x00000000
R System_Registers_CP15_CURRENT_CACHE_SIZE_ID 0x0000000B 0xF003E019
R System_Registers_CP15_CURRENT_CACHE_LEVEL_ID 0x0000000B 0x09000000
R System_Registers_CP15_CACHE_SIZE_SELECTION 0x0000000B 0x00000000
R System_Registers_CP15_SYSTEM_CONTROL 0x0000000B 0x09E50878
R System_Registers_CP15_AUXILIARY_CONTROL 0x0000000B 0x0C0000A7
R System_Registers_CP15_COPROCESSOR_ACCESS 0x0000000B 0x00F00000
R System_Registers_CP15_DATA_FAULT_STATUS 0x0000000B 0x00000409
R System_Registers_CP15_INSTRUCTION_FAULT_STATUS 0x0000000B 0x00000000
R System_Registers_CP15_AUX_DATA_FAULT_STATUS 0x0000000B 0x00800000
R System_Registers_CP15_AUX_INSTRUCTION_FAULT_STATUS 0x0000000B 0x00000000
R System_Registers_CP15_DATA_FAULT_ADDRESS 0x0000000B 0x08000018
R System_Registers_CP15_INSTRUCTION_FAULT_ADDRESS 0x0000000B 0x00000000
R System_Registers_CP15_MPU_REGION_BASE_ADDRESS 0x0000000B 0x00000000
R System_Registers_CP15_MPU_REGION_SIZE_ENABLE 0x0000000B 0x00000000
R System_Registers_CP15_MPU_REGION_ACCESS 0x0000000B 0x00000000
R System_Registers_CP15_MPU_REGION_NUMBER 0x0000000B 0x00000000
R System_Registers_CP15_TCM_BTCM_REGION 0x0000000B 0x08000039
R System_Registers_CP15_TCM_ATCM_REGION 0x0000000B 0x00000039
R System_Registers_CP15_TCM_TCM_SELECTION 0x0000000B 0x00000000
R System_Registers_CP15_PERFORMANCE_MONITOR_CONTROL 0x0000000B 0x41141810
R System_Registers_CP15_COUNT_ENABLE_SET 0x0000000B 0x00000000
R System_Registers_CP15_COUNT_ENABLE_CLEAR 0x0000000B 0x00000000
R System_Registers_CP15_OVERFLOW_FLAG_STATUS 0x0000000B 0x00000000
R System_Registers_CP15_COUNTER_SELECTION 0x0000000B 0x00000000
R System_Registers_CP15_CYCLE_COUNT 0x0000000B 0x00000859
R System_Registers_CP15_EVENT_SELECTION 0x0000000B 0x00000000
R System_Registers_CP15_PERFORMANCE_MONITOR_COUNT 0x0000000B 0x00000000
R System_Registers_CP15_USER_ENABLE 0x0000000B 0x00000000
R System_Registers_CP15_INTERRUPT_ENABLE_SET 0x0000000B 0x00000000
R System_Registers_CP15_INTERRUPT_ENABLE_CLEAR 0x0000000B 0x00000000
R System_Registers_CP15_SLAVE_PORT_CONTROL 0x0000000B 0x00000000
R System_Registers_CP15_FCSE_PID 0x0000000B 0x00000000
R System_Registers_CP15_CONTEXT_ID 0x0000000B 0x00000000
R System_Registers_CP15_USER_READ_WRITE_THREAD_PROCESS_ID 0x0000000B 0x00000000
R System_Registers_CP15_USER_READ_ONLY_THREAD_PROCESS_ID 0x0000000B 0x00000000
R System_Registers_CP15_PRIVILEDGED_ONLY_THREAD_PROCESS_ID 0x0000000B 0x00000000
R System_Registers_CP15_SECONDARY_AUXILIARY_CONTROL 0x0000000B 0x00010002
R System_Registers_CP15_NVAL_IRQ_ENABLE_SET 0x0000000B 0x00000000
R System_Registers_CP15_NVAL_FIQ_ENABLE_SET 0x0000000B 0x00000000
R System_Registers_CP15_NVAL_RESET_ENABLE_SET 0x0000000B 0x00000000
R System_Registers_CP15_NVAL_DEBUG_REQUEST_ENABLE_SET 0x0000000B 0x00000000
R System_Registers_CP15_NVAL_IRQ_ENABLE_CLEAR 0x0000000B 0x00000000
R System_Registers_CP15_NVAL_FIQ_ENABLE_CLEAR 0x0000000B 0x00000000
R System_Registers_CP15_NVAL_RESET_ENABLE_CLEAR 0x0000000B 0x00000000
R System_Registers_CP15_NVAL_DEBUG_REQUEST_ENABLE_CLEAR 0x0000000B 0x00000000
R System_Registers_CP15_BUILD_OPTIONS_1 0x0000000B 0x08000000
R System_Registers_CP15_BUILD_OPTIONS_2 0x0000000B 0xBF1A4400
R System_Registers_CP15_CORRECTABLE_FAULT_LOCATION 0x0000000B 0x02000009

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Gabriel、

    我们现在正在处理您的问题、我们将很快提供更新。

    --

    谢谢、此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Gabriel、

    您能否提供代码以方便调试?

    --

    谢谢、此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Jagadish

    我刚才通过提高 xPortStartScheduler()函数中的权限来解决了我的问题。
    我认为访问 内核代码时需要它。 话虽如此、我不确定具体原因。  
    你有什么想法吗?

    此致、
    Gabriel
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Gabriel、

    让我检查一下。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Gabriel、

    由 RTOS 内核维护的数据 位于 RAM 区域中、只有在微控制器处于特权模式时才能访问该区域。

    有关更多详细信息、请浏览以下主题。

    (+) TMS570LS3137ZWT FreeRTOS MPU -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    --

    谢谢、此致、

    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Jagadish 的帮助。