S3C2440开发板烧录笔记
S3C2440開發(fā)板燒錄筆記
本篇博客來自凌云實(shí)驗(yàn)室開發(fā)板介紹及其燒錄學(xué)習(xí)筆記
1. 開發(fā)板基礎(chǔ)和介紹
- 三星公司的 16/32 位精簡指令集(RISC)微處理器 S3C2440A
- 基于 ARM920T 核心,0.13μm 的 CMOS 標(biāo)準(zhǔn)宏單元和存儲(chǔ)器單元
- 它采用了新的總線架構(gòu)如先進(jìn)微控制總線構(gòu)架(AMBA)1
主要注意:256M的nandflash,64M的內(nèi)存帶DM9000網(wǎng)卡,網(wǎng)卡需要改設(shè)置。
2. 啟動(dòng)原理+流程
2.1 內(nèi)存介紹
SRAM:Static Random-Access Memory,是隨機(jī)存取存儲(chǔ)器的一種。所謂的“靜態(tài)”,是指這種存儲(chǔ)器只要保持通電,里面儲(chǔ)存的數(shù)據(jù)就可以恒常保持。
SDRAM:Synchronous Dynamic Random Access Memory,掉電易丟失,需要初始化。
FLASH :長壽命的非易失性(在斷電情況下仍能保持所存儲(chǔ)的數(shù)據(jù)信息)的存儲(chǔ)器,可分為兩種,一種是NOR型閃存,以編碼應(yīng)用為主,其功能多與運(yùn)算相關(guān);另一種為NAND型閃存,主要功能是存儲(chǔ)資料。
2.2 系統(tǒng)運(yùn)行過程
cpu執(zhí)行程序,首先將程序燒錄進(jìn)開發(fā)板,程序在SDRAM中運(yùn)行,開機(jī)程序不能直接運(yùn)行,但SRAM可以運(yùn)行,所以在SRAM中運(yùn)行一個(gè)小程序來初始化cpu、初始化內(nèi)存、初始化nandflash,就可以引導(dǎo)程序運(yùn)行起來。
2.2.1.j-link加載bootstrap程序到SRAM 0地址上運(yùn)行,該程序用來初始化外部SDRAM
在安裝好的j-link Commander加載起點(diǎn)文件
****** 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地址上運(yùn)行,該程序相當(dāng)于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通過串口的形式將文件下載進(jìn)去
2.2.3.u-boot在SDPRAM中運(yùn)行起來后,下載u-boot,Linux內(nèi)核(包括根文件系統(tǒng))燒錄到Nandflash上去
(1) 前期環(huán)境準(zhǔn)備
開發(fā)板通過網(wǎng)線直連,與pc機(jī)保持通信,建立開發(fā)板與pc機(jī)連接基礎(chǔ),即保證在同一網(wǎng)段區(qū)別無線網(wǎng)卡。
[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系統(tǒng)燒錄
[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) 根文件系統(tǒng)燒錄
[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. 實(shí)驗(yàn)結(jié)果
重啟開發(fā)板
[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 ~ >:開發(fā)板現(xiàn)象
####理清注意點(diǎn):
- 開發(fā)板與PC之間的通信要滿足計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)知識(shí),能在統(tǒng)一網(wǎng)絡(luò)之間相互通信。
- 弄清楚筆記本無線網(wǎng)卡、無線網(wǎng)卡、開發(fā)板的網(wǎng)卡之間的通信關(guān)系。
- 下載文件途徑,通過tftp下載方式的實(shí)現(xiàn),和tftp文件上傳下載目錄的關(guān)系
AMBA 總線和哈佛結(jié)構(gòu)高速緩沖體系結(jié)構(gòu)。這一結(jié)構(gòu)具有獨(dú)立的 16KB 指令高速緩存和 16KB 數(shù)據(jù)高速緩存。每個(gè)都是由具有 8 字長的行(line)組成。 ??
總結(jié)
以上是生活随笔為你收集整理的S3C2440开发板烧录笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代数-抽象代数
- 下一篇: Android 开发即时聊天工具系列(8