智汇工业-智慧工业、智能制造及工业智能、工业互联门户网站,专业的工业“互联网+”传媒

嵌入式技巧:ARM的三種中斷調試方法介紹

來源:互聯網

點擊:1448

A+ A-

所屬頻道:新聞中心

關鍵詞:嵌入式 ARM 中斷調試方法

     嵌入式軟件開發流程

      參照嵌入式軟件的開發流程。第一步:工程建立和配置。第二步:編輯源文件。第三步:工程編譯和鏈接。第四步:軟件的調試。第五步:執行文件的固化。

      在整個流程中,用戶首先需要建立工程并對工程做初步的配置,包括配置處理器和配置調試設備。編輯工程文件,包括自己編寫的匯編和C語言源程序,還有工程編譯時需要編寫的鏈接腳本文件,調試過程中需要編寫存儲區映像文件和命令腳本文件,以及上電復位時的程序運行入口的啟動程序文件。

      對后四種文件的理解很重要,其作用解釋如下。

      (1) 鏈接腳本文件:在程序編譯時起作用。該文件描述代碼鏈接定位的有關信息,包括代碼段,數據段,地址段等,鏈接器必須使用該文件對整個系統的代碼做正確的定位。在SDRAM中調試程序、在FLASH中調試或固化后運行的鏈接腳本文件應加以區分。(在IDE開發環境中使用擴展名*.ld)

      (2)命令腳本文件:在SDRAM中調試程序時起作用。在集成環境與目標連接時、軟件調試過程中以及目標板復位后,有時需要集成環境自動完成一些特定的操作,比如復位目標板、清除看門狗、屏蔽中斷寄存器、存儲區映射等。這些操作可以通過執行一組命令序列來完成,保存一組命令序列的文本文件稱為命令腳本文件(在 IDE開發環境中使用擴展名*.cs)。

      (3)存儲區映像文件:在SDRAM中調試程序時起作用。在軟件調試過程中訪問非法存儲區在部分處理器和目標板上會產生異常,如果異常沒有處理,則會導致軟件調試過程無法繼續,為了防止以上問題并調整仿真器訪問速度以達到最合適的水平,提供這樣一種用于描述各個存儲區性質的文件叫存儲區映像文件(在IDE開發環境中使用擴展名*.map)。

      在程序的調試過程中可以選擇使用存儲區映像文件*.map和命令腳本文件*. cs配合程序的調試。

      (4) 啟動文件:它主要是完成一些和硬件相關的初始化的工作,為應用程序做準備。一般,啟動代碼的第一步是設置中斷和異常向量;第二步是完成系統啟動所必須的寄存器配置;第三步設置看門狗及用戶設計的部分外圍電路;第四步是配置系統所使用的存儲區分配地址空間; 第五步是變量初始化;第六步是為處理器的每個工作模式設置棧指針;最后一步是進入高級語言入口函數(Main函數)。

      中斷程序設計

      中斷調試方面可以采用類似矢量中斷動態處理方式,讓中斷對應的確定地址代碼調轉到RAM的固定地址處,定義一個函數指針指向該固定地址,就可以隨時通過替換RAM固定地址處的代碼,實現動態改變中斷處理函數。

      具體方法是:

      (1)將中斷源函數指針定義在RAM中相對的固定地址,建立中斷矢量表;

      void SetInterrupt (U32 vector, void (*handler)()){ InterruptHandlers[vector] = handler;}

      (2)在程序中,調用具體某中斷源的中斷處理函數;

      如: SetInterrupt(IIC_INT,IICWriteIsr);

      /* 聲明IIC中斷處理函數,其中IIC_INT為 IIC中斷源序號,IICWriteIsr為 IIC的寫中斷處理函數 */

    (3)在0x18處的IRQ或0x1C處的FIQ中斷入口函數中,獲取中斷源、清除中斷掛起標志、通過已定義的中斷源函數指針進入用戶具體某中斷處理程序。

      void ISR_IrqHandler(void){ IntOffSet = (unsigned int)INTOFFSET; Clear_PendingBit(IntOffSet>>2) ;(*InterruptHandlers[IntOffSet>>2])();// 調用具體某中斷處理程序}

      采用動態的中斷處理方法,在中斷源較多的情況下,中斷響應時間和程序性能得到優化。另外,在調試方面,此處理方法具有便于跟蹤調試的優點,并且根據需要,可以方便變換中斷處理函數。

      中斷調試

      軟件調試可以在SDRAM中或FLASH中進行。在SDRAM中,讀寫方便,訪問速度快。一般軟件調試應在RAM中完成,但當RAM空間小于FLASH程序空間,程序只能在FLASH運行和調試時,或者用戶希望了解程序在FLASH中實際運行情況時,就可以在FLASH中進行程序調試。

      進行中斷調試時,應注意中斷入口位于SDRAM中或FLASH中0x18或0x1c地址,鏈接腳本文件必須使整個系統的代碼正確定位于0x0起始處,但SDRAM或FLASH對應的鏈接腳本文件及工程配置注意區別。

      (1)程序在SDRAM中運行

      在SDRAM中調試,使用SDRAM對應的鏈接腳本文件。調試過程需要以下幾步:編譯、鏈接工程;連接仿真器和電路板;下載程序(在IDE開發環境中使用擴展名*.elf);調試。

      下載程序前必須啟動命令腳本文件完成前述的一些特定的操作,命令腳本文件的啟動在連接仿真器時自動進行,其中存儲區映射應與程序在SDRAM中運行時相同,保證整個系統的代碼正確定位于0x0起始處。下載程序的起始地址也為0x0,下載成功后便可進行調試工作。

      (2)程序在FLASH中運行

      在FLASH中調試,使用FLASH對應的鏈接腳本文件。調試過程需要以下幾步:編譯、鏈接工程;連接仿真器和電路板;程序格式轉換(*.elf轉換為*.bin);固化*.bin程序;調試。

      連接仿真器后不需要下載程序,存儲區映射由本身工程中啟動文件運行完成,不需要命令腳本文件。在本環境調試過程中,可以設置兩個硬件斷點。

      (3)程序從FLASH中調到SDRAM中運行

      在某些應用場合,強調程序運行速度的情況下,希望程序在SDRAM中運行,這樣就需要將FLASH中存儲的程序,在系統上電后搬運到SDRAM某空間位置,然后自動運行。這種所謂的Bootloader技術,在DSP系統中常被采用。

      調試過程分兩步:

      (a)首先將用戶程序在SDRAM中調試通過,然后將*.bin文件固化到FLASH某一非0扇區地址空間;

      (b) 將自己編寫的Bootloader搬運程序調試通過并將Bootloader.bin文件固化到FLASH的 0扇區地址空間,搬運程序在系統上電后,將(a)中FLASH某一非0扇區地址空間存儲的程序,搬運到在SDRAM調試中同樣的空間位置,實現程序在SDRAM中運行的目的。

      另外注意,因為用戶實際的程序中斷入口必須位于FLASH的0x18或0x1c地址,所以Bootloader搬運程序還應具有中斷入口的跳轉功能,即把PC指針由此轉向處于SDRAM空間的中斷程序入口表,就是整個用戶程序被搬運到SDRAM的那一位置。

      如:LDR PC, =HandleIRQ

      // HandleIRQ位于SDRAM空間中斷程序入口表

    (審核編輯: 智匯胡妮)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: 深圳车牌识别系统厂家_人脸识别厂家_通道闸厂家_车位引导系统_智慧社区管理系统_深圳市利普诺科技有限公司官网 | 胜亿网-专注B2B电子商务,为企业提供一站式网络服务 | 昆明护栏网厂家_隔离栅_围栏网_石笼网「13年生产经验」-云南北辛商贸 | 宁波公司注册_宁波注册公司_宁波代理记账_宁波做内账|安隆会计专业服务机构 | 思源医疗器械网,雾化器厂家,医用床生产厂家,医疗器械厂家,医疗器械代加工 | 纳米砂磨机|纳米研磨机|实验室砂磨机-无锡市少宏粉体科技有限公司 | 廊坊微信营销,廊坊小程序开发,廊坊APP开发(安卓_苹果ios开发),微信朋友圈广告,百度推广,廊坊网络公司品牌服务商-河北盛秋网络科技有限公司 | 中空吹塑-PETG吹塑加工-吹塑玩具-东莞市鹏美塑胶五金有限公司 | 液压支架配件|液压支架立柱|液压支架千斤顶|液压支架换向阀|液压支架乳化油|液压支架密封件-山东卓力生产厂家 | 网带输送机_皮带_滚筒_链板输送机_不锈钢输送链条生产厂家-宁津县鸿昶机械设备有限公司 | 呼吸家官网|肺功能检测仪生产厂家|国产肺功能仪知名品牌|肺功能检测仪|肺功能测试仪|婴幼儿肺功能仪|弥散残气肺功能仪|肺功能测试系统|广州红象医疗科技有限公司|便携式肺功能仪|大肺功能仪|呼吸康复一体机|儿童肺功能仪|肺活量计|医用简易肺功能仪|呼吸康复系统|肺功能仪|弥散肺功能仪(大肺)|便携式肺功能检测仪|肺康复|呼吸肌力测定肺功能仪|肺功能测定仪|呼吸神经肌肉刺激仪|便携式肺功能 | 欣宇航化工-湖北片碱-冰醋酸厂家联系方式-工业氨水价格-工业片碱厂家-武汉宇航化工 | 液压尾管悬挂器,机械式尾管悬挂器价格,石油套管扶正器厂家,连续油管悬挂器,高压双塞水泥头,免钻塞注水泥分级箍,单塞套管水泥头价格,弹性套管扶正器,铸铝钢性扶正器,钢性套管扶正器厂家 | 升降炉|推板炉|创卓炉业 | 上海网站建设-上海网站制作-网站设计-上海做网站公司-SEO优化推广-咏熠软件 | 自复式过欠压保护器-上海能曼电气有限公司| 南湖人才网_南湖招聘网_求职找工作平台 | 液位变送器_智能压力变送器_3051差压变送器_单双法兰,投入式,电容式,温度变送器-淮安润中仪表科技有限公司 | 辽宁正业集团云顶钢结构有限公司_葫芦岛云顶钢结构_葫芦岛轻钢彩板_葫芦岛钢结构工程 | 石墨热场|PECVD石墨舟|碳碳框|燃料电池双极板|半导体石墨|光纤用石墨模具|石墨电极加工|石墨制品|上海弘竣新能源材料有限公司 | 欧式箱变_美式箱变_预制舱壳体-合肥龙马电气设备有限公司 | 莱湾科技-智能会议室|多功能|多媒体|音视频|无纸化|远程视频会议室运维 | 日职联直播_日职联免费视频直播_日职联直播在线观看无插件-24直播网 | 造雪机|人工造雪机|造雪机价格|造雪机厂家-河南晋安机械科技有限公司 | 秦皇岛天视影像有限公司,宣传片创意拍摄制作,商业广告拍摄公司,影视影像服务商 - 秦皇岛天视影像有限公司,宣传片创意拍摄制作,商业广告拍摄公司,影视影像服务商 秦皇岛市信恒电子科技有限公司 秦皇岛市华谊彩印有限公司 | 拓展器材_拓展训练器械_心理行为训练器械_沧州华北特训器械有限公司 | 上海海外置业展_2024海外置业移民留学展_4月5-7日_企业参展处/免费领门票 | 泥沙泵_脱硫泵_潜水泵_离心泵_渣浆泵厂家|诚信为先-泰安华泰泵业制造有限公司 | 助乐邦轮椅,北京轮椅置换,电动轮椅置换,轮椅回收北京,轮椅送货上门服务 | 卧式球磨机_干法球磨机_尼龙球磨机-无锡市少宏粉体科技有限公司 卧螺离心机-固液分离机-台州春鼎机械制造有限公司 | 上海机械网 机械 机械加工 金属加工 上海机械网 机械设备 上海机械 | 粮食烘干机|玉米烘干机|稻谷烘干机|小麦烘干机|大型连续烘干塔|500吨连续烘干塔|钢板仓|-郑州新光矿山机械制造有限公司 | 通用变频器|国产变频器|深圳变频器厂家-深圳市英捷思技术有限公司 | 微机保护装置_发电机保护_变压器保护_逆功率保护_防孤岛保护装置_光伏发电_杭州继保电气集团有限公司 | 环链电动葫芦-群吊电动葫芦-链条电动葫芦-环链葫芦-河北大力起重官方网站 | 手术示教系统-实训示教系统-数字化手术室-直播录播系统 - 深圳市视源视讯技术有限公司 | 上海熙隆光电科技有限公司-半导体激光器,一字线激光器,光纤耦合激光器,拉曼激光器 | 无机纤维抗菌板-A级不燃纤维板-石英纤维板厂家-医疗抗菌板-浙江德耐姆 | 模具架,模具货架,抽屉式模具架-模具架厂家 | 涂料分散剂_水墨分散剂-厚洹化学水性色浆助剂厂家 | 塑木地板,塑木栏杆,塑木地板价格,塑木地板厂家—浙江尚元塑木制品有限公司 |