主题中讨论的其他器件: UNIFLASH
大家好!
我将 msp430fr6043与 USS 模块一起使用。 我正在使用 cl430 (来自 ti-CGT-MSP430_21.6.1.LTS)通过以下标志进行编译/链接:
编译器:
CFLAGS += --define=__MSP430FR6043__ CFLAGS += --define=_MPU_ENABLE CFLAGS += --c99 CFLAGS += --silicon_version=mspx CFLAGS += --code_model=large CFLAGS += --data_model=large CFLAGS += --opt_level=4 CFLAGS += --opt_for_speed=1 CFLAGS += --use_hw_mpy=F5 CFLAGS += --compile_only CFLAGS += --printf_support=minimal CFLAGS += --diag_wrap=off CFLAGS += --display_error_number CFLAGS += --silicon_errata=CPU21 CFLAGS += --silicon_errata=CPU22 CFLAGS += --silicon_errata=CPU40 CFLAGS += --disable_interrupts_around_hw_mpy=on CFLAGS += --section_sizes=on CFLAGS += --obj_extension=.o CFLAGS += --obj_directory=$(BUILD_DIR)
连接器(也称为 cl430):
LDFLAGS += --silicon_version=mspx LDFLAGS += --silicon_errata=CPU21 LDFLAGS += --silicon_errata=CPU22 LDFLAGS += --silicon_errata=CPU40 LDFLAGS += --code_model=large LDFLAGS += --data_model=large LDFLAGS += --printf_support=minimal LDFLAGS += --run_linker # Next flags are linker flags LDFLAGS += --use_hw_mpy=f5 LDFLAGS += --heap_size=160 LDFLAGS += --stack_size=512 LDFLAGS += --cinit_hold_wdt=on LDFLAGS += --entry_point=_c_int00_noargs LDFLAGS += --section_sizes=on LDFLAGS += -m"$(PROJECT).map" LDFLAGS += -xml_link_info="$(PROJECT).xml"
我还要生成一个具有以下内容的.hex 文件:
hex430 --memwidth=8 --romwidth=8 --diag_wrap=off --intel project.elf -o project.hex
但我遇到了一些不同寻常的行为。
问题1:
- 在使用 mspdebug 加载*。elf 文件时、
- 程序启动
- 运行时间~1s
- 停止(无复位、无中断被调用)
- 在使用 mspdebug 加载*。elf 文件时、
- 程序启动
- 正常运行
- 在使用 uniflash 加载*。hex 文件时、
- 程序启动
- 正常运行
- 如果程序正在运行、且我通过按下和松开图中指示的
- 与(1.)相同
都是1。 和2. 处理同一个文件。 如果我使用同一文件对 MSP 4x 进行一行编程、有时为1. 触发、其他时间为2。 发生
问题2:
如果我将一个全局变量声明为:
const struct my_struct_t my_struct = {
&my_element_1,
&my_element_2,
&my_element_3
};
刷写程序后、存储在结构中的地址是正确的、但在下电上电后不正确。
似乎第二次未初始化存储器。
我认为这两个问题都是相关的、但我不知道我缺少什么...


