《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > ARM學習步驟

ARM學習步驟

2015-09-28
關鍵詞: ARM 學習步驟

  學習必備條件:
  1、一塊開發板--例如44B0開發板,建議初學者不要去購買那些ARM9體系結構的,因為作為初學者來說ARM9體系的東西是很復雜的,買塊ARM7的就可以了(先入門,然后再提高);
  2、學習必備書籍
  《Pointer on C》中文名字叫《C和指針》(美)里科|譯者:徐波 前提你的了解C指針吧(這本書時非常經典的書籍,完全可以看中文版的,作者翻譯的非常到位)
  《嵌入式實時操作系統μCOS-II(第二版)》--邵貝貝翻譯的(不能不承認邵貝貝是一個非常好的翻譯者)
  《μC/OS-Ⅱ標準教程》--楊宗德
  對于英文不好的朋友可以購買《ARM體系結構與編程》--杜春蕾(該書其實還是有很多翻譯錯誤的,大家在看的時候要注意一下,但是不可否認的是這本書到目前為止算得上是我見過最好的講解關于ARM體系結構的書籍了)
  對于英文過關的兄弟姐妹可以直接看《ARM+Architecture+Reference+Manual(2nd+Edition)》
  3、有條件的兄弟姐妹可以選購一個仿真器 JLINK V8全功能版(這個的感謝中國的優秀工程師,是他們把原價1999多的JLINK變成了幾十元錢的東西
  4、開發環境--MDK350或者IARARM
  如果要熟悉這些開發環境,就需要好好讀一些這些開發環境的手冊資料,不好意思,這個就只有英文的了。
  以上4個條件具備下來,可能也不會超過500元錢。
  下面來講講我的學習經歷:
  我剛開始學習的時候,自己走了不少彎路,這里就省略不說了。
  第一步:在開發板上跑跑簡單程序
  因為你有開發板,所以你就先在網上找一下對應開發板上的ARM芯片的datasheet,你都不先搞懂芯片的手冊,又談何讓自己實現很多功能呢。
  熟讀數據手冊后,就盡可能的在開發板上實現芯片對應的每個功能,像GPIO實驗,UART通訊,I2C,ADC,DAC,PWM,RTC,SPI等等。自己寫自己的程序,然后在開發板上好好實踐一下。
  當每個功能模塊都實現以后,建議你讓你的開發板實驗一下多個功能復合使用,比如用UART打印出ADC的值什么的。
  第二步:學習uCOS
  鑒于你已經購買了《嵌入式實時操作系統μCOS-II(第二版)》,除開以下三個文件:
  1、OS_CPU_C.c
  2、OS_CPU.H,
  3、OS_CPU_A.asm(這個是MDK環境下的匯編文件)或OS_CPU_A.a(這個是IAR開發環境下的匯編)
  這三個文件的處理機制暫時可以不用先了解怎么做的,怎么移植的,以后再說
  第一次讀這本書時,搞清楚什么是任務,什么是前后臺,為什么要在系統中加入嵌入式操作系統。
  第二次讀這本書時,詳細了解他的TCB(Task Control Block)和ECB(Event Control Block)的數據結構,搞清楚整個uCOS的實現機制(這里不要先就去看uCOS的移植,這樣只會讓你云里霧里的)
  第三次讀這本書是,詳細了解信號量,互斥信號量、消息隊列、郵箱和時間標志組
  鑒于你又購買了《μC/OS-Ⅱ標準教程》,你 可以想在VC++ 6.0開發環境下實現對信號量,互斥信號量、消息隊列、郵箱和事件標志組的上機實驗代碼。
  如果還是不能了解uCOS怎么工作的,建議你多看幾遍(我可是足足看了6、7遍了,書都翻得脫頁了。汗說明我很笨,希望各位看官都比我聰明,呵呵)
  第三步:建立對uCOS的初步認識
  在網上下載對應你的開發板ARM芯片移植好了文件OS_CPU_C.c,OS_CPU.H,OS_CPU_A.asm(當然有的開發板已經提供了這樣的基礎實驗)
  在你的開發板上跑跑uCOS,建立起自己對于uCOS在ARM7開發板上的認識。
  在你所購買的ARM7開發板上編寫一個自己跑uCOS得任務(這里先不要去搞中斷,初學者對于uCOS下的中斷程序設計根本就搞不清楚)
  第四步:熟悉ARM體系結構
  因為是基于ARM7的移植,建議英文不好的去看看這本書《ARM體系結構與編程》(雖然這本書的作者在翻譯時有很多操作,但是還是建議初學者去購買來好好看看),對于英文好的直接在網上下載《ARM+Architecture+Reference+Manual(2nd+Edition)》看就可以了
  在看這個《ARM體系結構與編程》或《ARM+Architecture+Reference+Manual(2nd+Edition)》時,務必注意多看幾次,了解以下幾個方面的知識:
  1、ARM模式下的指令集
  2、Thumd模式下的指令集
  3、異常模式及進入異常時ARM如何處理
  4、一定能熟悉ARM中的匯編指令
  5、熟悉CPSR,R0-R7,R8-R14,R15及在各個模式下,這些寄存器的映射。
  熟悉以后,再來自己做uCOS的移植了。
  第五步:uCOS移植
  當然在自己編寫代碼做移植uCOS之前,有必要看看別人的移植代碼。
  其實對于uCOS的移植,我們只需要編寫關鍵的三個文件,文件如下:
  1、OS_CPU_C.c(堆棧初始化操作OSTaskStkInit函數)
  2、OS_CPU.H:完成在該芯片下的數據定義,比如什么unsigned char 之類的,注意一下OS_STK和OS_CPU_SR的定義,定義下關中斷和開中斷的方式,有三個只能選擇1個,ARM芯片一般是定義為第三種方式
  3、OS_CPU_A.asm(這個是MDK環境下的匯編文件)或OS_CPU_A.a(這個是IAR開發環境下的匯編),這個文件的內容就多了,要做以下幾個函數的重寫:
  1、OSStartHighRdy函數
  2、任務級的任務切換函數OSCtxSw,
  3、中斷級的任務切換OSIntCtxSw,其實只要寫好了OSCtxSw,OSIntCtxSw自然就copy一下就完了(copy的時候記者要把保存當前任務的寄存器去掉就可以了。
  第六步:測試自己的uCOS移植代碼
  第七步:在自己寫的uCOS移植代碼中跑跑任務。
  [分享]ARM初學者學習ARM的步驟
  很多人學完單片機就想學arm,但不知如何去學~現在列出一下學習這方面的步驟-----基于linux系統的學習步驟如下:(一步步來哦:)
  其實這也只是個基礎,以后實際做項目了還要去學很多
  1、Linux 基礎
  安裝Linux操作系統
  Linux文件系統
  Linux常用命令
  Linux啟動過程詳解
  熟悉Linux服務 能夠獨立安裝Linux操作系統
  能夠熟練使用Linux系統的基本命令
  認識Linux系統的常用服務 安裝Linux操作系統
  Linux基本命令實踐
  設置Linux環境變量
  定制Linux的服務 Shell 編程基礎使用vi編輯文件
  使用Emacs編輯文件
  使用其他編輯器
  2、Shell 編程基礎
  Shell簡介
  認識后臺程序
  Bash編程熟悉Linux系統下的編輯環境
  熟悉Linux下的各種Shell
  熟練進行shell編程熟悉vi基本操作
  熟悉Emacs的基本操作
  比較不同shell的區別
  編寫一個測試服務器是否連通的shell腳本程序
  編寫一個查看進程是否存在的shell腳本程序
  編寫一個帶有循環語句的shell腳本程序
  3、Linux 下的 C 編程基礎
  linux C語言環境概述
  Gcc使用方法
  Gdb調試技術
  Autoconf
  Automake
  Makefile
  代碼優化 熟悉Linux系統下的開發環境
  熟悉Gcc編譯器
  熟悉Makefile規則編寫Hello,World程序
  使用 make命令編譯程序
  編寫帶有一個循環的程序
  調試一個有問題的程序
  4、嵌入式系統開發基礎
  嵌入式系統概述
  交叉編譯
  配置TFTP服務
  配置NFS服務
  下載Bootloader和內核
  嵌入式Linux應用軟件開發流程
  熟悉嵌入式系統概念以及開發流程
  建立嵌入式系統開發環境制作cross_gcc工具鏈
  編譯并下載U-boot
  編譯并下載Linux內核
  編譯并下載Linux應用程序
  4、嵌入式系統移植
  Linux內核代碼
  平臺相關代碼分析
  ARM平臺介紹
  平臺移植的關鍵技術
  移植Linux內核到 ARM平臺 了解移植的概念
  能夠移植Linux內核移植Linux2.6內核到 ARM9開發板
  5、嵌入式 Linux 下串口通信
  串行I/O的基本概念
  嵌入式Linux應用軟件開發流程
  Linux系統的文件和設備
  與文件相關的系統調用
  配置超級終端和MiniCOM 能夠熟悉進行串口通信
  熟悉文件I/O 編寫串口通信程序
  編寫多串口通信程序
  6、嵌入式系統中多進程程序設計
  Linux系統進程概述
  嵌入式系統的進程特點
  進程操作
  守護進程
  相關的系統調用了解Linux系統中進程的概念
  能夠編寫多進程程序編寫多進程程序
  編寫一個守護進程程序
  sleep系統調用任務管理、同步與通信 Linux任務概述
  任務調度
  管道
  信號
  共享內存
  任務管理 API 了解Linux系統任務管理機制
  熟悉進程間通信的幾種方式
  熟悉嵌入式Linux中的任務間同步與通信
  編寫一個簡單的管道程序實現文件傳輸
  編寫一個使用共享內存的程序
  7、嵌入式系統中多線程程序設計
  線程的基礎知識
  多線程編程方法
  線程應用中的同步問題了解線程的概念
  能夠編寫簡單的多線程程序編寫一個多線程程序
  8、嵌入式 Linux 網絡編程
  網絡基礎知識
  嵌入式Linux中TCP/IP網絡結構
  socket 編程
  常用 API函數
  分析Ping命令的實現
  基本UDP套接口編程
  許可證管理
  PPP協議
  GPRS 了解嵌入式Linux網絡體系結構
  能夠進行嵌入式Linux環境下的socket 編程
  熟悉UDP協議、PPP協議
  熟悉GPRS 使用socket 編寫代理服務器
  使用socket 編寫路由器
  編寫許可證服務器
  指出TCP和UDP的優缺點
  編寫一個web服務器
  編寫一個運行在 ARM平臺的網絡播放器
  9、GUI 程序開發
  GUI基礎
  嵌入式系統GUI類型
  編譯QT
  進行QT開發熟悉嵌入式系統常用的GUI
  能夠進行QT編程使用QT編寫“Hello,World”程序
  調試一個加入信號/槽的實例
  通過重載QWidget 類方法處理事件
  10、Linux 字符設備驅動程序
  設備驅動程序基礎知識
  Linux系統的模塊
  字符設備驅動分析
  fs_operation結構
  加載驅動程序了解設備驅動程序的概念
  了解Linux字符設備驅動程序結構
  能夠編寫字符設備驅動程序編寫Skull驅動
  編寫鍵盤驅動
  編寫I/O驅動
  分析一個看門狗驅動程序
  對比Linux2.6內核與2.4內核中字符設備驅動的不同
  Linux 塊設備驅動程序塊設備驅動程序工作原理
  典型的塊設備驅動程序分析
  塊設備的讀寫請求隊列了解Linux塊設備驅動程序結構
  能夠編寫簡單的塊設備驅動程序比較字符設備與塊設備的異同
  編寫MMC卡驅動程序
  分析一個文件系統
  對比Linux2.6內核與2.4內核中塊設備驅動的不同
  11、文件系統
  虛擬文件系統
  文件系統的建立
  ramfs內存文件系統
  proc文件系統
  devfs 文件系統
  MTD技術簡介
  MTD塊設備初始化
  MTD塊設備的讀寫操作了解Linux系統的文件系統
  了解嵌入式Linux的文件系統
  了解MTD技術
  能夠編寫簡單的文件系統為 ARM9開發板添加 MTD支持
  移植JFFS2文件系統
  通過proc文件系統修改操作系統參數
  分析romfs 文件系統源代碼
  創建一個cramfs 文件系統

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
99av国产精品欲麻豆| 亚洲日本精品国产第一区| 伊人精品久久久久7777| 国产精品亚洲精品| 国产精品久久久久久妇女6080| 欧美精品一区在线播放| 欧美88av| 欧美激情自拍| 欧美伦理视频网站| 欧美日本亚洲韩国国产| 欧美日韩1区| 欧美日韩国产欧美日美国产精品| 欧美激情视频一区二区三区不卡| 欧美高潮视频| 欧美日韩国产免费观看| 欧美日韩在线大尺度| 欧美日韩一区二区三区四区在线观看 | 欧美伊人影院| 欧美制服丝袜第一页| 久久精品日产第一区二区| 久久国产一区二区三区| 亚洲丁香婷深爱综合| 亚洲国产女人aaa毛片在线| 最新热久久免费视频| 亚洲免费观看高清完整版在线观看熊| 亚洲美女av在线播放| 一区二区久久久久| 亚洲欧美日韩电影| 久久久国产精品亚洲一区 | 国产一区二区三区久久久久久久久| 国产农村妇女毛片精品久久麻豆| 国产女主播在线一区二区| 国产一区二区高清| 在线免费观看日本一区| 亚洲国产成人精品女人久久久| 亚洲娇小video精品| 9久草视频在线视频精品| 亚洲一区视频| 久久精品视频导航| 日韩天天综合| 午夜在线一区二区| 久久伊人亚洲| 欧美日韩国产黄| 国产精品视频免费观看| 韩国av一区二区三区| 亚洲国产综合在线| 亚洲香蕉网站| 久久精品国产亚洲aⅴ| av成人手机在线| 欧美一级专区| 欧美a级片网站| 国产精品久久久久永久免费观看 | 久久国产福利国产秒拍| 99热在线精品观看| 午夜欧美大片免费观看| 久久综合成人精品亚洲另类欧美| 免费国产一区二区| 欧美性一区二区| 国产欧美一区二区在线观看| 在线免费高清一区二区三区| 一区二区三区欧美成人| 久久国产日韩| 亚洲午夜av在线| 老色鬼精品视频在线观看播放| 欧美揉bbbbb揉bbbbb| 国语精品一区| 一本色道久久综合狠狠躁篇怎么玩| 欧美中文字幕久久| 亚洲图片激情小说| 久久免费视频在线观看| 国产精品成人在线| 亚洲观看高清完整版在线观看| 亚洲尤物在线| 一级日韩一区在线观看| 久久久综合网| 国产精品久久久久久五月尺| 亚洲高清一区二| 欧美一级二区| 亚洲网在线观看| 欧美成人自拍| 国产一级久久| 亚洲午夜视频在线观看| 亚洲免费观看高清在线观看 | 玖玖玖免费嫩草在线影院一区| 欧美日韩在线视频首页| 亚洲成人在线免费| 亚洲欧美色一区| 亚洲一区二区三区久久| 欧美激情一二三区| 激情久久久久久久久久久久久久久久| 一区二区三区日韩欧美| 亚洲日本激情| 老司机一区二区三区| 国产三区精品| 亚洲一区二区视频| 亚洲午夜精品| 欧美日本在线视频| 亚洲第一区在线观看| 久久国产婷婷国产香蕉| 欧美制服第一页| 国产精品久久久久久久app| 亚洲美女电影在线| 亚洲美女在线观看| 卡通动漫国产精品| 韩国美女久久| 久久精品亚洲乱码伦伦中文| 久久久精品999| 国产亚洲激情| 欧美在线不卡| 久久久久99精品国产片| 国产日韩欧美亚洲一区| 亚洲免费视频网站| 亚洲欧美综合| 国产精品无人区| 亚洲免费一区二区| 亚洲欧美日韩另类| 国产精品日韩欧美一区二区| 一本色道久久综合狠狠躁篇的优点| 99re66热这里只有精品4| 欧美激情一二三区| 亚洲精品久久嫩草网站秘色| 一本久道久久综合婷婷鲸鱼| 欧美片在线播放| 亚洲美女区一区| 亚洲一区二区三区777| 欧美小视频在线观看| 亚洲性av在线| 欧美一区中文字幕| 国产视频自拍一区| 欧美中文字幕视频在线观看| 久久色中文字幕| 亚洲成色777777女色窝| 亚洲精品一二三| 欧美日韩高清在线观看| 一本大道久久精品懂色aⅴ | 午夜影院日韩| 国产在线不卡视频| 亚洲黄色成人| 欧美日韩精品一本二本三本| 日韩网站在线观看| 亚洲女性喷水在线观看一区| 国产精品亚洲第一区在线暖暖韩国| 午夜欧美大片免费观看 | 韩日成人在线| 亚洲精品影视| 国产精品www色诱视频| 亚洲综合国产激情另类一区| 久久久久久久综合日本| 曰本成人黄色| 在线视频欧美日韩| 国产精品视频yy9099| 欧美专区在线观看一区| 欧美91精品| 一区二区精品在线| 欧美一区二区视频在线观看2020| 国内精品久久久久影院薰衣草 | 欧美精品日日鲁夜夜添| 中文精品在线| 久久一区二区精品| 亚洲精品一区二区三区福利| 午夜免费在线观看精品视频| 国产综合在线看| 99精品99| 国产精品一区二区女厕厕| 亚洲电影免费观看高清完整版在线 | 久久国产日本精品| 亚洲国产精品久久精品怡红院| 亚洲天堂av高清| 狠狠色丁香久久婷婷综合丁香| 一本色道久久综合亚洲精品按摩 | 国产在线观看一区| 99re66热这里只有精品4| 国产欧美日韩综合一区在线观看| 亚洲高清影视| 国产精品大片| 亚洲国产另类久久久精品极度| 欧美日韩理论| 久久精品视频免费| 欧美性久久久| 亚洲精品久久嫩草网站秘色| 国产精品亚洲网站| 亚洲精品日本| 国产日韩av一区二区| 日韩午夜激情av| 国产原创一区二区| 亚洲在线国产日韩欧美| 伊人久久婷婷色综合98网| 亚洲一区亚洲二区| 亚洲国产高清一区| 久久国产精品久久久久久| 亚洲精品乱码| 老牛影视一区二区三区| 亚洲一区二区免费| 欧美—级在线免费片| 久久精品女人的天堂av| 国产精品私房写真福利视频| 日韩一级在线观看| 激情偷拍久久| 久久国内精品自在自线400部| 99热精品在线观看|