Submit Search
Upload
嵌入式平台移植技巧概說
•
50 likes
•
7,629 views
Joseph Lu
Follow
Port Embedded Linux
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 14
Recommended
Java - the most popular programming language. Get to know its advantages and disadvantages to get started with. Whether it is to learn or to get developed an app. A Blog by WeblineIndia.
All You Need to Know About Java – Advantages and Disadvantages
All You Need to Know About Java – Advantages and Disadvantages
carolynebert3007
This is a presentation that I gave at Google Developer Group Oxford to introduce people to Android development and Android Studio IDE, which is used to build Android apps. This presentation gives a brief overview of the platform and fundamentals of the app and what developer tools are available. PS: Some slides do not have any text accompanying it. That is either because it wasn't relevant or because the text would've been too long to put on the corresponding slide.
Introduction to Android and Android Studio
Introduction to Android and Android Studio
Suyash Srijan
Introduction to Linux kernel and embedded systems
Linux for embedded_systems
Linux for embedded_systems
Vandana Salve
Introduction to mobile application development using iOS, Android, HTML5 and PhoneGap
Introduction to Mobile Development
Introduction to Mobile Development
Pragnesh Vaghela
Linux on AArch64 ARM 64-bit Architecture.
Linux on ARM 64-bit Architecture
Linux on ARM 64-bit Architecture
Ryo Jin
We believe that good design is powerful, hard work is essential, and exploring the unknown is important.
Mobile application development ppt
Mobile application development ppt
tirupathinews
Browsing Linux Kernel Source Code
Browsing Linux Kernel Source
Browsing Linux Kernel Source
Motaz Saad
The presentation shows the design concepts about Android Graphics system including SurfaceFlinger, EGL, 2D accelerator, and Binder IPC.
Design and Concepts of Android Graphics
Design and Concepts of Android Graphics
National Cheng Kung University
Recommended
Java - the most popular programming language. Get to know its advantages and disadvantages to get started with. Whether it is to learn or to get developed an app. A Blog by WeblineIndia.
All You Need to Know About Java – Advantages and Disadvantages
All You Need to Know About Java – Advantages and Disadvantages
carolynebert3007
This is a presentation that I gave at Google Developer Group Oxford to introduce people to Android development and Android Studio IDE, which is used to build Android apps. This presentation gives a brief overview of the platform and fundamentals of the app and what developer tools are available. PS: Some slides do not have any text accompanying it. That is either because it wasn't relevant or because the text would've been too long to put on the corresponding slide.
Introduction to Android and Android Studio
Introduction to Android and Android Studio
Suyash Srijan
Introduction to Linux kernel and embedded systems
Linux for embedded_systems
Linux for embedded_systems
Vandana Salve
Introduction to mobile application development using iOS, Android, HTML5 and PhoneGap
Introduction to Mobile Development
Introduction to Mobile Development
Pragnesh Vaghela
Linux on AArch64 ARM 64-bit Architecture.
Linux on ARM 64-bit Architecture
Linux on ARM 64-bit Architecture
Ryo Jin
We believe that good design is powerful, hard work is essential, and exploring the unknown is important.
Mobile application development ppt
Mobile application development ppt
tirupathinews
Browsing Linux Kernel Source Code
Browsing Linux Kernel Source
Browsing Linux Kernel Source
Motaz Saad
The presentation shows the design concepts about Android Graphics system including SurfaceFlinger, EGL, 2D accelerator, and Binder IPC.
Design and Concepts of Android Graphics
Design and Concepts of Android Graphics
National Cheng Kung University
In order to understand HAL layers of Android Framework, having Linux device driver knowledge is important. Hence Day-2 of the workshop focuses on the same.
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
Emertxe Information Technologies Pvt Ltd
Android is an opensource technology , nowadays used in operating systems in mobile devices.
Android ppt
Android ppt
Govind Raj
This lecture/presentation cover topic such as C# Introduction, History, The C# Programming Language, The Microsoft .NET Framework, Why C#?, Types of Application, and SharpDevelop 5.1.x
Introduction to C# Programming
Introduction to C# Programming
Sherwin Banaag Sapin
Web technology is undergoing one of the biggest advancements; the proliferation of front-end JavaScript frameworks. From bettering user experience to improving performance and productivity, front-end frameworks are transforming web and mobile app development. How to choose a front-end framework for your application? The answer is a click away.
Leading frameworks to power your front end development
Leading frameworks to power your front end development
Benish Balakrishnan
Introduction to VB.Net
Introduction to VB.net
Introduction to VB.net
Yousaf Sahota
In this material, I have tried to summarize and provide an overview about the video game industry. By defining the main concepts as classification norms including genres, platforms and rating, then providing an introduction about Production Nature, Production Team, Supply Chain, Marketing Overview (not completed in this version), Sample Games and Sample Egyptian Cartoons. In part two, I am elaborating more about the video game production through defining the different production stages. In part 3, i have tried to conclude part 1 and 2, then summarizing my suggested strategy to develop an international level video game industry in Egypt.
Gaming industry part 1 - introduction
Gaming industry part 1 - introduction
Motaz Agamawi
Scandinavian Developers Conference 2010 Android Internals Presentation
Marakana Android Internals
Marakana Android Internals
Marko Gargenta
An introductory presentation to Embedded Systems. Ideal for beginners to get started with Embedded fundamentals.
Introduction to Embedded System
Introduction to Embedded System
Emertxe Information Technologies Pvt Ltd
This is a brief introduction about HTML5. You will learn that what is new in HTML5. I will tell what and when changes happened in HTML which Hyper Text markup language. Html is a language which is used to create web pages that we have seen on the internet. For website development and web hosting visit https://tekfold.com
Introduction to HTML5
Introduction to HTML5
IT Geeks
Android Internals talk given ad Android Montreal on Nov. 3rd 2010 by Karim Yaghmour (author of O'Reilly's "Building Embedded Linux Systems.")
Android Internals
Android Internals
Opersys inc.
GNU Toolchain is the de facto standard of IT industrial and has been improved by comprehensive open source contributions. In this session, it is expected to cover the mechanism of compiler driver, system interaction (take GNU/Linux for example), linker, C runtime library, and the related dynamic linker. Instead of analyzing the system design, the session is use case driven and illustrated progressively.
from Source to Binary: How GNU Toolchain Works
from Source to Binary: How GNU Toolchain Works
National Cheng Kung University
DOTNET - Basic Presentation
Dotnet Basics Presentation
Dotnet Basics Presentation
Sudhakar Sharma
A comprehensive introduction to HTML 5 markup and some of its APIs
Introduction to html 5
Introduction to html 5
Nir Elbaz
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
Boom Shukla
Basic of Android. Very f
Introduction to android
Introduction to android
zeelpatel0504
This is tutorial of HTML
HTML
HTML
Doeun KOCH
Introduction to Game Development
Introduction to Game Development
Sumit Jain
Both Frontend and backend development are important to learn, but do you know the actual difference? Here we showcase the main difference between frontend and backend development. The frontend is the part the user interacts with through a graphical user interface (GUI) however the backend part of the website remains inaccessible to the user. The visual aspects of the website are the front end and the way the website functions is determined by the backend. The front end uses languages like HTML, CSS, and JavaScript while the backend uses backend including Express, Ruby, Laravel, etc. Clearly, the frontend and backend development are quite different from each other both in their functions, frameworks, and programming language. We are a team of IIT / ISB alumni who are passionate about solving the key problem of starting a career in tech. A lot of smart and hardworking graduates find it difficult to crack high paying tech jobs either because of their background and their college not being able to help them get interviews. Hence, we started this pay after placement boot camp that hand holds people from skilling till employment.
Difference BW Frontend and Backend Development
Difference BW Frontend and Backend Development
FunctionUp
IPC overview: signals, pipes, sockets, shared memory, message passing IPC abstractions: D-Bus, Doors, Binder Capabilities: minting, deriving, derivation tree Capability-based microkernels: HYDRA, GNOSIS, KeyKOS, EROS, CapROS, Coyotos, seL4 Microkernel IPC: Mach, L3, L4, HelenOS
IPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, Capabilities
Martin Děcký
Media queries are one of the most exciting aspects about CSS today. They will allow us to change our layouts to suit the exact need of different devices - without changing the content. This presentation explains what Media queries are, how to use them, how to target the iPhone and how to create flexible layouts.
CSS3 Media Queries
CSS3 Media Queries
Russ Weakley
Docker 基本指令介紹,適合剛入門 Docker 的開發者
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
Bo-Yi Wu
會R代表你會數據分析,會R與Spark代表你會大數據分析,15頁投影片幫你在Linux上實現Rstudio Server 與Spark的溝通
在Linux上實現Rstudio Server 與Spark的溝通
在Linux上實現Rstudio Server 與Spark的溝通
電腦科學 實驗室
More Related Content
What's hot
In order to understand HAL layers of Android Framework, having Linux device driver knowledge is important. Hence Day-2 of the workshop focuses on the same.
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
Emertxe Information Technologies Pvt Ltd
Android is an opensource technology , nowadays used in operating systems in mobile devices.
Android ppt
Android ppt
Govind Raj
This lecture/presentation cover topic such as C# Introduction, History, The C# Programming Language, The Microsoft .NET Framework, Why C#?, Types of Application, and SharpDevelop 5.1.x
Introduction to C# Programming
Introduction to C# Programming
Sherwin Banaag Sapin
Web technology is undergoing one of the biggest advancements; the proliferation of front-end JavaScript frameworks. From bettering user experience to improving performance and productivity, front-end frameworks are transforming web and mobile app development. How to choose a front-end framework for your application? The answer is a click away.
Leading frameworks to power your front end development
Leading frameworks to power your front end development
Benish Balakrishnan
Introduction to VB.Net
Introduction to VB.net
Introduction to VB.net
Yousaf Sahota
In this material, I have tried to summarize and provide an overview about the video game industry. By defining the main concepts as classification norms including genres, platforms and rating, then providing an introduction about Production Nature, Production Team, Supply Chain, Marketing Overview (not completed in this version), Sample Games and Sample Egyptian Cartoons. In part two, I am elaborating more about the video game production through defining the different production stages. In part 3, i have tried to conclude part 1 and 2, then summarizing my suggested strategy to develop an international level video game industry in Egypt.
Gaming industry part 1 - introduction
Gaming industry part 1 - introduction
Motaz Agamawi
Scandinavian Developers Conference 2010 Android Internals Presentation
Marakana Android Internals
Marakana Android Internals
Marko Gargenta
An introductory presentation to Embedded Systems. Ideal for beginners to get started with Embedded fundamentals.
Introduction to Embedded System
Introduction to Embedded System
Emertxe Information Technologies Pvt Ltd
This is a brief introduction about HTML5. You will learn that what is new in HTML5. I will tell what and when changes happened in HTML which Hyper Text markup language. Html is a language which is used to create web pages that we have seen on the internet. For website development and web hosting visit https://tekfold.com
Introduction to HTML5
Introduction to HTML5
IT Geeks
Android Internals talk given ad Android Montreal on Nov. 3rd 2010 by Karim Yaghmour (author of O'Reilly's "Building Embedded Linux Systems.")
Android Internals
Android Internals
Opersys inc.
GNU Toolchain is the de facto standard of IT industrial and has been improved by comprehensive open source contributions. In this session, it is expected to cover the mechanism of compiler driver, system interaction (take GNU/Linux for example), linker, C runtime library, and the related dynamic linker. Instead of analyzing the system design, the session is use case driven and illustrated progressively.
from Source to Binary: How GNU Toolchain Works
from Source to Binary: How GNU Toolchain Works
National Cheng Kung University
DOTNET - Basic Presentation
Dotnet Basics Presentation
Dotnet Basics Presentation
Sudhakar Sharma
A comprehensive introduction to HTML 5 markup and some of its APIs
Introduction to html 5
Introduction to html 5
Nir Elbaz
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
Boom Shukla
Basic of Android. Very f
Introduction to android
Introduction to android
zeelpatel0504
This is tutorial of HTML
HTML
HTML
Doeun KOCH
Introduction to Game Development
Introduction to Game Development
Sumit Jain
Both Frontend and backend development are important to learn, but do you know the actual difference? Here we showcase the main difference between frontend and backend development. The frontend is the part the user interacts with through a graphical user interface (GUI) however the backend part of the website remains inaccessible to the user. The visual aspects of the website are the front end and the way the website functions is determined by the backend. The front end uses languages like HTML, CSS, and JavaScript while the backend uses backend including Express, Ruby, Laravel, etc. Clearly, the frontend and backend development are quite different from each other both in their functions, frameworks, and programming language. We are a team of IIT / ISB alumni who are passionate about solving the key problem of starting a career in tech. A lot of smart and hardworking graduates find it difficult to crack high paying tech jobs either because of their background and their college not being able to help them get interviews. Hence, we started this pay after placement boot camp that hand holds people from skilling till employment.
Difference BW Frontend and Backend Development
Difference BW Frontend and Backend Development
FunctionUp
IPC overview: signals, pipes, sockets, shared memory, message passing IPC abstractions: D-Bus, Doors, Binder Capabilities: minting, deriving, derivation tree Capability-based microkernels: HYDRA, GNOSIS, KeyKOS, EROS, CapROS, Coyotos, seL4 Microkernel IPC: Mach, L3, L4, HelenOS
IPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, Capabilities
Martin Děcký
Media queries are one of the most exciting aspects about CSS today. They will allow us to change our layouts to suit the exact need of different devices - without changing the content. This presentation explains what Media queries are, how to use them, how to target the iPhone and how to create flexible layouts.
CSS3 Media Queries
CSS3 Media Queries
Russ Weakley
What's hot
(20)
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
Android ppt
Android ppt
Introduction to C# Programming
Introduction to C# Programming
Leading frameworks to power your front end development
Leading frameworks to power your front end development
Introduction to VB.net
Introduction to VB.net
Gaming industry part 1 - introduction
Gaming industry part 1 - introduction
Marakana Android Internals
Marakana Android Internals
Introduction to Embedded System
Introduction to Embedded System
Introduction to HTML5
Introduction to HTML5
Android Internals
Android Internals
from Source to Binary: How GNU Toolchain Works
from Source to Binary: How GNU Toolchain Works
Dotnet Basics Presentation
Dotnet Basics Presentation
Introduction to html 5
Introduction to html 5
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
Introduction to android
Introduction to android
HTML
HTML
Introduction to Game Development
Introduction to Game Development
Difference BW Frontend and Backend Development
Difference BW Frontend and Backend Development
IPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, Capabilities
CSS3 Media Queries
CSS3 Media Queries
Similar to 嵌入式平台移植技巧概說
Docker 基本指令介紹,適合剛入門 Docker 的開發者
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
Bo-Yi Wu
會R代表你會數據分析,會R與Spark代表你會大數據分析,15頁投影片幫你在Linux上實現Rstudio Server 與Spark的溝通
在Linux上實現Rstudio Server 與Spark的溝通
在Linux上實現Rstudio Server 與Spark的溝通
電腦科學 實驗室
利用Cent Os快速构建自己的发行版
利用Cent Os快速构建自己的发行版
xingsu1021
Check out my blog : https://oalieno.github.io/2019/06/07/security/pwn/rootkit/ Introduction and implementation of rootkit. Targeting linux kernel 5.x.x.
Rootkit 101
Rootkit 101
WEI CHIEH CHAO
SITCON 6/13 雲林聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚
Lorex L. Yang
20121111 linux intro
20121111 linux intro
Chang Mt
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版
redhat9
Build desktop app_by_xulrunner
Build desktop app_by_xulrunner
Rack Lin
RaspberryPi set the initial system
[1]投影片 futurewad樹莓派研習會 141120
[1]投影片 futurewad樹莓派研習會 141120
CAVEDU Education
Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化
Dahui Feng
2015年9月19世界軟體自由日於軟體自由協會的分享簡報!
Ox office現在。即未來(201509)
Ox office現在。即未來(201509)
晟鑫科技股份有限公司
Some basic knowledge about computer. And tips to make your work fast
Some tips
Some tips
Wei-Bo Chen
20030623 linuxbasic and-security
20030623 linuxbasic and-security
建融 黃
COSCUP 2016 Keynote speech - Talking about how to write high performance application and service from hardware, operation system to application level.
寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事
Chieh (Jack) Yu
移植Os and 相關io介紹
移植Os and 相關io介紹
移植Os and 相關io介紹
Hong Da Lin
Docker tutorial. 基本的介紹:run, pull, commit, Dockerfile, build, port, link, volume. 在用 docker 的時候,會一直提醒自己,關鍵在 a process in a box,一個 process,在一個箱子裡。很簡單的一句話,但我覺得是很關鍵的一個概念。另外一個我覺得很重要的是 writable layer + readonly image 這個做法,很喜歡這個設計,所以每次的 commit 都應該只是小小的變化,解耦以便於共用、更新、抽換。 其他的反而簡單,指令 ps,commit/pull/push 這些,不是跟原本 linux 的指令概念類似,就是仿照 git,有稍微在用 linux 與 git 的人,應該非常好懂,我反覺得這部分不需多加解釋,學的人自己去玩過一次便是了。(一定要自己動手玩過才有感覺的!) 這份投影片沒有提到的部分是 exec/attach, save/load, export/import,與更進階一點的網路。希望下次能有機會整理出來,也能再多看、多想一些使用案例,工具好用,但自己也要用得好才能發揮。 http://imazole.wordpress.com/2014/12/24/docker-tutorial/
Docker tutorial
Docker tutorial
azole Lai
網站: http://devopssummit.ithome.com.tw/ Blog: https://blog.wu-boy.com/ Github: https://github.com/appleboy
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
Bo-Yi Wu
(Presentation at COSCUP 2012) Discuss why you should try to develop your own operating system and how you can speed up by taking the microkernel approach.
Develop Your Own Operating System
Develop Your Own Operating System
National Cheng Kung University
下集:http://www.slideshare.net/zzz00072/2-32517297
軟體組裝心得分享
軟體組裝心得分享
Wen Liao
第0次JVM源码阅读活动 分享目标 * 让VM相关基础知识尚浅的人找到阅读HotSpot VM源码之外的学习JVM的路径 * 让并不真的对VM内部实现细节感兴趣的人不必在源码上耗费精力 * 为后续活动做准备 * 确定活动周期、形式、目标受众 * 吸引同好报名分享阅读VM源码的经验
为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)
Kris Mok
Similar to 嵌入式平台移植技巧概說
(20)
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
在Linux上實現Rstudio Server 與Spark的溝通
在Linux上實現Rstudio Server 與Spark的溝通
利用Cent Os快速构建自己的发行版
利用Cent Os快速构建自己的发行版
Rootkit 101
Rootkit 101
快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚
20121111 linux intro
20121111 linux intro
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版
Build desktop app_by_xulrunner
Build desktop app_by_xulrunner
[1]投影片 futurewad樹莓派研習會 141120
[1]投影片 futurewad樹莓派研習會 141120
Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化
Ox office現在。即未來(201509)
Ox office現在。即未來(201509)
Some tips
Some tips
20030623 linuxbasic and-security
20030623 linuxbasic and-security
寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事
移植Os and 相關io介紹
移植Os and 相關io介紹
Docker tutorial
Docker tutorial
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
Develop Your Own Operating System
Develop Your Own Operating System
軟體組裝心得分享
軟體組裝心得分享
为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)
嵌入式平台移植技巧概說
1.
嵌入式平台移植技巧概說 盧釔辰 Joseph Lu
2.
Outline • Freescale iMX6
porting流程 • 基本硬體知識 • 如何從上百隻程式中,找出系統執行的第一支主程式 • 尋找uboot 主程式 • 尋找編譯器載入檔 .lds • 由makefile搜尋 • 追蹤系統程式碼常用指令與技巧 • U-Boot 流程概述 • 其餘工具介紹 2016/3/9 joseph78715@gmail.com 2
3.
Freescale iMX6 porting
流程 • 我有整理資料如下,請自行參閱 https://hackpad.com/Freescale-iMX6-porting-EKoWlOejTiw 2016/3/9 joseph78715@gmail.com 3
4.
基本硬體知識 • L1 Cache
: 因為讀寫頻率極高,所以通常會採用速度較快的 SRAM • L2 Cache , RAM : 因為成本考量,通常會使用讀寫速度較次一級的 DRAM • Flash : 通常採用NAND Flash or NOR Flash • NAND Flash 需要初始化 ( 不可放uboot 程式 ,除非支援Stepping–stone ) ,且速度較慢但便宜 • NOR Flash 不須初始化 ( 可放uboot 程式 ),速度較快 P.S. 我們常聽到的記憶體(memory ) , 其實是 Cache , RAM 的統稱 2016/3/9 4 速度比較 : SRAM > DRAM > > NOR Flash > NAND Flash 價格比較 : SRAM > DRAM > > NOR Flash > NAND Flash
5.
基本硬體知識 • 1st stage
boot loader 只能放在不須初始化即可使用的儲存空間。E.g. 1. 有支援 Stepping–stone 的 NAND Flash • Stepping–stone : • 三星專利。上電時硬體電路會抓取 NAND Flash 的前 128k ( 每顆 NAND 支援大小不一定 ), 放進 SRAM 中執行。 • 只要你的 uboot 程式有辦法在 128k 內完成 CPU , Memory 以及 NAND Flash 初始化 ,就可 以利用NAND Flash 開機 。 • 也因為 Stepping–stone 技術的出現,讓開發商不用特地買一塊貴貴小小的 NOR Flash 放 Bootloader 程式,而可以全部改用便宜的 NAND Flash 取代。 2. NOR Flash : • NOR Flash 可以和 CPU pin-to-pin ,支援 XIP ( Execute in place )。不須初始化即可使用 2016/3/9 joseph78715@gmail.com 5
6.
悲劇的嵌入式工程師 • 如果你覺得Uboot &
kernel 的source code 動不動上千萬行,可能一輩子都看 不完 • 從 Linux kernel 4.1 以後,原始程式碼已衝到 2000 萬行的規模 • 而在u-boot & kernel 程式碼都沒 trace 完一遍的情形下,上司又要你在有限時 間內把OS porting 上去,根本超級悲慘兼毫無人性 時間就是金錢! 這是一個什麼都趕的時代 老闆趕出貨 , PM趕結案 , 於是 工程師趕羚羊 2016/3/9 joseph78715@gmail.com 6
7.
千萬別這麼悲觀 , 因為
… 還有更可怕 更可怕 更可怕 的挑戰在等你 2016/3/9 joseph78715@gmail.com 7
8.
更可怕的是… 在 OS sorce
code 裡,不是每一行程式都會被編譯,而編譯了也不一定被連結, 連結了不一定被執行。 若沒搞清楚狀況,可能 trace 了好幾天的程式碼後,才發現該段程式碼根本 不會被執行,所以看了等於白看、改了等於白改 , … 2016/3/9 joseph78715@gmail.com 8
9.
所以,如何從上千個檔案中,找出系統所 執行的第一個函式所在位置呢? • 以尋找uboot 執行的第一支函式為例
Sol 1 : 尋找編譯器載入檔 .lds /board/$5/$4/u-boot.lds cpu/$3/start.S Sol 2 : 由晶片商所提供的編譯 Uboot 的 makefile 中尋找 • 當我們找出第一個被執行的函式所在檔案,就可以順藤摸瓜找出系統會執行的第2 支、第3支被執行的函式,依序追蹤下去 2016/3/9 joseph78715@gmail.com 9
10.
追蹤系統程式碼常用指令與技巧 (1/2) • 欲搜尋Uboot執行第一支程式,可由找到編譯器載入程式
. lds 檔下手 • 做嵌入式要習慣隨便一找就找出幾百個同名檔案,此時就要依系統架構去判 斷,到底哪個才是你要用的 2016/3/9 joseph78715@gmail.com 10
11.
追蹤系統程式碼常用指令與技巧 (2/2) • Q
: 想找某個變數在source code的哪些檔案的哪裡有出現? • Ans : 請用正規表達式(Global Regular Expression) grep 搜尋。 2016/3/9 joseph78715@gmail.com 11
12.
U-Boot 流程概述 • 切入
SVC 模式 • 只有svc mode可以修改硬體參數。進user mode ( kernel跑起來後 ) 就無法對硬體設定做修改 • 清除 I-Cache / D-Cache • 為 MMU 相關暫存器設定初值 • 設定 peripheral bus 起點 • 初始化 CPU ( 設定 PLL ) 與記憶體 ( 設定 Tacc , Tacp ,... ) • 偵測 U-Boot 是放在NAND or NOR Flash • 若放在NAND 則須將剩下的uboot程式copy到DRAM執行 • 若放在NOR 則不須複製到RAM,可直接執行。但一般為了效能考量仍會複製到RAM中 執行 • 初始化 MMU • 初始化堆疊區 • 初始化 BSS 區 • 跳入第二階段的 start_armboot() 函數 : • 跳離此處便不再回來,至此由ARM組語變為 C語言執行 2016/3/9 joseph78715@gmail.com 12
13.
其餘工具介紹 • 程式除錯工具GDB &
CGDB • 我有整理資料如下,請自行參閱 https://hackpad.com/GDB-CGDB-7dUwpX8os7U • 版本控制 Git • 我有整理資料如下,請自行參閱 https://hackpad.com/Git-SVKqwqVxUNQ 2016/3/9 joseph78715@gmail.com 13
14.
參考資料 • U-Boot 簡明概要 •
http://teacherchi.tumblr.com/post/20112222844/u-boot- %E7%B0%A1%E6%98%8E%E6%A6%82%E8%A6%81 2016/3/9 joseph78715@gmail.com 14