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.

[参考译文] TMS570LC4357:从引导加载程序跳转到应用程序时、操作系统未启动

Guru**** 2466550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1159243/tms570lc4357-os-not-started-when-jump-from-bootloader-to-application

器件型号:TMS570LC4357

我正在处理引导加载程序(BareMetal)和基于 SafeRTOS 的应用程序。  我将引导加载程序矢量表@地址0x00000000、应用程序矢量表@ 0x00020000。 在跳转到应用程序后、我能够找到我的矢量表并正确执行基本系统初始化。

一旦我启动调度程序(当我启动 portSTART_FIRST_TASK 时更具体)、它 就会卡住。  

下面是两者的链接器文件、供参考  

Bootloader 链接器

引导程序(X):origin=0x00000000 length=0x00000020 vfill =0xFFFF
FLASH0 (RX):origin=0x00000020 length=0x001FFFE0 vfill = 0xffffffff
FLASH1 (RX):origin=0x00200000 length=0x00200000 vfill = 0xffffffff
SRAM (rwx):origin=0x08002000 length=0x0002D000
栈(RW):origin=0x08000000 length=0x00002000

#应用  

引导程序(X):origin=0x00020000 length=0x00000080 vfill =0xffffffff
KERR_FUNC (RX):origin=0x00020080 length=0x0000ff80 vfill = 0xffffffff
FLASH0 (RX):origin=0x00030000 length=0x001F0000 vfill = 0xffffffff
FLASH1 (RX):origin=0x00220000 length=0x00200000 vfill = 0xffffffff
堆栈(RW):origin=0x08000000 length=0x00001800
KERR_DATA (RW):origin=0x08001800 length=0x00000800
RAM (RW):origin=0x08002000 length=0x0007E000

谢谢、

Aman

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

    尊敬的 Aman:

    RTOS 支持两种类型的任务: 特权任务和非特权任务。 特权任务可以访问整个存储器映射、但非特权任务只能访问其堆栈。  在非特权模式下运行的任务不能将自身设置为特权模式。

    您的任务是否访问 MPU 保护区域? 您可以在特权任务中尝试相同的操作吗?

    您还有另一篇关于同一个问题的文章、因此我将关闭这个。