工具/软件:TI C/C++编译器
我对 MSP430和 TI 编译器有一些问题。
1) 1) MSP430指令集中是否有"中断"指令?
当调试器被连接时、一个"中断"指令将作为一个断点、否则它将作为一个 NOP。
2) 2)对于 C 指令"A |= B;"和"A &=~B;"、编译器是否始终生成一条汇编器指令"BIS B、A"或"BIC B、A"?
如果情况并非总是如此,那么要尊重的限制是什么?
3)未记录的编译器选项“-vmspx”的用途是什么?
4)如何防止用常量对象的值替换其访问?
例如:
以下常量在 C 源代码中定义为0x10。
我们允许生产人员在启动固件之前更改 FRAM (或闪存)中的此值。
const unsigned char ProductionParameter = 0x10;
(笑声)
{
P1OUT &=~ProductionParameter;
调试 --opt_level=0 --opt_for_speed=0 //访问 const 对象:确定
D2C2 BIC.B &ProductionParameter、&P1OUT
C240
0202.
释放--opt_level=4 --opt_for_speed=5
const 对象被值~0x10取代、而生产值被忽略!
F2F0 和.B #0x00ef、&P1OUT
EF00
0202.
此致、Bernd