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.
大家好、
我的客户正在使用 SCI 引导程序、计划根据 flashapi_ex2_sci_kernel 更改一些未成年人、并将其编程到闪存中作为自定义引导加载程序。
由于他们不熟悉主机软件的开发、因此我们正在研究能否利用 我们在 C2000WARE 中提供的 serial_flash_programmer。
在原始 serial_flash_programmer 中、我们需要首先将 MCU 置于 SCI 引导中、并在应用代码之后对 SCI 内核进行编程。
在我们当前的需求中、由于内核已经处于 CPU 中、因此我们只需要通过编程器对 app 进行编程。
serial_flash_programmer 是否支持此类操作?
此致、
布赖恩
您好、Brian、
serial_flash_programmer_appln 可执行文件支持器件上已存在的内核。 如果内核加载到该器件的闪存中、则可以使用 serial_flash_programr_appln.exe、这将绕过必须下载内核并为用户提供一组可使用的命令。
此致、
查理
尊敬的 Charles:
很好,我尝试了一些测试,这里有一些小问题。
我做了一个简单的 LED 闪烁测试、 从0X84000开始。
如果 先加载原始 SCI_kernal、 然后使用 PLN_FLASH_programmer_aperial 下载测试用例。 代码可以成功下载、但编程后、如果我选择运行在命令器链接器中、并且输入地址为0x80040000、则代码无法成功分支至0x84000。
但是,如果我在原始的 SCI_kernal 中做这个简单的修改,将 return ()更改为 LB 汇编命令。 然后我重复上述所有操作。 然后一切都能正常工作!
问题:
1.为什么 返回(EntryAddr)会 使 MCU 指向 EntryAddr 地址? 我不明白为什么从 C 语言的角度。
2.如果我需要使用 LB 命令,我怎么能 LB 到一个可变地址而不是一个固定的地址?
此致、
布赖恩
您好、Brian、
要回答您的问题、请执行以下操作:
返回(EntryAddr)对于 RUN_CPU1函数获取应用程序的入口地址并返回到 main 非常有用。 一旦我们返回到 flashapi_ex2_sci_kernel 文件、它应该具有与 LB '0x84000'相同的功能。
这就是为什么 return (EntryAddr)命令在问题1中很重要的原因,因为它允许 EntryAddr 更改。
谢谢。
查理