国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

弄清關于啟動代碼的幾個問題

發布時間:2017-5-19 09:25    發布者:技術小白
關鍵詞: 代碼 , CPU , 嵌入式 , 單片機
弄清關于啟動代碼的幾個問題

啟動代碼通常都燒寫在Flash中,它是系統一上電就執行的一段程序,運行在任何用戶C代碼之前

啟動代碼主要完成兩方面的工作,一是初始化執行環境,例如中斷向量表、堆棧、I/O等;二是初始化C庫和用戶應用程序。

關于啟動代碼,有幾個問題需要解解惑!

為什么啟動代碼一定一要用匯編語言編寫?

最開始的幾行代碼要完成初始化中斷向量,堆棧什么的,這些只能用匯編做。

啟動代碼的主要功能是什么?
CPU上電后會從IO空間的某地址取第一條指令。但此時:PLL沒有啟動,CPU工作頻率為外部輸入晶振頻率,非常低;CPU工作模式、中斷設置等不確定;存儲空間的各個BANK(包括內存)都沒有驅動,內存不能使用。在這種情況下必須在第一條指令處做一些初始化工作,這段初始化程序與操作系統獨立分開,稱之為bootloader。

一個嵌入式Bootloader最初始部分的代碼幾乎必須是用匯編語言寫成的,因為開發板剛上電后沒有準備好C程序運行環境,比如堆棧指針SP沒有指到正確的位置。匯編代碼應該完成最原始的硬件設備初始化,并準備好C運行環境,這樣后面的功能就可以用C語言來寫了。
單片機不用啟動代碼,為什么ARM要用啟動代碼?

1. C language 沒有 SP(Stack Pointer register), CPSR, CP15 等控制指令, 若要初始化這些, 一定要用 Assembly code, 其它部分不是不能用 C language 實現, C language 的運行環境尚未準備好, 故 SP 必須先設好, Global Variable, standard library 都還不能使用。

2. 單片機沒有 OS 的觀念, 可以說全部都是在啟動代碼的模式。

其實單片機也是有“啟動代碼”的。只不過這部分工作不需要單片機程序員自己來完成。

比如用Keil C編寫單片機程序,針對指定型號的單片機啟動代碼由Keil來完成了,不需要我們干涉。單片機程序只需要直接編寫C部分的程序即可。
啟動代碼和Bootloader的區別和關系是怎樣的?
啟動代碼是系統上電或者復位后運行的第一段代碼,是進入C 語言的main 函數之前需要執行的那段匯編代碼。它的作用是在用戶程序運行之前對系統硬件及軟件環境進行必要的初始化并在最后使程序跳轉到用戶程序。它直接面對ARM 處理器內核及硬件控制器進行編程,所執行的操作與具體的目標系統緊密相關。

C語言程序的運行需要具備一定的條件,如分配好外部數據空間,堆棧空間和中斷入口等。另外,匯編代碼可以更直接地對硬件進行操作,效率更高,這對啟動中斷等對時間要求更高的情況是非常必要的。

Bootloader 不是一段代碼,它是一個具有引導裝載功能的完整的程序,如可以引導裝載linux的vivi,uboot,以及通常PC機上的BOIS程序等。

Bootloader 也包含了相應的啟動代碼,也就是說,啟動代碼是Bootloader的一部分,是所有相應應用程序的一部分。


免費試聽C語言、電子PCBSTM32LinuxFPGA、JAVA、安卓等。
想學習的你和我聯系預約就可以免費聽課了。
宋工企鵝號:三五二四六五九零八八 Tel:173--1795--1908



本文地址:http://m.qingdxww.cn/thread-364109-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品国产三级国产普通 | 成人午夜视频在线 | 欧美自拍偷拍 | 大量国产激情视频在线观看 | 日韩毛片免费 | 国产成人亚洲精品乱码在线观看 | 日本成人免费在线观看 | 黄色日b视频 | 欧洲做视频在线观看 | 日韩亚洲欧洲在线rrrr片 | 久久香蕉国产线看观看亚洲卡 | 一区 在线播放 | 国产香蕉91tv永久在线 | 欧美99视频| a一级毛片免费高清在线 | 欧美日本在线 | 在线欧美卡1卡2卡三卡四 | 久热香蕉精品视频在线播放 | 国产欧美精品国产国产专区 | 日韩国产免费一区二区三区 | 国产欧美日 | 国产v日韩v欧美v精品专区 | 被黑人粗黑大肉奉 | 天天摸夜夜摸夜夜狠狠摸 | 香蕉视频免费在线观看 | 亚洲国产婷婷香蕉久久久久久 | 中国一级特黄毛片 | 日韩欧美中文字幕在线观看 | 九九热在线视频 | 日韩欧美国产中文字幕 | 日韩成人免费在线视频 | 婷婷玖玖| 国内外成人鲁尔山免费大片 | 日本黄大片视频在线播放 | 综合久久久 | 欧美色影院 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片16 | 日韩在线观看网址 | 麻豆高清完整版观看在线 | 1国产精品卡1卡2卡3 | 操操操日日日 |