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.
工具/软件:Code Composer Studio
您好!
我们使用 SimpleLink MSP-EXP432E401Y LaunchPad 和 CCS 版本10 来探索在 MQTT 系统中使用 EXP432E401Y 的方法。 探索中包含的任务之一是能够升级现场固件。 我们的串行引导加载程序示例正在工作、现在正在尝试迁移 MQTT 示例、以便串行引导加载程序可以通过 BSL 工具安装该示例。 在查看 了 boot_serial_flash_App2_MSP_EXP432E401Y_nortos_CCS 示例之后、我们修改 了 MSP_EXP432E401Y_TIRTOS.cmd 链接器脚本 、如下所示(由 AMS 更改了荧光笔):
/*
*==== MSP_EXP432E401Y_TIRTOS。cmd ===
*定义 MSP_EXP432E401Y M4F 的存储器块开始/长度
*
--retain=interruptVectors //AMS
--stack_size=1024 // C 栈也用于 ISR 堆栈*/
#define APP_BASE 0x00004000 // AMS
HEAPSIZE = 0x20000;HeapMem 使用的堆缓冲区的大小*/
存储器
{
闪存(RX):origin = APP_BASE,length = 0x000FC000 // AMS
//FLASH (RX):origin = 0x00000000,length = 0x00100000
SRAM (rwx):origin = 0x20000000,length = 0x00040000
}
/*内存中的段分配*/
部分
{
.intvecs:> app_base // AMS
.text:> FLASH
.const:> FLASH
.rodata:> FLASH
.cinit:>闪存
.pinit:> FLASH
init_array:> FLASH
.TI.ramfunc:{} load=flash,run=SRAM,table (BINIT)
.data :> SRAM
.bss:> SRAM
.sysmem:> SRAM
/* HeapMem 使用的堆缓冲区*/
.priheap:{
_primary_heap_start__=.;
。 += HEAPSIZE;
__primary_heap_end__=.;
}> SRAM 对齐8
.stack:> SRAM (高)
}
当我们构建该文件时、我们会得到以下内容:
****项目 mqttclient_MSP_EXP432E401Y_tirtos_ccs 的配置调试构建****
"C:\\ti\\ccs1000\\ccs\\utils\bin\\gmake"-k -j 8 all -O
构建目标:"mqttclient_MSP_EXP432E401Y_tirtos_ccs.out"
调用:ARM 链接器
"c:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/bin/armcl /ti/simplelink_msp432e4_sdk_4_10_00_13/source /ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/lib -mv7M4 -code_state=16 --float_support=FPv4SPD16 -me --advice:power=none -g -diag_warning=225 --gen_warning=255 --diag_wrap=off --display_error_number --diag_func_msp=on -z -tag_warne-ex-m_ips"-"-tim_ips"-"_ipsection_ips"-"-tex_ips"-"-tex_trad_ips"-"-tex_trad_ips"-"-tex_ips"-"-tim_iptos_iptex-tex_iptos"-tex-tex-tos_iptex-tex-tex-tos_iptex-tex-tex-tex-401y"-tex_/ti/simplelink_msp432e4_sdk_4_10_00_13/kernel/tirtos/packages rom_model -o "mqttclient_MSP_EXP432E401Y_tirtos_ccs.out"../client_tirtos.obj "../mqttclients.obj"../mqttClients.obj "./mqtt_client_app.obj /syscfg/ti_net_config.obj "."./syscfg/ti_ndk_config.obj ""/content/textrl_rtos/crc/serial_br/ap.trad.s/rtos./ap.trl.trl./rtos/crc/rtc./rtc./rtc./rts.htm"/syscfg/ti_drivers_config.obj /r./ap_s/rts/sr.trl.trl_s/rtc./rts./rtc.obj "/sr.trl_s/rts./rts/rts./rts./r.trl_s/rtc./rts./rts./rts/rtc./rtc.obj "/sr.trl.cn/serial_ex/ap./ap.trl.trl./ap.trl./ap./ap.trl.cn/serial_ex/ap.trads.htm"/Users/Andrew
"C:/Users/Andrew Spencer/workspace_v10/tirtos_builds_MSP_EXP432E401Y_RELEASE_CCS/Debug/configPkg/linker.cmd"、第136行:警告#10096-D:指定的地址位于存储器映射之外
错误#10264:默认存储器范围与现有存储器范围闪存重叠
错误#10264:默认存储器范围与现有存储器范围 SRAM 重叠
错误#10010:链接期间遇到错误;未生成"mqttclient_MSP_EXP432E401Y_tirtos_ccs.out"
>>编译失败
Makefile:184:目标'mqttclient_MSP_EXP432E401Y_tirtos_ccs.out'的配方失败
gmake[1]:***[mqttclient_MSP_EXP432E401Y_tirtos_ccs.out]错误1.
gmake[1]:目标"辅助输出"不会由于错误而重新生成。
Makefile:177:目标“全部”的配方失败
gmake:***[全部]错误2.
****构建完成****
在 Google 上研究此错误时、其他人在其他产品和 CCS 的其他版本上看到了此问题、我们看到需要在另一个位置更改基址的引用、但我们很难看到这些修复如何应用于我们的示例。
我提前感谢您为解决此问题提供的任何帮助。
此致、Andrew Spencer
您开始使用的 mqttclient 示例基于 TI-RTOS、似乎您正在尝试将基于 RTOS 的链接器命令文件与基于非 RTOS 的命令文件混合使用。 在这2种情况下、中断矢量的位置不同、这就是导致冲突的原因。
在 TI-RTOS 项目中、生成的文件 Debug\configPkg\linker.cmd 将复位矢量绑定到地址0。 但您的链接器命令文件中不再定义地址0、因此会显示链接器错误消息。
我将把这个线程分配给 TI-RTOS 专家、以便他们指导您如何将 BIOS 中断矢量分配给特定地址。
Aartis、您好!
感谢您的更新。 我们期待 TI-RTOS 专家能告诉我们的信息。
此致、Andrew
您好!
有没有关于我们何时可能希望得到问题反馈的最新消息?
此致、Andrew
在等待之后、没有回听-我找到了问题的解决方案、如中所述
https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/816490
"在 TI-RTOS 依赖项工程( tirtos_builds_MSP_EXP432E401Y_RELEASE_CCS)中打开 release.cfg 文件 、并在变量 m3Hwi 初始化后立即添加以下行。"
1
|
m3Hwi.resetVectorAddress = 0x00004000; |
现在编译代码、我可以获取引导加载程序来安装它。 它在复位时执行。