大家好、我对 TMS320F28379D 上的汇编代码有疑问。 我在示例项目名称"blinky_cpu01"上添加了代码。
主文件的代码如下所示
#include "F28x_Project.h"
extern void test_MOV();
uint32_t test_num = 1;
void main(void)
{
InitSysCtrl();
InitGpio();
GPIO_SetupPinMux(31, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(31, GPIO_OUTPUT, GPIO_PUSHPULL);
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
test_MOV();
for(;;)
{
GPIO_WritePin(31, 0);
DELAY_US(1000*500);
GPIO_WritePin(31, 1);
DELAY_US(1000*500);
}
}
"test_MOV ()"在另一个 asm 文件中定义、代码为
.ref _test_num
.def _test_MOV
_test_MOV:
MOV AR0, #_test_num
MOV AL, *AR0
MOV AR1, AL
LRETR
代码的函数应将 test_num (初始化时为1)移动到 AR1中。
但是、在运行该寄存器后、AR1为0、这不是预期的值。 请问您能给我一些关于这个问题的建议吗? 谢谢你

