Thread 中讨论的其他器件:SysConfig、 controlSUITE、 C2000WARE
我解决了其中的一些问题、并认为我通过 E2E 帮助解决了这个问题:
但是、问题未解决、但该 TT 已标记为已解决、因此我将启动新线程。 如果这不是正确的协议、请原谅我。
我正在编写应用手册 SPRACN1、它基本上是通过读取单个 GPIO 引脚引导至 SCIA 的变体。 如果引脚为高电平、则选择 SCIA 引导。 为了测试操作、我有一个短程序、根据引导引脚状态调用复位和重新引导。 如果输入为低电平、程序会重复运行、如果为高电平、程序会停止运行、我将其推导为 SCIA 引导模式。 我在 SCIA 引脚上放置示波器探针并启动 serial_flash_programmer。 它正在发送'A'、但我的板没有响应(我使用 com 终端验证了端口)。 也许应用手册缺少一些内容、但我认为 Z2 OTP 设置正确、至少它显然会更改引导模式。 我最大的怀疑(Charles 之前建议的)是 OTP 地址不正确。
应用程序代码:
#include "driverlib.h" #include "device.h" #include "string.h" // Per SPRACN1 #pragma RETAIN(otp_z2_data) #pragma DATA_SECTION(otp_z2_data,"dcsm_zsel_z2_1"); const long otp_z2_data = 0x5AFFFF0F; #pragma RETAIN(otp_z2_data_2) #pragma DATA_SECTION(otp_z2_data_2,"dcsm_zsel_z2_2"); const long otp_z2_data_2 = 0xFFFF0103; // End SPRACN1 void setup(void); void scibFlush(void); void txb(char* s); void main(void) { uint32_t in = 0; setup(); txb("\r\nStart:"); GPIO_setDirectionMode(57U, GPIO_DIR_MODE_IN); in = GPIO_readPin(57U); txb(in == 1 ? "\nHi" : "\nLow"); //Write to SCI B and flush. SysCtl_resetDevice(); return 0; }
以下是链接 cmd 文件插入:
MEMORY { PAGE 0: DCSM_ZSEL_Z2_P0: origin = 0x078208, length = 0x000002 DCSM_ZSEL_Z2_P1: origin = 0x07820C, length = 0x000002 //DCSM_ZSEL_Z1_P0: origin = 0x07800C, length = 0x000002 //DCSM_ZSEL_Z1_P1: origin = 0x07801C, length = 0x000002 } SECTIONS { dcsm_zsel_z2_1 : > DCSM_ZSEL_Z2_P0, PAGE = 0 dcsm_zsel_z2_2 : > DCSM_ZSEL_Z2_P1, PAGE = 0 } MEMORY { ...