OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2449|回复: 2

IAP实验为什么要把接收缓存写到一个固定的地址?

[复制链接]

102

主题

318

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1876
金钱
1876
注册时间
2011-12-21
在线时间
545 小时
发表于 2018-6-29 11:50:36 | 显示全部楼层 |阅读模式
1金钱
如题,原子哥在做IAP实验的时候,定义一个接收缓存 u8 USART_RX_BUF[USART_REC_LEN] __attribute__ ((at(0X20001000)));
然后接收完成以后对此数组的内容进行判断         if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.


我的实验代码:
但是,如果不固定接收缓存的地址  unsigned char U1RxBuff[U1RxSIZE];
判断的时候直接根据数组首地址读取内容:        if(((*(vu32*)(U1RxBuff+4))&0xFF000000)==0x08000000)
这样写也是没有问题的。


我的问题是:原子哥为什么要固定接收缓存的位置,有什么好处,我的写法有没有不妥当地方?多谢!


最佳答案

查看完整内容[请看2#楼]

如果在sram运行,必须固定缓冲区。如果是更新到FLASH,可以像你这样搞。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-6-29 11:50:37 | 显示全部楼层
如果在sram运行,必须固定缓冲区。如果是更新到FLASH,可以像你这样搞。
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2018-7-3 16:03:47 | 显示全部楼层
正点原子 发表于 2018-6-29 11:50
如果在sram运行,必须固定缓冲区。如果是更新到FLASH,可以像你这样搞。

大多都会在flash里面吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 22:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表