下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品微生物考试卷及答案
- 2025年中国电信寻甸分公司面向社会招聘渠道经理(外包人员)备考题库完整答案详解
- 职专生心理测试卷及答案
- 2025年嘉兴市经英人才发展服务有限公司城南分公司公开招聘劳务派遣人员备考题库及答案详解一套
- 3-3-Dimethylcyclohexanol-生命科学试剂-MCE
- 点亮视界·照耀前程强力巨彩“点亮备考题库”2026届全球校园招聘144人备考题库及参考答案详解1套
- 2025年黑龙江生态工程职业学院“黑龙江人才周”公开招聘事业编制工作人员6人备考题库及完整答案详解1套
- 2025年河池市金城江区东江镇卫生院会计岗位公开招聘备考题库及答案详解参考
- 阴极保护测试桩电流测试桩水泥测试桩绝缘接头测试桩
- 鄂尔多斯市金玉福制酒搬迁及升级改造项目环境影响报告表
- 2026年云南中烟工业有限责任公司毕业生招聘(502人)笔试考试参考试题及答案解析
- 2025江苏苏州大学劳务派遣制人员招聘3人(第五批)笔试考试参考试题及答案解析
- 海洋信息安全:大数据平台建设保障
- 炉底和炉墙砌筑分项工程质量检查评估表
- 2026年沈阳职业技术学院单招职业倾向性考试必刷测试卷带答案
- 2025年铁路专业基础知识考试题库(含答案)
- 2025年地面装饰工(地砖铺贴)考试试卷及答案
- 全媒体运营师培训
- 小学语文教师专业技术工作总结范文
- 外贸综合服务协议书
- 天桥养护施工方案
评论
0/150
提交评论