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

2019-07-20 18:05发布

*(vu32*)(0X20001000+4)这里为什么是中断向量入口地址,那里为什么+4(我知道起始地址长度是4个字节,但是怎么和0x20001000就加在一起了呢?),&0xFF000000这里的与操作是怎么执行的,最后怎么就出来0x08000000了,还有地址这个东西怎么理解比较好,他是不是代表的是一片内存的名字呢?问题有点多。。。请大神解释一下下。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
impeller
1楼-- · 2019-07-22 06:10
(*(vu32*)(0X20001000+4)) 的意思是绝对地址 0X20001000+4 这个地方放的是一个指针的地址!至于它指向哪,由内容决定。
ksi魔杰
2楼-- · 2019-07-22 06:39
civic7366 发表于 2016-11-10 18:29
哪翻的古文...差點看不懂哪裡少了*

原本版主再問說

明白了  谢谢前辈     一个是  地址里面的内容进行比较  一个是地址进行比较
genhao3
3楼-- · 2019-07-22 11:31
xiao55555 发表于 2016-8-28 14:31
原子哥,你好,你们讨论的这个问题我看了,但还是有点不明白,bin文件是不包含地址信息的,而0x0800 0000 ...

我觉得接收的bin文件中的内容第一个4个字节是MSP的地址0x200.....,第二个4个字节,是复位中断向量的入口地址0x0800....。

一周热门 更多>