S3C2440开发板烧录笔记
S3C2440開發板燒錄筆記
本篇博客來自凌云實驗室開發板介紹及其燒錄學習筆記
1. 開發板基礎和介紹
- 三星公司的 16/32 位精簡指令集(RISC)微處理器 S3C2440A
- 基于 ARM920T 核心,0.13μm 的 CMOS 標準宏單元和存儲器單元
- 它采用了新的總線架構如先進微控制總線構架(AMBA)1
主要注意:256M的nandflash,64M的內存帶DM9000網卡,網卡需要改設置。
2. 啟動原理+流程
2.1 內存介紹
SRAM:Static Random-Access Memory,是隨機存取存儲器的一種。所謂的“靜態”,是指這種存儲器只要保持通電,里面儲存的數據就可以恒常保持。
SDRAM:Synchronous Dynamic Random Access Memory,掉電易丟失,需要初始化。
FLASH :長壽命的非易失性(在斷電情況下仍能保持所存儲的數據信息)的存儲器,可分為兩種,一種是NOR型閃存,以編碼應用為主,其功能多與運算相關;另一種為NAND型閃存,主要功能是存儲資料。
2.2 系統運行過程
cpu執行程序,首先將程序燒錄進開發板,程序在SDRAM中運行,開機程序不能直接運行,但SRAM可以運行,所以在SRAM中運行一個小程序來初始化cpu、初始化內存、初始化nandflash,就可以引導程序運行起來。
2.2.1.j-link加載bootstrap程序到SRAM 0地址上運行,該程序用來初始化外部SDRAM
在安裝好的j-link Commander加載起點文件
****** Error: Unable to halt ARM core Found 1 JTAG device, Total IRLen = 4:#0 Id: 0x0032409D, IRLen: 04, Unknown device JTAG speed: 1000 kHz J-Link>h Info: J-Link: ARM9 CP15 Settings changed: 0xC000107E from 0x00000078, MMU Off, ICache On, DCache On PC: (R15) = 33F847A4, CPSR = 800000D3 (SVC mode, ARM FIQ dis. IRQ dis.) R0 = 33FA6BA0, R1 = 30019800, R2 = 00000800, R3 = 000003D3 R4 = 33FA6BA0, R5 = 33FA6AF0, R6 = 00000008, R7 = 30019800 USR: R8 =33F3FFE0, R9 =33F40008, R10=30019800, R11 =30019800, R12 =000000EFR13=FFFFEFFF, R14=FFFDFFFF FIQ: R8 =F67FFFFF, R9 =DBFFFFFF, R10=FEBEFEFB, R11 =FFFBFFFF, R12 =FFEFFFFFR13=DFFFFFBF, R14=F7FFFF2E, SPSR=00000011 SVC: R13=33F3FD08, R14=33F849E0, SPSR=00000014 ABT: R13=FFFEFFFD, R14=FFFFFDB7, SPSR=0000001D IRQ: R13=BFDF7BFE, R14=BFFFFDFF, SPSR=00000010 UND: R13=FFFFFF9D, R14=7FFFFFFF, SPSR=00000014 J-Link>speed 12000 JTAG speed: 12000 kHz J-Link>loadbin D:\Linux\軟件安裝\fl2440文件\bootstrap-s3c2440.bin 0 Loading binary file... [D:\Linux\軟件安裝\fl2440文件\bootstrap-s3c2440.bin] Writing bin data into target memory @ 0x00000000. J-Link>setpc 0 J-Link>g2.2.2.j-link加載u-boo程序到外部SDRAM0x3f80000地址上運行,該程序相當于PC上的BIOS
J-Link>h ... J-Link>loadbin D:\Linux\軟件安裝\fl2440文件\u-boot-s3c2440.bin 0x33f80000 Loading binary file... [D:\Linux\軟件安裝\fl2440文件\u-boot-s3c2440.bin] Writing bin data into target memory @ 0x33F80000. J-Link>setpc 0x33f80000 J-Link>g J-Link>安裝securecrt通過串口的形式將文件下載進去
2.2.3.u-boot在SDPRAM中運行起來后,下載u-boot,Linux內核(包括根文件系統)燒錄到Nandflash上去
(1) 前期環境準備
開發板通過網線直連,與pc機保持通信,建立開發板與pc機連接基礎,即保證在同一網段區別無線網卡。
[fl2440@lingyun]# pri [fl2440@lingyun]# set ipaddr 192.168.10.1 [fl2440@lingyun]# set serverip 192.168.10.8 [fl2440@lingyun]# pri ... ethaddr=00:11:22:33:44:55 ipaddr=192.168.10.1 serverip=192.168.10.8 ... [fl2440@lingyun]# ping 192.168.10.8 dm9000 i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 00:11:22:33:44:55 could not establish link Using dm9000 device host 192.168.10.8 is alive(2) u-boot燒錄
[fl2440@lingyun]# tftp 30008000 u-boot-s3c2440.bin dm9000 i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 00:11:22:33:44:55 could not establish link Using dm9000 device TFTP from server 192.168.10.8; our IP address is 192.168.10.1 Filename 'u-boot-s3c2440.bin'. Load address: 0x30008000 Loading: ########## done Bytes transferred = 146324 (23b94 hex) [fl2440@lingyun]# nand erase 0 100000NAND erase: device 0 offset 0x0, size 0x100000 Erasing at 0xe0000 -- 100% complete. OK [fl2440@lingyun]# nand write 30008000 0 60000NAND write: device 0 offset 0x0, size 0x60000393216 bytes written: OK(3) linux系統燒錄
[fl2440@lingyun]# tftp 30008000 linuxrom-s3c2440.bin dm9000 i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 00:11:22:33:44:55 could not establish link Using dm9000 device TFTP from server 192.168.10.8; our IP address is 192.168.10.1 Filename 'linuxrom-s3c2440.bin'. Load address: 0x30008000 Loading: ############################################################################################################################################################################################ done Bytes transferred = 2752308 (29ff34 hex) [fl2440@lingyun]# nand erase 100000NAND erase: device 0 offset 0x100000, size 0xff00000 Skipping bad block at 0x004c0000 Skipping bad block at 0x0aa80000 Skipping bad block at 0x0fae0000 Erasing at 0xffe0000 -- 100% complete. OK [fl2440@lingyun]# nand write 30008000 100000 ${filesize}NAND write: device 0 offset 0x100000, size 0x2a00002752512 bytes written: OK(4) 根文件系統燒錄
[fl2440@lingyun]# tftp 30800000 rootfs-ubifs.bin dm9000 i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 00:11:22:33:44:55 could not establish link Using dm9000 device TFTP from server 192.168.10.8; our IP address is 192.168.10.1 Filename 'rootfs-ubifs.bin'. Load address: 0x30800000 Loading: T ################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################## done Bytes transferred = 9175040 (8c0000 hex) [fl2440@lingyun]# nand erase 1000000 4000000NAND erase: device 0 offset 0x1000000, size 0x4000000 Erasing at 0x4fe0000 -- 100% complete. OK [fl2440@lingyun]# nand write 30800000 1000000 $filesizeNAND write: device 0 offset 0x1000000, size 0x8c00009175040 bytes written: OK4. 實驗結果
重啟開發板
[fl2440@lingyun]# reset resetting ...U-Boot 2010.09 (May 05 2017 - 19:48:28)DRAM: 64 MiB NAND: 256 MiB *** Warning - bad CRC or NAND, using default environmentIn: serial Out: serial Err: serial Net: dm9000 Hit any key to stop autoboot: 0 NAND read: device 0 offset 0x100000, size 0x900000 Skipping bad block 0x004c00009437184 bytes read: OK ## Booting kernel from Legacy Image at 30008000 ...Image Name: Linux KernelCreated: 2017-06-19 22:03:17 UTCImage Type: ARM Linux Kernel Image (uncompressed)Data Size: 2752244 Bytes = 2.6 MiBLoad Address: 30008000Entry Point: 30008040...g_serial gadget: g_serial ready dm9000 dm9000.0: eth0: link down dm9000 dm9000.0: eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1Default Username: root Password: 12345WirelessRouter login: root Password: ~ >: ping 4.2.2.2 PING 4.2.2.2 (4.2.2.2): 56 data bytes ping: sendto: Network is unreachable ~ >: ls apps dev info linuxrc mnt root sys var bin etc init logs opt sbin tmp data home lib media proc stat usr ~ >:開發板現象
####理清注意點:
- 開發板與PC之間的通信要滿足計算機網絡相關知識,能在統一網絡之間相互通信。
- 弄清楚筆記本無線網卡、無線網卡、開發板的網卡之間的通信關系。
- 下載文件途徑,通過tftp下載方式的實現,和tftp文件上傳下載目錄的關系
AMBA 總線和哈佛結構高速緩沖體系結構。這一結構具有獨立的 16KB 指令高速緩存和 16KB 數據高速緩存。每個都是由具有 8 字長的行(line)組成。 ??
總結
以上是生活随笔為你收集整理的S3C2440开发板烧录笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代数-抽象代数
- 下一篇: Android 开发即时聊天工具系列(8