Boot Loader的啟動流程和開發經驗總結

2021-01-10 OFweek維科網

  (4)支持DOC部份

  對於WinCE作業系統而言,豐富的多媒體功能是其一大特點。但是隨之而來的問題是,如果選擇了圖形界面和中文支持,系統很容易大大超出嵌入式系統上百KB的數量級。而DOC(DiskOnChip)則提供了一種相對廉價的大存儲容量的解決方案。

  DOC本質上是一種加以軟體控制的NAND格式的Flash,通過TFFS這一軟體層提供對WinCE的支持。由於DOC不能像內存一樣被直接訪問,所以其加載WinCE的過程有些特殊,必須要在BootLoader中加入專門的代碼,才能使用DOC來存放WinCE映像文件。

  4.BootLoader的開發經驗總結

  (1)嵌入式系統中,Bootloader的意義與作用與PC上的BIOS有點類似,它對開發板上的主要部件如CPU、SDRAM、FLASH、串口等進行了初始化,也可以使用Bootloader下載文件到開發板和啟動系統等。因此,一個功能比較強大的Bootloader已經相當於一個微型的作業系統了。

  (2)從CE的BootLoader開發流程可以看出,BootLoader在完成下載CE映像和加載映像的主要功能外,還具有一些調試硬體的功能。當然,這些功能不是必需的,隨不同的用戶有不同的定義,但這是在開發CE系統中不可跳過的一環。

  (3)嵌入式系統應用開發不同於PC機,其開發過程同時涉及軟硬體以及上層應用開發綜合考慮;而PC機應用開發是建立在已經定製好的硬體和作業系統平臺上,開發者只需調用系統提供的接口和服務完成相應的功能。考慮到成本約束,嵌入式系統的硬體平臺通常是根據應用量身定製,通常所用的MPU、存儲器、外圍設備等有多種選擇餘地,使平臺的引導設計變得十分複雜。因此,從零實現的話會需要相當長的過程,通常的做法是利用微軟為每種類型CPU提供的標準開發板的BootLoader例程,從這些例程中尋找與硬體平臺最接近的作為標本程序,然後根據硬體平臺作相應的改動。

  總而言之,BootLoader是開發WinCE系統第一步,也是關鍵的一步。只有得到一個穩定工作的Loader程序,才能夠進一步開發WinCE的BSP,才能得到整個嵌入式系統的成功。
 

相關焦點

  • bf561的loader過程
    在開發bf561時,尤其是當使用sdram空間時尤其小心flash內的內容,因為當開發的代碼需要使用sdram空間時,sdram必須已經被初始化過,不然會導致出現異常中斷。所以在調試程序前先給flash內燒一個帶有初始化sdram的代碼,就沒有這個問題了,不然在開發程序的時候,還的經常注意這個問題。
  • Spring Boot 常見錯誤及解決方法
    Spring Boot 作為 Java 生態中最流行的開發框架,意味著被數以萬計的開發者所使用。下面根據我們自身遇到的問題,加上用戶提供的一些反饋,來大致梳理下 Spring Boot 的常見錯誤及解決方法。找不到配置?配置不對?配置被覆蓋?
  • Spring Boot 啟動事件和監聽器,太強大了!
    毫無疑問,在 Spring Boot 框架中,事件和監聽也得到了發揚光大,除了常用的 Spring Framework 事件(例如:ContextRefreshedEvent)之外,Spring Boot 在啟動過程中還發送一系列其他的應用程式事件。
  • 海思3559A開發經驗總結
    This works locally or remotely (i.e using boot2docker or swarm).並安裝oh my zsh,所以方便的設置容器啟動自啟,我的容器裡設置了ssh自啟,方便使用ssh訪問docker容器。
  • webpack的幾個常見loader源碼淺析,以及動手實現一個md2html-loader
    前言本文會帶你簡單的認識一下webpack的loader,動手實現一個利用md轉成抽象語法樹,再轉成html字符串的loader。順便簡單的了解一下幾個style-loader,vue-loader,babel-loader的源碼以及工作流程。
  • 電腦開機的啟動流程!必須要看看!
    在這之前先問親們一個問題,"啟動"用英語怎麼說?回答是boot。可是,boot原來的意思是靴子,"啟動"與靴子有什麼關係呢?所以,工程師們把這個過程叫做"拉鞋帶",久而久之就簡稱為boot了。計算機的整個啟動過程分成四個階段。
  • Spring Boot 和 Spring 到底有啥區別?
    到底有什麼區別,我聽到了很多答案,剛開始邁入學習SpringBoot的我當時也是一頭霧水隨著經驗的積累、我慢慢理解了這兩個框架到底有什麼區別。相信對於用了SpringBoot很久的同學來說,還不是很理解SpringBoot到底和Spring有什麼區別,看完文章中的比較,或許你有了不同的答案和看法!作為Java開發人員,大家都Spring都不陌生,簡而言之,Spring框架為開發Java應用程式提供了全面的基礎架構支持。
  • 計算機是如何啟動的?
    零、boot的含義先問一個問題,"啟動"用英語怎麼說?回答是boot。可是,boot原來的意思是靴子,"啟動"與靴子有什麼關係呢?所以,工程師們把這個過程叫做"拉鞋帶",久而久之就簡稱為boot了。計算機的整個啟動過程分成四個階段.
  • 使用Spring Boot開發的10個免費開源項目
    ,可用於學習目的,能夠查看原始碼並獲得真實項目的實踐經驗。Java博客聚合器Java Blog Aggregator是基於Spring啟動MVC的Web應用程式,用於通過RSS feed聚合頂級Java博客,文章和帖子。該項目隨著Spring boot 2.0.5的發布而開發。
  • Spring 和 Spring Boot 之間到底有啥區別?
    概述對於 Spring和 SpringBoot到底有什麼區別,我聽到了很多答案,剛開始邁入學習 SpringBoot的我當時也是一頭霧水,隨著經驗的積累、我慢慢理解了這兩個框架到底有什麼區別,相信對於用了 SpringBoot很久的同學來說,還不是很理解 SpringBoot到底和 Spring有什麼區別,看完文章中的比較,或許你有了不同的答案和看法!
  • Spring 和 Spring Boot 最核心的 3 大區別,詳解!
    概述對於Spring和SpringBoot到底有什麼區別,我聽到了很多答案,剛開始邁入學習SpringBoot的我當時也是一頭霧水,隨著經驗的積累、我慢慢理解了這兩個框架到底有什麼區別,相信對於用了SpringBoot很久的同學來說,還不是很理解SpringBoot到底和Spring有什麼區別,看完文章中的比較,或許你有了不同的答案和看法!
  • Spring Boot 2.4 手工和 SDKMAN! 安裝 Spring Boot 命令行
    如果你是 Java 經驗比較豐富的開發者,真心不十分建議安裝 Spring 的命令行工具,沒啥用。本頁面中說明了使用手工安裝方式和 SDKMAN!來進行安裝。Spring Boot CLI (Command Line Interface) 是一個你可以用來快速初始化 Spring 的命令行工具。
  • Spring Boot開發教與學(教學大綱和教案)
    通過本章的學習,掌握基於Thymeleaf+MyBatis的Spring Boot Web應用開發的流程、方法以及技術。通過本章的學習,掌握基於Vue.js+Spring Data JPA的前後端分離的應用程式的開發流程、方法以及技術。
  • Jeewx-Boot 1.0 發布,基於 SpringBoot 的開源微信開發平臺
    Jeewx-Boot 實現了微信公眾號管理、小程序 CMS、微信抽獎活動等基礎功能,便於二次開發,可以快速搭建微信應用!Jeewx-Boot 獨創插件開發機制,實現了每一抽獎活動(砸金蛋、刮刮樂、砍價等)、官網、商城都是一個獨立的插件,對 JAVA 來講就是一個 JAR 包,可以很方便的做插拔,最終打造像 discuzz、微擎一樣的插件生態圈。。
  • spring boot 整合shiro 錯誤
    最近在弄spring boot 整合shiro的。凱哥現在用的是spring boot。web.xml沒有。但是凱哥配置了shiro的核心攔截器啊。如下圖:並且使用了@Configuration這個註解了。
  • 通過Idea創建Spring Boot java項目
    寫在前面,每個java程序開發,需要準備好相應的開發工具和java運行環境。2 啟動創建好的程序在src下面,找到SpringbootdemoApplication這個文件(這是Spring Boot項目的主啟動類),在文件上或者文件中,右擊,在彈窗中點擊 Run 「SpringbootdemoApplication」,啟動剛創建好的Spring Boot程序。
  • Spring Boot 的單元測試和集成測試
    學習如何使用本教程中提供的工具,並在 Spring Boot 環境中編寫單元測試和集成測試。1. 概覽 本文中,我們將了解如何編寫單元測試並將其集成在 Spring Boot 環境中。你可在網上找到大量關於這個主題的教程,但很難在一個頁面中找到你需要的所有信息。我經常注意到初級開發人員混淆了單元測試和集成測試的概念,特別是在談到 Spring 生態系統時。
  • 整車開發流程概述
    在努力成為一名合格汽車人的路上,了解車輛開發流程是十分必要的。我們積累了些許經驗與你分享,期待與你一起在這條道路上奔跑。《HMI設計路書》專輯首篇文章從整車開發流程為起點,逐步深入至HMI設計開發。要了解整車開發流程必須從不同角度來考慮,從時間角度看,是從戰略到系列化支持的不同階段;從過程的角度看,是系統設計到集成的不同階段。另外,產品策略、預研開發是與整車開發過程並行的長期持續規劃的過程。產品戰略規劃車型後,正式啟動項目開發。主要包含三個階段:初始階段、概念階段和系列開發階段。
  • 用Arduino IDE搭建UFUN2.0開發環境及閃燈
    眾所周知,使用Arduino進行開發簡單快捷,一個項目能很快的做好。以我自己的例子,小時候愛好過無線電,有點動手能力而已,但沒有單片機的底子,程式語言基礎也是零,只好選擇Arduino可視化的圖形編程來入門。
  • webpack系列---loader
    常用loader樣式css-loader : 解析css文件中代碼style-loader : 將css模塊作為樣式導出到DOM中less-loader : 加載和轉義less文件sass-loader : 加載和轉義sass/scss文件腳本轉換編譯script-loader : 在全局上下文中執行一次javascript文件,不需要解析babel-loader