裸机系列——IIS_DMA

本文总结了作者在裸机环境下调试IIS总线与DMA时遇到的五个问题,包括DMA物理地址的理解、串口发送接收十六进制数据、IIS无声音、J-Link调试与直接下载的差异以及声音杂音问题。作者通过自己的经验教训强调了注意编程细节、独立解决问题以及代码规范的重要性。
摘要由CSDN通过智能技术生成

s3c2440的IIS总线已经弄了好久,今天大概可以做个总结了吧,最近几天调试IIS弄了人有点疲惫,遇到了很多的问题,但是正是这些问题让我在成长。过多的情绪就不在表现了。进入今天的主题,IIS——DMA总结。

问题1、DMA物理地址

前面我调试DMA的时候也是调了好几天的DMA的UART通信一直得不到结果,后面上网搜了一些大概的信息,DMA需要传输时需要设置连续的物理地址,同时关于虚拟地址,物理地址,总线地址这些不明白,所以我就把#define buffer  ((volatile unsigned short *)0x55000010)这种绝对地址当做唯一的物理地址。后面因为直接给个我认为的物理地址后程序不好弄就没调试了。到现在我还不是很明白虚拟地址,总线地址的,但是我现在对DMA的一点理解就是,因为DMA的传输很快,所以一般系统下的驱动的时候需要分配一个缓冲池,因为使用缓冲的缘故所以DMA需要获得连续的物理地址(不知道对不对,懂得的朋友麻烦指出一下,谢谢)。但是我现在的经验是DMA传输可以使用全局数组,作为源地址的时候还可以是字符串常量(字符串常量因为是存放在内存的常量文字区,不能改变值,所以不能作为目的地址)。这里是作为裸机编程的经验。

问题2、串口无法发送接收十六进制数据

对于这个问题我犯下了一个很严重的问题,一开始不知道从自己的程序找问题,苦苦的去这里论坛里面,群里面和网上找答案。后面还因此换了一个串口调试助手,好悲!因为我之前调试过一段时间的串口,应该说也算弄了挺久的串口的吧,所以就很信任自己的程序,因为是接收数据然后再会送给串口助手,一直没有问题。但是因为我的串口中断没处理好,导致了串口无法发送十六进制

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值