EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
想必刚接触DSP的小伙伴们都会是从流水灯实验开始学习的。但是在学习的过程中肯定会遇到很多的问题,那么下面我就把我学习的过程记录下来,欢迎大家一起交流,共同进步。 1)万恶的开始 #define LedReg (*((volatile Uint16 *)0x41FF)) 学习过C语言的应该一定能够看懂这句话(我还是废话一点说明一下吧): (volatile Uint16 *)0x41FF这个的意思是将41FF这个地址强制的转换为不可更改的16位的int型地址,将这个地址以后作为LED的写入数据的地址; ((volatile Uint16 *)0x41FF)然后这个相当于最简单的指针p(就是我们刚接触C语言时候的指针*p里面的p); (*((volatile Uint16 *)0x41FF))这个就是一个完整的int型的16位指针了,其指向的是LED的地址,这个说的通俗一点就是C语言里面的*p=8,就是这个意思,这里的8就代表了以后LED的控制信号的所在的地方了。 2)关于cpld ![]()
其实LedReg (*((volatile Uint16 *)0x41FF))这句话所包含的真正的含义是先把地址映射到CPLD上,再通过CPLD的内部处理来控制LED的亮灭的。因为这里的地址是0x41ff,在进入CPLD之前,要减去这个存储单元的基地址(官方的例程是将这个写在了XINTF的ZONE0区域,这里的基地址就是0x4000),减去基地址之后就是0x01ff,那么再看上面的CPLD的地址输入端信号,是读取输入信号的高4位,送入到CPLD的立面进行对应外设的选择。至于CPLD的使用,楼主我没有找到相关的资料,如果大家有的话,欢迎大家分享。 这样大家能理解了么,文采不好,如果大家还有什么不明白的地方,欢迎评论交流。祝大家生活愉快。 大家可以举一反三的理解下28335的cpld的工作原理。 ![]()
DAC7725N是一个数模转换的模块,和DSP是通过一个CPLD相接的,可以看到CPLD就是起到了一个地址译码器的作用。 , k- s1 o: b# `
|