2011年3月24日 星期四

porting OS 之前要知道…

※ 引述《green0924 (hmm...)》之銘言:
:  不好意思,因為在別的板問不到,所以轉貼在這裡,要是有違板規
: 的話,小的會自d,感謝~:)
: 請問..
: 1. OS Porting 的工作內容是做些什麼?(Linux)
a. 取得cpu 廠商的sample code來更改
b. 針對自家SOC所擁有的特性抽離出 方便IC改朝換代後更改
c. 自家IC的kernel mode driver是否也要抽離出

d. 瞭解整個開機的過程
e. 瞭解linux scheduler <純嘴砲 當年我也沒去看>
f. 記憶體使用規劃檔案 避免重新build kernel
h. driver model, library 的使用
:  2. 須要事先學習的東西又有哪些?
cpu spec
soc datasheet
周邊相關的事物
scope, LA, PC tool's waveform analysis..
make file 修改, link scripts 與開機的sections, scripts的修改
performance tuning...
: 3. 使用的程式語言又是..?
一般是C, 但出問題時會用到 asm, 而且asm 與CPU架構有關
最好瞭解 方便知道怎麼操控以及瞭解CPU的狀態
:  4. 軟體出身的去做會很辛苦嗎?還是說硬體出身的來做好些?
這本來就是軟體的工作
: 5. 這工作以後的發展..?
其實都可以 既然懂了OS運作原理
那要懂ap frameworks 或者一些standards 並非太難的

:  小的之前做的是 driver porting 的工作,最近收到這樣的職
: 缺信件,感覺比寫 driver 又再更深入了..不知道會不會差很
: 大?

為什麼embedded system中的uboot比 pc上的bootloader(grub or lilo) 還要複雜

所謂的Boot Loader,也有人稱之為Boot Code或Boot Monitor,即是在系統電源打開後最早執行的一小段程式。以執行Linux系統的PC為例,存在於硬碟MBR (Master Boot Record)中的Lilo或Grub程式,就是一種常見的Boot Loader。在PC中,當BIOS做完系統各種初始化後,便會執行MBR中的Boot Loader,接著Boot Loader提供必要的系統資訊給作業系統核心並啟動作業系統。

然而,在嵌入式系統中的Boot Loader則較為複雜,因為大部分的平台中並沒有BIOS來處理系統初始化的動作,且微處理器、記憶體控制器與其它的特定的硬體,其初始化的方式亦隨著CPU或平台的不同而不同,因此我們並不希望將初始化的動作交付給作業系統,而是由Boot Loader來執行。

靠 這十本都看完,才有辦法下command...

http://people.debian.org.tw/~chihchun/2011/03/17/10-linux-kernel-books/

用usb上傳到nand flash上後,更新檔案無反應


各位前輩好!
: 小弟我昨天將NAND Flash割了一個Potition 給模擬U盤使用.
: 格式為FAT32.
: 上傳下載檔案皆正常運作. 但發現到一個問題!
: 從外部傳送一個檔案到NAND Flash時,假如裡面以經有相同檔名的檔案.
: 執行時發現檔案並沒有被覆蓋更改. 裡面的依然是舊的檔案
: 請問這是啥麼問題呢?
: platform - S3C2440
: Kernel - 2.6.32.2
: rootfs - busybox 1.8
你是用 usb 傳檔上來後,直接在 box 上看嗎 ?

如果是這樣的話,請重新 remount 那個 partition 就可以了

因為你用 usb 傳上來並不會去通知 kernel 去重新 sync fat table 資料

所以你在 box 上看到的東西會是舊的,甚至是錯誤的

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.220.106
[1;37m推 [33mDennisT [m [33m:謝謝! 收到了~
重新mount之後得到的就OK了.:) [m 03/22 22:36