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.
工具/软件:TI C/C++编译器
我们正在为 MSP432E 项目开发现场固件升级解决方案、其中通过 FTP 接收新固件映像、并将其存储在 MSP432E 可访问的本地文件系统中。 然后、MSP432E 将从文件系统中读取新映像并将其编程到闪存。 然后、我们希望利用"闪存镜像模式"在器件上的两个闪存映像之间切换。 几个问题:
我们使用的是 TI ARM 编译器 v18.12.3.LTS
提前感谢。
您好、rperezti、
查看 MSP432E4 SimpleLink Academy 实验 MSP432E4引导加载程序。 本实验中有一节将引导您完成运行 BSL 脚本程序以下载用于 TFTP 数据传输的引导加载程序所需的步骤。
我将查看您的第二个查询、并尽快返回给您。
BR、
成
以下是一些有关如何使用基于 TI-RTOS 的项目利用 MSP432E4闪存镜像模式的说明。
使用此功能的一种方法是在闪存的下半部分有一个程序(例如引导加载程序)、该程序会有条件地将执行切换到闪存的上半部分的程序。 以下是将其与基于 TI-RTOS 的程序结合使用的一种方法:
startup.resetFxn ="&my_reset";
void my_reset (void) { int32_t x; //在 PN1上使用 Beagle GPIO 检查 SW2 */ SysCtlPeripheralEnable (sysctl_Periph_GPION); GPIODirModeSet (GPIO_PORTN_BASE、GPIO_PIN_1、GPIO_DIR_MODE_IN); GPIOPINTYPE_INPORTN_BASE (GPIOPORTN_PHIN) GPIO_PIN_1); if (!(GPIOPinRead (GPIO_PORTN_BASE、GPIO_PIN_1)& GPIO_PIN_1) ){ /* Button SW2 pressed、SO 让我们运行镜像模式*/ x = HWREG (FLASH_CONF); x |= FLASH_CONF_FMME; HWREG (FLASH_CONF); x = nop (");asm (") else //禁用镜像模式*/ { x = HWREG (FLASH_CONF); x &&=~FLASH_CONF_FMME; HWREG (FLASH_CONF)= x; asm (" nop"); asm (" nop"); } }
部分 { 特殊用途:{ *(.text:xdc_runtime_Startup_reset__i)/*修复 XDC_runtime_Startup_reset__i 的地址*/ my_reset.obj (.text)/*修复 my_reset ()的 addr * TI/targets/arm/rtsarm/lib/boot.aem4f (.text)/*修复_c_int00的 addr *} > 0x00006000 //任意选择的偏移量*/ }
就是这样、您将能够通过在上电复位后将 GPIOPN1驱动为低电平或高电平来在两个映像之间切换。