[心得] S3C2410 Bootloader

看板LinuxDev作者 (當憲兵是我一輩子的恥辱)時間15年前 (2008/12/27 20:09), 編輯推噓9(906)
留言15則, 7人參與, 最新討論串1/5 (看更多)
附檔是一份我自己寫的 bootloader 用 SBC-2410x 這片版子開發的 如果你用 Samsung S3C2410 這顆 ARM9, 開機的流程應該是大同小異 bootloader 主要有下面的特徵... * Easy to read (自己重新刻過, 起碼我自己覺得還滿好讀的 XD) * NAND Flash support (Samsumg K9F1208) * MMU support 我自己寫了一個 HAL (Hardware Abstraction Layer) 裡面有以下的 driver, 放在 src/HAL 底下 * Ring buffer driver * UART driver (depends on ring buffer) * ISR module * Timer module * LED module * USB module 我也把 uC/OS II 移植進去, src/ucos2/底下有相關的檔案... * os/ 從 Micrium 網站下載回來的 source code * ARM/ 移植到 ARM 相關的檔案 * Driver/ 在 ucos2 裡的 device driver 包括 ring buffer 和 UART, 這部分其實和 HAL 的類似 * App/ 包括一個 RS232 使用的 shell, 提供以下功能... Support command of Q_Q shell: help Show this help irq Show IRQ status, incluing IRQ name, # of ISR r1 Read 1-byte from memory r2 Read 2-byte from memory r4 Read 4-byte from memory uart UART related operation w1 Write 1-byte to memory w2 Write 2-byte to memory w4 Write 4-byte to memory 還有一個 USB-shell, 提供以下功能, 主要是拿來讀寫Flash r1 Read 1-byte from ARM memory r2 Read 2-byte from ARM memory r4 Read 4-byte from ARM memory rr Read a range of memory from ARM w1 Write 1-byte to ARM memory w2 Write 2-byte to ARM memory w4 Write 4-byte to ARM memory wr Write file to ARM memory flash_erase Erase one block of flash flash_read Read blocks of flash to file flash_write Write file to flash help Show this help 我用的 JTAG 是 J-Link, 我利用 J-Link 可以 load binary 到 ARM 的特性 寫了一個 Flash Writer, 放在 Flash_Writer/ 底下 * src/Flash_Writter/ ARM程式, 把 RAM 的資料寫到FLASH * src/Flash_Writter_VC++/ 產生 script 給 J-Link, 初始化燒錄環境 這個 project 很大一部份是練習寫 USB 相關的程式, 相關的檔案如下... * USB/dist LibUSB32 相關的安裝檔 * USB/driver/ 我用 LibUSB32 為我的版子產生的 driver * USB/Win32 App/usb_shell 和 ARM 的 USB module 溝通的程式 ---- 感謝網路上很多朋友的分享, 我才能寫出這些程式 把相關的 source code 分享出來, 給需要的人使用 如果你也正在研究bootloader, 希望這份資料幫得上忙 Lihgong Wu ---- http://qqmou.mail.googlepages.com/ARM_bootloader.rar   -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.89.27

12/27 21:20, , 1F
頭推
12/27 21:20, 1F

12/27 23:18, , 2F
感恩..謝謝好人
12/27 23:18, 2F

12/27 23:42, , 3F
12/27 23:42, 3F

12/28 03:52, , 4F
有個小問題...原po不覺得 Keil C 的編輯器是無敵難用的嗎
12/28 03:52, 4F

12/28 11:04, , 5F
所以我都用 notepad++ :D
12/28 11:04, 5F

12/28 12:27, , 6F
剛設定完 PLL 不需要等他 Lock 住嗎?
12/28 12:27, 6F

12/28 14:09, , 7F
Keil C 的 Editor 不難用吧,最少比 BCB editor 好用
12/28 14:09, 7F

12/28 14:32, , 8F
PLL 的部分, 我是參考其他人的寫法. Data Sheet 有提到
12/28 14:32, 8F

12/28 14:32, , 9F
當PLL的設定下去以後, 晶片內部會自動等待PLL穩定
12/28 14:32, 9F

12/28 14:33, , 10F
再把clock輸出. 等待期間, 沒有clock輸出
12/28 14:33, 10F

12/28 15:44, , 11F
我的 Keil C 會mis-alignment..
12/28 15:44, 11F

12/28 15:46, , 12F
i see... 可能我用的不同顆 XD .. 我是 STR9
12/28 15:46, 12F

12/29 22:28, , 13F
我是用長高的ST-2410V3.0
12/29 22:28, 13F

01/01 11:48, , 14F
Q_Q shell ... XDDD
01/01 11:48, 14F

01/30 14:08, , 15F
只要不用斜體字及粗體字,uVision的游標對齊就不會出錯了
01/30 14:08, 15F
文章代碼(AID): #19LXhs7q (LinuxDev)
文章代碼(AID): #19LXhs7q (LinuxDev)