色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>關于μC/OS-II實時操作系統內存管理的改進方法分析

關于μC/OS-II實時操作系統內存管理的改進方法分析

2017-10-27 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

μC/OS-II是一種開放源碼的實時操作系統,具有搶先式、多任務的特點,已被應用到眾多的微處理器上。雖然該內核功能較多,但還是有不甚完善的地方。筆者在分析使用中發現,內核在任務管理(包括任務調度、任務間的通信與同步)和中斷管理上是比較完善的,具有可以接受的穩定性和可靠性;但在內存管理上顯得過于簡單,內存分區的建立方式有不合理之處。
  1 內存管理不足之處的分析
  在分析許多μC/OS-II的應用實例中發現,任務棧空間和內存分區的創建采用了定義全局數組的方法,即定義一維或二維的全局數組,在創建任務或內存分區時,將數組名作為內存地址指針傳遞給生成函數。這樣實現起來固然簡單,但是不夠靈活有效。
  編譯器會將全局數組作為未初始化的全局變量,放到應用程序映像的數據段。數組大小是固定的,生成映像后不可能在使用中動態地改變。對于任務棧空間來說,數組定義大了會造成內存浪費;定義小于了任務棧溢出,會造成系統崩潰。對于內存分區,在不知道系統初始化后給用戶留下了多少自由內存空間的情況下,很難定義內存分區所用數組的大小。總之利用全局數組來分配內存空間是很不合理的。
  另外,現在的μC/OS-II只支持固定大小的內存分區,容易造成內存浪費。μC/OS-II將來應該被改進以支持可變大小的內存分區。為了實現這一功能,系統初始化后能清楚地掌握自由內存空間的情況是很重要的。
  2 解決問題的方法
  為了能清楚掌握自由內存空間的情況,避免使用全局數組分配內存空間,關鍵是要知道整個應用程序在編譯、鏈接后代碼段和數據段的大小,在目標板內存中是如何定位的,以及目標板內存大小。對于最后一條,系統編程人員當然是清楚的,第一條編譯器會給出,而如何定位是由編程人員根據具體應用環境在系統初始化確定的。因此,系統初始化時,如果能正確安排代碼段和數據段的位置,就能清楚地知道用戶可以自由使用的內存空間起始地址。用目標板內存最高端地址減去起始地址,就是這一自由空間的大小。
  3 舉例描述該方法的實現
  下面以在CirrusLogic公司的EP7211微處理器上使用μC/OS-II為例,描述該方法的實現過程。假設基于μC/OS-II的應用程序比較簡單,以簡化問題的闡述。
  3.1 芯片初始化過程和鏈接器的功能
  EP7211采用了RISC體系結構的微處理器核ARM&TDMI,該芯片支持內存管理單元MMU。系統電復位后,從零地址開始執行由匯編語言編寫的初始化代碼。零地址存放著中斷向量表,第一個是復位中斷,通過該中斷向量指向的地址可以跳轉到系統初始化部分,執行微處理器寄存器初始化。如果使用虛擬內存,則啟動MMU,然后是為C代碼執行而進行的C環境初始化。之后創建中斷處理程序使用的棧空間,最后跳轉到C程序的入口執行系統C程序。
  對于應用程序,ARM軟件開發包括提供的ARM鏈接器會產生只讀段(read-only section RO)、讀寫段(read-write section RW)和零初始化段(zero-initialized section ZI)。每種段可以有多個,對較簡單程序一般各有一個。
  只讀段就是代碼段,讀寫段是已經初始化的全局變量,而零初始化段中存放未初始化的全局變量。鏈接器同時提供這三種段的起始地址和結束地址,并用已定義的符號表示。描述如下:Image$$RO$$Base表示只讀段的起始地址,Image$$RO$$Limit表示只讀段結束后的首地址;Image$$ Limit表示讀寫段結束后的首地址;Image$$ZI$$Base表示零初始化段的起始地址,Image$$ZI$$Limit表示零初始化段結束后的首地址。
  一般嵌入式應用,程序鏈接定位后生成bin文件,即絕對地址空間的代碼,因此上述符號的值表示物理地址。對于簡單程序,可在編譯鏈接時指定RO和RW的基礎址,幫助鏈接器計算上述符號的值。對于較復雜的程序可以由scatter描述文件來定義RO和RW的基地址。
?
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 不卡一区二区高清观看视频 | 热九九99香蕉精品品 | 色多多污污在线观看网站 | 男男女女爽爽爽视频免费 | 一边亲着一面膜下的免费过程 | 俄罗斯女人与马Z00Z视频 | 亚洲乱码中文字幕久久 | 芒果视频看片在线观看 | 果冻传媒免费观看 | 曰本xxⅹ孕妇性xxx | 蜜芽资源高清在线观看 | 撕烂衣服扒开胸罩揉爆胸 | 国产69精品久久久久观看软件 | 日本三级黄色大片 | 多人乱肉高hnp | 久久香蕉国产线看观看精品 | 欧美性猛交AAA片免费观看 | JIZZ学生13| 美女强奷到抽搐在线播放 | 伊人国产在线视频 | 亚洲日韩乱码人人爽人人澡人 | 久久久久国产精品美女毛片 | 美女张开腿露尿口给男人亲 | 久久国产乱子伦精品免费不卡 | 国产精品xxxav免费视频 | 亚洲精品入口一区二区乱麻豆精品 | 国产99久久九九免费精品无码 | 国产免费人成在线视频有码 | 国产99精品在线观看 | 扒开粉嫩的小缝末成年小美女 | 日韩欧美一区二区三区免费看 | 欧美一区二区三区免费播放 | 亚洲 综合 欧美在线视频 | 亚洲欧美高清在线精品一区 | 国产精品-区区久久久狼 | 精品综合久久久久久8888 | 国内精品免费久久影院 | 久久精品热播在线看 | 久久午夜夜伦痒痒想咳嗽P 久久午夜夜伦鲁鲁片无码免费 | 青青草原直播 | 国产第一页浮力影院 |