下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、linux下arm处理器对16位fpga的访问问题 有一个伴侣在调试arm和接口的时候遇到了一个惊奇的问题,向我寻求协助。 问题描述:arm用法s3c2440,fpga和arm的接口为16位,用法地址线,片选线为ncs3,操作系统用法linux-2.4测试程序为:test.cdefine fpga_address 0x18000000int main( )unsigned char *sp;unsigned short mem;int memfd;memfd=open ("/dev/mem",o_rdwr);sp=(unsigned char *)mmap(0,10000,
2、prot_read|prot_write,map_shared,memfd,fpga_address);*(unsigned short*)(sp+0x20c)=0x5678;*(unsigned short*)(sp+0x20e)=0x1234;munmap(sp,10000);close(memfd);程序解释:由于linux下对不能对物理肯定地址举行拜访,需要用法mmap函数举行内存映射;编译办法:arm-linux-gcc -o test test.c该程序在运行的时候不能正确的向fpga的地址内部写入16位的shor类型,经过规律分析仪观看,发觉在向16位的地址空间写入0x5678的
3、时候,事实上是向fpga内部写了两次,一次是:0x5656,另外一次是0x7878;同理,当写0x1234的时候,也是分为两次写入的:一次是0x1212,另外一次是0x3434。假如将上述程序修改一下,在ads下挺直编译运行,程序能够胜利。这解释程序是没有问题的,fpga对arm的接口时序也应当是没有问题的。这让我困窘不已。明明是一个16位的short类型,arm和fpga的接口也是16位的,为什么要分为两次送入,看来是编译器的问题,预备用法反汇编的工具看看源代码。在ads下,可以挺直看到反汇编后的代码,在linux下,发觉arm-linux-objdump工具也可以对目标代码举行反汇编:使用
4、为arm-linux-objdump -d -t test >aa用法>aa重定向将输出信息打印到文件中:841c: e50b0010 str r0, fp, -168420: e3a03f83 mov r3, 524 ; 0x20c8424: e51b2010 ldr r2, fp, -168428: e0833002 add r3, r3, r2842c: e3a02078 mov r2, 120 ; 0x788430: e3a01056 mov r1, 86 ; 0x568434: e5c32000 strb r2, r38438: e5c31001 strb r1, r3,
5、 1843c: e3a03f83 mov r3, 524 ; 0x20c8440: e2833002 add r3, r3, 2 ; 0x28444: e51b2010 ldr r2, fp, -168448: e0833002 add r3, r3, r2844c: e3a02034 mov r2, 52 ; 0x348450: e3a01012 mov r1, 18 ; 0x128454: e5c32000 strb r2, r38458: e5c31001 strb r1, r3, 1通过反汇编,果真看到了用法了两条strb的命令将一个16位的数据分为两个8bit的数据送出;strb命令
6、:从源寄存器将一个8bit的数据送到存储器,该字节为源寄存器的低8位。问题找到了,如何将一个16位的数据一次性的输出呢,在网络搜寻了一下,发觉有一篇文章也谈到了这个问题只要在编译的时候指明-march=armv4选项即可:用法下面的指令重新编译:arm-linux-gcc -march=armv4 -o test test.c反汇编后得到的命令为:8494: e3a02c56 mov r2, 22016 ; 0x56008498: e2822078 add r2, r2, 120 ; 0x78849c: e1a01002 mov r1, r284a0: e1c310b0 strh r1, r384a4: e3a03f83 mov r3, 524 ; 0x20c84a8: e2833002 add r3, r3, 2 ; 0x284ac: e51b2010 ldr r2, fp, -1684b0: e0833002 add r3, r3, r284b4: e3a02c12 mov r2, 4608 ; 0x120084b8: e2822034 add r2, r2, 52 ; 0x34
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 样品仓库运营管理制度
- 万达招商运营管理制度
- 运营商绩效制度
- 园区运营规章制度
- 店铺运营与门店管理制度
- 仓库货架运营管理制度
- 游戏组织运营制度
- 运营部制度及流程
- 养老运营管理制度
- 信贷集中运营管理制度
- 箱涵预制、安装、现浇施工方案
- 2026届杭州高级中学高二上数学期末联考试题含解析
- 2026年陕西氢能产业发展有限公司所属单位社会公开招聘备考题库及1套参考答案详解
- 2026年及未来5年中国无取向硅钢片行业市场深度分析及发展趋势预测报告
- 弃土场规范规章制度
- 2026年水下机器人勘探报告及未来五至十年深海资源报告
- 专家解析:渲染,烘托等的区别课件
- 广州花城汇UUPARK招商手册
- 20S517 排水管道出水口
- (完整word)长沙胡博士工作室公益发布新加坡SM2考试物理全真模拟试卷(附答案解析)
- GB/T 6682-2008分析实验室用水规格和试验方法
评论
0/150
提交评论