下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、linux下arm處理器對(duì)16位fpga的訪問問題 有一個(gè)伴侶在調(diào)試arm和接口的時(shí)候遇到了一個(gè)驚奇的問題,向我尋求協(xié)助。 問題描述:arm用法s3c2440,fpga和arm的接口為16位,用法地址線,片選線為ncs3,操作系統(tǒng)用法linux-2.4測(cè)試程序?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下對(duì)不能對(duì)物理肯定地址舉行拜訪,需要用法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對(duì)arm的接口時(shí)序也應(yīng)當(dāng)是沒有問題的。這讓我困窘不已。明明是一個(gè)16位的short類型,arm和fpga的接口也是16位的,為什么要分為兩次送入,看來是編譯器的問題,預(yù)備用法反匯編的工具看看源代碼。在ads下,可以挺直看到反匯編后的代碼,在linux下,發(fā)覺arm-linux-objdump工具也可以對(duì)目標(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ù)送到存儲(chǔ)器,該字節(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 寵物寄養(yǎng)中心2025年度會(huì)員制寄養(yǎng)服務(wù)協(xié)議3篇
- 2025年度大米產(chǎn)業(yè)鏈上下游資源整合及供應(yīng)鏈管理服務(wù)合同3篇
- 2025年度航空運(yùn)輸租賃合同范本:全新合作協(xié)議3篇
- 二零二五年度新型木工次結(jié)構(gòu)建筑構(gòu)件加工與施工合同3篇
- 2025貨物采購(gòu)合同樣書
- 二零二五年度企業(yè)數(shù)字化轉(zhuǎn)型與客戶關(guān)系管理服務(wù)合同3篇
- 2025年度一手新房全款合同簡(jiǎn)易版(含智能家居)3篇
- 2025年度農(nóng)村土地置換項(xiàng)目合作協(xié)議書
- 二零二五年度熱處理設(shè)備生產(chǎn)與市場(chǎng)分析合同3篇
- 二零二五年度農(nóng)村危房改造回遷房買賣合同
- UV激光切割機(jī)市場(chǎng)需求分析報(bào)告
- 基于B-S結(jié)構(gòu)的績(jī)效考核管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的開題報(bào)告
- 駕駛員勞務(wù)派遣投標(biāo)方案
- 高三一本“臨界生”動(dòng)員會(huì)課件
- 神經(jīng)生物學(xué)復(fù)習(xí)知識(shí)點(diǎn)
- YY 0306-2023熱輻射類治療設(shè)備通用技術(shù)要求
- 中醫(yī)內(nèi)科學(xué)考試題庫(kù)及參考答案
- 建筑工程典型安全質(zhì)量事故案例分析及事故防治概要(大量案例)
- 吉林大學(xué)模板(經(jīng)典)課件
- 國(guó)開創(chuàng)業(yè)基礎(chǔ)期末筆試復(fù)習(xí)(含答案)
- 2023年軍事理論知識(shí)考試題(附含答案)
評(píng)論
0/150
提交評(píng)論