
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、linux下arm處理器對16位fpga的訪問問題 有一個(gè)伴侶在調(diào)試arm和接口的時(shí)候遇到了一個(gè)驚奇的問題,向我尋求協(xié)助。 問題描述:arm用法s3c2440,fpga和arm的接口為16位,用法地址線,片選線為ncs3,操作系統(tǒng)用法linux-2.4測試程序?yàn)椋簍est.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函數(shù)舉行內(nèi)存映射;編譯辦法:arm-linux-gcc -o test test.c該程序在運(yùn)行的時(shí)候不能正確的向fpga的地址內(nèi)部寫入16位的shor類型,經(jīng)過規(guī)律分析儀觀看,發(fā)覺在向16位的地址空間寫入0x5678的
3、時(shí)候,事實(shí)上是向fpga內(nèi)部寫了兩次,一次是:0x5656,另外一次是0x7878;同理,當(dāng)寫0x1234的時(shí)候,也是分為兩次寫入的:一次是0x1212,另外一次是0x3434。假如將上述程序修改一下,在ads下挺直編譯運(yùn)行,程序能夠勝利。這解釋程序是沒有問題的,fpga對arm的接口時(shí)序也應(yīng)當(dāng)是沒有問題的。這讓我困窘不已。明明是一個(gè)16位的short類型,arm和fpga的接口也是16位的,為什么要分為兩次送入,看來是編譯器的問題,預(yù)備用法反匯編的工具看看源代碼。在ads下,可以挺直看到反匯編后的代碼,在linux下,發(fā)覺arm-linux-objdump工具也可以對目標(biāo)代碼舉行反匯編:使用
4、為arm-linux-objdump -d -t test >aa用法>aa重定向?qū)⑤敵鲂畔⒋蛴〉轿募校?41c: 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的命令將一個(gè)16位的數(shù)據(jù)分為兩個(gè)8bit的數(shù)據(jù)送出;strb命令
6、:從源寄存器將一個(gè)8bit的數(shù)據(jù)送到存儲器,該字節(jié)為源寄存器的低8位。問題找到了,如何將一個(gè)16位的數(shù)據(jù)一次性的輸出呢,在網(wǎng)絡(luò)搜尋了一下,發(fā)覺有一篇文章也談到了這個(gè)問題只要在編譯的時(shí)候指明-march=armv4選項(xiàng)即可:用法下面的指令重新編譯: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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣州工程技術(shù)職業(yè)學(xué)院《人力資源管理原著選讀雙語》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西航空職業(yè)技術(shù)學(xué)院《生物材料》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東現(xiàn)代學(xué)院《車載數(shù)字系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江工貿(mào)職業(yè)技術(shù)學(xué)院《寫意花鳥創(chuàng)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 克孜勒蘇職業(yè)技術(shù)學(xué)院《物理科學(xué)知識與教學(xué)能力》2023-2024學(xué)年第二學(xué)期期末試卷
- 河西學(xué)院《健美操三》2023-2024學(xué)年第二學(xué)期期末試卷
- 智慧城市公共服務(wù)設(shè)施的升級之路以智能垃圾桶為例
- 情緒智力與員工工作滿意度提升
- 沈陽北軟信息職業(yè)技術(shù)學(xué)院《足球教學(xué)與訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江工商大學(xué)《病理形態(tài)學(xué)診斷技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 《HSK標(biāo)準(zhǔn)教程1》課件
- 電大財(cái)務(wù)大數(shù)據(jù)分析編程作業(yè)3
- 諾貝爾生理學(xué)或醫(yī)學(xué)獎(jiǎng)史話智慧樹知到期末考試答案2024年
- 行業(yè)分析報(bào)告模板(很全面-非常有用)
- 內(nèi)分泌系統(tǒng)疾病教學(xué)設(shè)計(jì)教案1
- 法人變更書面催促通知合集3篇
- 廣東省初級中學(xué)教育裝備標(biāo)準(zhǔn)
- 售票員崗前培訓(xùn)
- 教科版六年級下冊科學(xué)第一單元《小小工程師》教材分析及全部教案(定稿;共7課時(shí))
- 2024屆北京市海淀區(qū)101中學(xué)語文八年級第二學(xué)期期末檢測試題含解析
- 國家自然科學(xué)基金申請經(jīng)驗(yàn)匯總課件
評論
0/150
提交評論