IAP的例子里void iap_load_app(u32 appxaddr)函数中

2019-08-21 12:21发布

IAP的例子里void iap_load_app(u32 appxaddr)函数中if  (     (  (*(vu32*)appxaddr)&2FFE0000)==0X2000 0000  ) //检查栈顶地址是否合法
想问下&2FFE0000这个数字是什么含义,0x2000 0000大概是片上内存地址.
向大家请教了,在原子教你玩stm32(库函数版本)503面
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
正点原子
1楼-- · 2019-08-22 08:10
richthoffen 发表于 2017-4-16 18:31
从哪里可以知道0x8010000地址里存放的还是地址,这个知识点我不知道,麻烦你了.

你应该多百度。。。
richthoffen
2楼-- · 2019-08-22 12:31
szczyb1314 发表于 2017-4-16 10:17
*(vu32*)appxaddr具体是:
1.先将appxaddr强制类型转换为vu32类型的指针,
2.然后最前面的*是指这个指针 ...

http://www.openedv.com/forum.php ... &extra=page%3D1  想问下fwaddr+=2048;这里为什么是2048而不是1024,急切的想知道为什么,麻烦你了,谢谢
szczyb1314
3楼-- · 2019-08-22 16:34
32的flash是16位数据宽度的,一次写一扇区,一扇区1024个,但是fwaddr里面是8位数据,把两个8位凑成了一个16位写入的。所以地址偏移时是2048的
richthoffen
4楼-- · 2019-08-22 16:34
 精彩回答 2  元偷偷看……
szczyb1314
5楼-- · 2019-08-22 20:33
richthoffen 发表于 2017-4-17 20:13
1 按书上说的fwaddr+=2048; 偏移2048 16=2*8
我也觉得fwaddr地址指向的是8位数据,但是就是没看到u8 *fwa ...

fwaddr其实就是串口发送下去的bin文件的地址。串口发送的时候是一次1byte的就是8位的

一周热门 更多>