高级会员

- 积分
- 529
- 金钱
- 529
- 注册时间
- 2015-7-21
- 在线时间
- 47 小时
|

楼主 |
发表于 2017-4-22 15:42:44
|
显示全部楼层
本帖最后由 流水若冰 于 2017-4-22 15:50 编辑
1. 不好意思 ,CompareBuffer函数抄错了
//比较两个数组的前nCount字节是否相等
u8 CompareBuffer(u8* pBuf1, u8* pBuf2, int nCount)
{
int i;
for(i = 0; i < nCount; i++)
{
if(pBuf1【i】!= pBuf2【i】)
return 0;
}
return 1;
}
2. C语言嵌入汇编语言时再keil环境下,和IAR环境时,有点不同,具体你可以参考原子哥的历程,他的就是Keil环境下作的我程序里的这个函数MSR_MSP(),被屏蔽掉的2句就是keil环境下的 你把后两句屏蔽掉,把前面2句打开试试void MSR_MSP(u32 addr)
{
//asm("MSR MSP, r0"); //使用Keil内嵌汇编时使用这两句
//asm("BX r14");
__ASM("msr msp, r0"); //set Main Stack value 将主堆栈地址保存到MSP寄存器(R13)中
__ASM("bx lr"); //跳转到lr中存放的地址处。bx是强制跳转指令 lr是连接寄存器,是STM32单片机的R14
}
|
|