建立工程,編輯源文件,把文件加入工程,設置工程屬性、編譯與鏈接選項,make!
Error : A1163E: Unknown opcode
vector.s line 14
14 00000020 Reset_Addr DCD Reset_Handler
。。。
全國人民再次震驚了,世界人民傻眼了。。。
我這次的的確確是在ADS的CodeWarrior中編輯的代碼~!為什么???為什么armassembler又不認識DCD了呢?
我一個字母一個字母的檢查,沒有發現錯誤。我狠狠地在出錯的代碼前后各敲了一次回車,確保正確換行,還是報錯。。。我去掉了Reset_Addr DCD Reset_Handler這條偽操作語句前面的Tab符號,神奇了??!居然不再對它報錯了~!!莫非上次也是這個Tab鍵在作怪,而讓我錯怪了vim編輯器?
ADS用它的固執再次向自卑的丑男和驕傲的傻妹證實了:好看有什么用?又不能當飯吃~!
天,我在語句前面加一個Tab符號,不過是想代碼看起來整齊些,難道愛美也有錯嘛~沒有規矩,不成方圓,當兵就得有當兵的樣,部隊就有部隊的規矩,要不去當文藝兵得了————寫代碼就是讓代碼去當兵,個個理成平頭一個樣,還談啥好看哩~想不到,有些時候Tab也是不能亂加的,想讓代碼整齊清楚的一些小動作,到了ADS這里竟也成了壞習慣了~!
你甭說,這ADS的armassembler/compiler/linker有時候就TMD怪,盡出些只有機器能明白的錯誤!咋不做個開發環境讓機器去coding呢~!看看這條代碼:
MCR P15, 0, R1, C1, C0, 0
有錯不?非常簡單的寫協處理器CP15寄存器1的指令,語法和拼寫完全沒錯誤!要是ADS對你報錯了,你瘋不?它還真報錯了!
Error :A1151E: Bad register name symbol
boot.s line 107
還好我心理承受能力強,在我瘋之前找出了這個用肉眼看不到的錯誤:將P15,C1,C0全部用小寫字母表示就對了!
MCR p15, 0, R1, c1, c0, 0 ;correct now
說到這里,世界人民忍不住都在心里把ADS給***了一把。
原來,對于協處理器的寄存器符號,都必須用小寫字母來表示~!My God!What a ***ing world!
天,又遇到新的毛?。∏懊嬲f一些偽操作語句前面不要TAB,而又有一些偽操作(direcTIve)前還必須要Tab符號或空格~!不信?把AREA還有與之配套的END語句頂格寫試試?!ADS跟你報錯沒商量~!EXPORT/IMPORT前面也一樣必須有Tab符號或空格!
使用ADS1.2時,對于匯編文件,如初始化的init.s,每條語句之前都要加一個“TAB”或空格,否則會出現“unkown opcode”錯誤。
碰到此類問題可以試試以下方法:
1、去掉語句前面的TAB或試試(已知一些偽操作如DCD,EQU語句前不可有TAB符號);
2、在語句前加空格或Tab符號試試(已知AREA,END,EXPORT/IMPORT前必須有空格或Tab符號);
3、大寫改成小寫(已知協處理器及協處理器寄存器必須用小寫字母表示);
4、TAB換空格或空格換TAB等其他各種辦法。
匯編中的注釋以;開頭,C或C++中用//
--------------------------------------------------
ADS下__main()是C語言的內部庫函數,在進入用戶main()之前完成內部RAM的初始化工作。
-------------------------
由于ARM采用三級流水線結構,因此,當SWI和未定義指令異常中斷產生時,程序計數器PC的值還沒有更新,它指向當前指令后面第2條指令(對于ARM指令,它指向當前指令地址加8個字節的位置;對于Thumb指令,它指向當前指令地址加4個字節的位置)。這就是為什么當SWI和未定義指令異常中斷發生時,處理器將(PC-4)保存到異常模式下的寄存器lr_mode中,這時(PC-4)即指向當前指令的下一條指令。
上一篇:arm的協處理器有幾個?ARM協處理器詳解
下一篇:深度了解ARM架構基礎知識
推薦閱讀
史海拾趣
隨著全球水資源日益緊張和水質問題的日益突出,水處理行業迎來了巨大的發展機遇。Autotrol公司憑借其在控制系統方面的獨特優勢和完善的企業管理體系,成功進軍水處理領域。公司開發了一系列高端水處理設備和技術,為全球客戶提供專業的水處理解決方案。同時,Autotrol還不斷推出創新的水處理產品和服務,滿足了客戶對高效、環保、節能的需求。
在追求經濟效益的同時,Flamar公司始終不忘履行企業社會責任。公司積極響應全球綠色可持續發展號召,將環保理念融入產品研發、生產和銷售的各個環節。通過采用環保材料、優化生產工藝、推廣節能產品等措施,Flamar公司有效降低了產品生命周期中的環境影響。此外,公司還積極參與公益事業和社會活動,為推動電子行業的綠色可持續發展貢獻自己的力量。
在追求經濟效益的同時,Flamar公司始終不忘履行企業社會責任。公司積極響應全球綠色可持續發展號召,將環保理念融入產品研發、生產和銷售的各個環節。通過采用環保材料、優化生產工藝、推廣節能產品等措施,Flamar公司有效降低了產品生命周期中的環境影響。此外,公司還積極參與公益事業和社會活動,為推動電子行業的綠色可持續發展貢獻自己的力量。
在快速發展的同時,FDI也注重可持續發展。他們致力于環境保護和社會責任,積極采用環保材料和節能技術,減少生產過程中的資源消耗和污染排放。同時,FDI還關注員工的發展和福利,為員工提供良好的工作環境和培訓機會,激發員工的創造力和創新精神。展望未來,FDI將繼續秉承“創新、服務、質量、誠信”的核心理念,不斷推動技術進步和產品升級,為電子行業的發展貢獻更多的力量。
隨著公司規模的不斷擴大和技術實力的增強,EWC Controls公司開始拓展全球市場。公司積極參加國際展會和交流活動,與全球各地的客戶建立聯系和合作。同時,EWC Controls公司還針對不同國家和地區的市場需求和法律法規要求,對產品進行適應性改進和優化。這些努力使得公司的產品逐漸走向國際市場,并贏得了良好的口碑和市場份額。
為了進一步擴大市場份額,EBG RESISTORS LLC公司開始實施國際化戰略。他們積極參加國際電子展會,與全球各地的客戶建立聯系。同時,公司還積極尋求與國際知名企業的合作,共同開發新產品。在XXXX年,公司成功打入歐洲市場,并在隨后幾年內陸續進入亞洲和北美市場。
中南集團成立于1935年,是一家大型港資集團,總部在香港,至今已有近70年歷史,員工一萬多名.生產線遍布于深圳﹑廣州﹑天津﹑上海﹑瑞士﹑德國及法國, 維達力實業(深圳)有限公司隸屬與中南集團,主要從事真空鍍膜(IP鍍膜)行業,主要對鐘表,手飾及眼鏡﹑ ...… 查看全部問答∨ |
|
USB TO RS-232 program Program: Mega8 2434 bytes (29.7% Full) Data: 184 bytes (18.0% Full) USBASP硬件電路 超簡單AVRUSB軟件模似串口(COMx) ...… 查看全部問答∨ |
|
有償回答;cdma Modem收到的短信如何解碼為正確的內容 我有個WAVECOM cdma Modem,用手機發送“測試。”給Modem,用AT+CMGR=0后返回的短信內容是“mK嬚0”,我改如何解碼為正確的內容,最好能給個VB下調用函數。在我能力允許范圍內,可以給大蝦一下Q幣補償^-^;我的qq:228090184… 查看全部問答∨ |
|
各位高人,我在使用PB編譯一個OS時,出現如下錯誤,請叫如何進行調試才能夠正常編譯? Error - cannot open input file D:\\WINCE500\\PBWorkspaces\\QT2440_1103\\RelDir\\smdk2440a_ARMV4I_Release\\postproc\\nlscfg.i ...… 查看全部問答∨ |
|
PC6的TIM3_CH1要重映射,請問為什么這么設計?(已解決) datasheet的table4中說:================================================ Defa ...… 查看全部問答∨ |
我用的是MSP430F169的板子,以下代碼的功能是把串口接收到數據直接發送出去,我用串口調試助手向串口發送數據,發現板子可以正常接收數據,也能正常給TXBUF1賦值,但是PC就是收不到數據,請教各位高手指點. #include <msp430x16x.h> void main(voi ...… 查看全部問答∨ |