网站大量收购独家精品文档,联系QQ:2885784924

Bootloader设计基础课件.pptVIP

Bootloader设计基础课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

10.2S3C2410平臺下Linux的BootloaderViviU-BOOTvivi簡介vivi是由韓國mizi公司為ARM處理器系列設計的一個bootloader。它同樣支持啟動加載模式和下載工作模式。在下載模式下,vivi為用戶提供一個命令行人機介面,通過這個人機介面可以使用vivi提供的一些命令。如果嵌入式系統沒有鍵盤和顯示,那麼可以利用vivi中的串口,將其和宿主機連接起來,利用宿主機中的串口軟體(如windows中的超級終端或者Linux中的minicom)來控制。注:vivi僅限於ARM架構的處理器使用10.2.1vivi1.vivi常用的命令Load,Part,bon,Param,Boot,Flash2.vivi檔結構代碼包括arch,init,lib,drivers和include等幾個目錄,共200多條文件arch:此目錄包括了所有vivi支持的目標板的子目錄,例如s3c2410目錄drivers:其中包括了引導內核需要的設備的驅動程式(MTD和串口)。MTD目錄下分map、nand和nor三個目錄。init:這個目錄只有main.c和version.c兩個檔。和普通的C程式一樣,vivi將從main函數開始執行。lib:一些平臺公共的介面代碼,比如time.c裏的udelay()和mdelay()。include:頭檔的公共目錄,其中的s3c2410.h定義了這塊處理器的一些寄存器。Platform/smdk2410.h定義了與開發板相關的資源配置參數,我們往往只需要修改這個檔就可以配置目標板的參數,如串列傳輸速率、引導參數、物理記憶體映射等。3.vivi的配置和編譯vivi的配置和嵌入式Linux內核一樣,可以採用菜單化的形式進行。其步驟主要如下:①#makedistclean。清除一些早先生成的無用的目標檔。②#makemenuconfig。然後可以根據菜單中的資訊進行配置。編譯。菜單配置完畢後,保存退出。然後執行“make”命令開始編譯。vivi第一階段的分析:vivi的第一階段主要完成了依賴於CPU的體系結構硬體初始化,包括禁止中斷、初始化串口、設置CPU的速度和時鐘頻率、RAM初始化、複製第二階段到RAM中等。由於這些代碼是和硬體緊密相關的,因此要求讀者在閱讀時對照S3C2410處理器的數據手冊,查閱相關的寄存器的描述,以便更好地理解。這些彙編代碼全部就集中在vivi\arch\s3c2410目錄下的head.S這一個彙編檔中,當然還有相關的頭檔。ARM的中斷向量表設置在0地址開始的8個字空間中,如下表:每當其中的某個異常發生後即將PC值置到相應的中斷向量處,每個中斷向量處放置一個跳轉指令到相應的中斷服務程式去進行處理,中斷向量表的程式如下:從程式arch/s3c2410/head.S開始,按照head.S的代碼執行順序,一次完成了下麵幾個任務:1、關WATCHDOG(disablewatchdogtimer)

上電後,WATCHDOG默認是開著的

2、禁止所有中斷(disableallinterrupts)

vivi中不會用到中斷,中斷是系統的事,bootloader可不能去幹這事的(不過這段代碼實在多餘,上電後中斷默認是關閉的)3、初始化系統時鐘(initialisesystemclocks)

啟動MPLL,FCLK=200MHz,HCLK=100MHz,PCLK=50MHz,“CPUbusmode”改為“Asynchronousbusmode”。

4、初始化記憶體控制寄存器(memsetup)

S3c2410共有15個寄存器,在此開始初始化13個寄存器。

5、檢查是否從掉電模式喚醒(Checkifthisisawake-upfromsleep),若是,則調用WakeupStart函數進行處理。6、點亮所有LED(AllLEDon)

點一下燈,通知外面有情況發生。7、初始化UART0(setGPIOforUARTInitUART)

a.設置GPIO,選擇UART0使用的引腳

b.初始化UART0,設置工作方式(使用FIFO)、串列傳輸速率115200、8bit、無流控等。這是使用串口與s3c2410通信的條件,在終端也要如此設置。8、跳到記憶體測試函數(simplememory

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地未知
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档