FL2440開發版燒錄,u-boot移植,和簡單C程序運行

燒錄文件說明:

bootstrap-s3c2440.bin
bootstrap文件是用匯編寫的一段代碼,主要用來初始化CPU外部的SDRAM;在燒錄時,該程序需要使用j-link下載到0x0(CPU內部SRRAM)地址上去運行,另外此程序不需要燒錄到Nandflash上。

u-boot-s3c2440.bin

u-boot就相當於電腦的BIOS程序,該程序用來燒錄/啓動Linux系統等。在運行完bootstrap後,我們需要使用j-link將它加載到0x33f80000(CPU外部SDRAM)中去運行,當他在存中運行起來後,再使用nand write命令將他燒錄到nandflash的0地址上去;

linuxrom-s3c2440.bin

linuxrom是linux系統文件,我們需要在u-boot運行時,使用tftp命令下載到SDRAM的0x30008000地址上,然後再使用nand write命令將其燒錄到nandflash的0x100000地址上,記得flash再寫之前一定要先使用nand erase命令擦除。

s3c2440_apps.apm

該程序爲FL2440上的應用程序,包括系統配置,WiFi使用,3G/GPRS撥號,數據庫,web server,MP3/MP4播放器程序等;修改網卡IP地址和MAC地址在:/apps/etc/network/ifcfg-eth0

開發版啓動過程如圖

j-link加載u-boot命令:

h 停止CPU中正在執行的程序,如果沒有停下,可以多按幾次h
speed 12000 設置J-link調試速度爲12M
loadbin D:\yixieziliao\Linux\bootstrap-s3c2440.bin 0 加載bootstrap程序到CPU內部的4K SRAM中運行
setpc 0 讓PC寄出去指向SRAM的起始地址,該地址放的是剛纔下載的bootstrap程序
g 開始執行bootstrap程序,該程序用來初始化外部擴展的64M SDRAM,地址空間爲0x3000 0000~(0x3000 0000+64M)
此時會看到FL2440開發板上亮了一個LED燈

h 停止bootstrap程序的執行,如果沒有停下,可以多按幾次h
loadbin D:\yixieziliao\Linux\u-boot-s3c2440.bin 0x33f80000 將u-boot加載到SDRAM的0x33f80000
setpc 0x33f80000 使PC寄存器指向0x33f80000,即u-boot程序的第一條代碼
g 開始執行u-boot程序

在SCRT上顯示的倒計時結束之前,按下任意鍵進入u-boot下

u-boot下載燒錄命令:

①. 設置u-boot環境變量:

set ethaddr 00:11:22:33:44:55 設置fl2440開發板上的u-boot程序中的MAC地址
set ipaddr 192.168.10.88 設置fl2440開發板上的u-boot程序中的IP地址
set serverip 192.168.10.8 指定tftp下載時使用的tftp服務器的IP地址,即是電腦的有線網卡的ip,可以在網絡設置中指定ip
save 保存

這裏寫圖片描述

②. 下載並燒錄u-boot程序:

打開TFTP,選擇好文件位置
tftp 300008000 u-boot-s3c2440.bin 將u-boot臨時下載到SDRAM的30008000地址
nand erase 0 100000  將nandflash的0~1M的分區擦除,該分區是用來存放u-boot程序的;
nand write 30008000 0 ${filesize} 將剛下載到SDRAM 30008000地址上的u-boot寫到nandflash的0地址偏移處,大小爲下載的U-boot文件大小;

③. 下載並燒錄linux系統:

tftp 300008000 linuxrom-s3c2440.bin 將linux系統程序臨時下載到SDRAM的30008000地址
nand erase 100000 F00000  將nandflash的1M~16M的分區(總共15M)擦除,該分區是用來存放linux系統的;
nand write 30008000 100000 ${filesize} 將剛下載到SDRAM 30008000地址上的linux系統寫到nandflash的1M地址偏移處,大小爲下載的linux系統文件大小;

④. 重啓進入linux系統:

輸入reboot重啓或者按下復位reset鍵重啓
這一次在開機時不要中斷開發版,在開機完成之後輸入賬號和密碼登錄

下載程序:

開發版上的linux系統沒有vim編輯器,需要藉助其他的設備編輯
由於要用到上傳下載,需要有相應的插件
默認有不用安裝yum install lrzsz
①.在Linux上
vim hello.c 用sentos編譯C程序
gcc hello.c 用gcc編譯器編譯,但是這個編譯的程序無法在開發板上運行
./a.out
/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc hello.c -o hello用arm交叉編譯器,編譯的程序可以在開發版上運行
sz hello (改SCRT的下載目錄,否則會下到默認文件夾)下載C程序到電腦

②.在開發板上
由於u-boot的ip和linux的ip不一樣,需要手動設置ip,
ipconfig 查詢本機的ip
ifconfig eth0 192.168.XX.XX 把ip設置爲上面查詢到的ip
tftp -gr hello 192.168.10.8 從電腦端下載程序
chmod 777 hello 賦予權限
./hello 執行程序

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章