迪文科技论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: wangxiaoqiang

【提问】看了sys_write_vp函数有些疑问

[复制链接]

0

主题

8

回帖

43

积分

新手上路

Rank: 1

积分
43
发表于 2024-9-6 11:57:18 | 显示全部楼层
我也遇到这样的问题了,这个说不清楚的话,整32位数据就会出问题
回复

使用道具 举报

1

主题

35

回帖

552

积分

高级会员

Rank: 4

积分
552
发表于 2024-9-6 14:00:51 | 显示全部楼层
本帖最后由 王文佳666 于 2024-9-6 14:10 编辑
精灵王 发表于 2024-9-6 11:57
我也遇到这样的问题了,这个说不清楚的话,整32位数据就会出问题

1、关于Sys_Write_Dgus写函数问题可以参考T5L ASIC应用开发指南关于内存映射的关系,如图

,大家阅读这个程序同时可以结合开发指南里面规定去阅读,这样就便于大家更好理解函数里面逻辑意思,其实T5L为了提高访问的速度,内核访问都是按32位对齐方式去读取的,我们平常操作DGUS变量地址时用这个Sys_Write_Dgus函数其实里面程序逻辑就是按这个开发指南要求写的,右移1位主要是寻址,比如DGUS变量地址是1000地址   1000/2=0x800这个是设计芯片时已经规定好了,所以开发时可以结合开发指南阅读这个程序,就比较好理解函数里面意思了,
2、至于DATA3和DATA2--DATA1和DATA0处理方式这个是按32位4个字节访问,比如我们Dgus地址的1000和1001地址这里是2个字,Dgus的1000变量地址属于(高16位,放DATA3和DATA2是存放到1000地址里面)-Dgus1001变量属于(低16位,放DATA1和DATA0是存放到1001地址里面),所以当设计这个函数时候就按照这个思路写的,这样函数里面就需要逻辑判断,我是将数据存放到高16位1000地址,还是存放到低16位1001里面,我是要操作哪个变量地址,所以当你逻辑程序按照思路去写了自然DATA的寻址就不一样,你看了开发指南基本就会明白这个函数用意了。
3、这个函数也可以进行32位运算的,你可以参考我们论坛视频教程,AD采集章节,这个里面有讲32位运算方式,参考 http://inforum.dwin.com.cn:20080 ... 3D1&_dsign=87a612af  这个链接资料。
4、建议写C51逻辑时需要看ASIC应用开发指南,这个里面讲了T5L OS核里面每一个外设详细介绍,大家在开发过程中问题疑惑,看别人代码以及函数看不明白时,都可以查阅这个开发指南资料,结合文档就明白意思了,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-9-17 11:15 , Processed in 0.043030 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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