((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000这句话应该怎样理解呢?麻烦详细解释一下。。。

2019-07-20 18:05发布

*(vu32*)(0X20001000+4)这里为什么是中断向量入口地址,那里为什么+4(我知道起始地址长度是4个字节,但是怎么和0x20001000就加在一起了呢?),&0xFF000000这里的与操作是怎么执行的,最后怎么就出来0x08000000了,还有地址这个东西怎么理解比较好,他是不是代表的是一片内存的名字呢?问题有点多。。。请大神解释一下下。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
正点原子
1楼-- · 2019-07-20 19:23
串口接收过来的数据,是从:0X20001000开始存储的。
第一个4个字节是MSP地址,第二个4个字节,才是复位中断向量的入口地址。
&0xFF000000就是取最高8位。因为FLASH的地址范围是0X0800 0000开始的。这可以一定程度上确保地址范围正常。
满满VS犬夜叉
2楼-- · 2019-07-20 20:10
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-20 23:31
回复【3楼】满满VS犬夜叉:
---------------------------------
说明你FLASH_APP2_ADDR+4里面存放的数据有问题。
满满VS犬夜叉
4楼-- · 2019-07-21 01:27
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-21 03:24
回复【5楼】满满VS犬夜叉:
---------------------------------
关键要看你写入正常没有
满满VS犬夜叉
6楼-- · 2019-07-21 06:27
回复【6楼】正点原子:
---------------------------------
好的,我再找找原因。

一周热门 更多>