Mini2440開發板及程序燒錄、啟動方式


本篇博客內容僅作為學習使用,如有侵權,請聯系刪除。

Mini2440是一款ARM9開發板,ARM9屬於armv4t架構,由友善之臂開發,官方提供購買路徑以及開發板最新的使用手冊http://www.arm9.net。其外形如圖:

注意:由於Mini2440開發板中采用的SRAM和FLASH芯片是多款芯片混用的,下文中的引用的電路圖都是官方資料自帶的,和我購買的板子上的實際芯片型號可能有區別,但是芯片的驅動控制都是相互兼容的。

一、Mini2440硬件資源(我購買的開發板)

  • CPU處理器:  Samsung S3C2440A,主頻400MHz,最高533Mhz;
  • SDRAM內存: Mini2440外接兩片32MB的SDRAM(型號EM63A16STS-5G),它們並在一起形成32位總線數據寬度,使用了nGCS6片選。物理起始地址為0x30000000。 SDRAM 時鍾頻率高達100MHz;
  • NAND FLASH存儲: 在板256MB NAND FLASH(型號K9F2G08U0C), 掉電非易失;
  • NOR FLASH:在板2M NOR FLASH(型號S29AL016D70TF102),掉電非易失,已經安裝BIOS;
  • 標准配置為統寶3.5”真彩LCD,分別率240x320,帶觸摸屏;
  • 接口和資源:

- 1個100M以太網RJ-45接口(采用DM9000網絡芯片)

- 3個串行口

- 1個USB Host

- 1個USB Slave B型接口

- 1個SD卡存儲接口

-1路立體聲音頻輸出接口,一路麥克風接口

- 1個2.0mm間距10針JTAG接口

- 4 USER Leds

- 6 USER buttons(帶引出座)

- 1個PWM控制蜂鳴器

- 1個可調電阻,用於AD模數轉換測試

- 1個I2C總線AT24C08芯片,用於I2C總線測試

- 1個2.0 mm間距20pin 攝像頭接口

- 板載實時時鍾電池

- 電源接口(5V),帶電源開關和指示燈

  • 擴展接口 :

1個34 pin 2.0mmGPIO接口

1個40 pin 2.0mm 系統總線接口

二、3SC2440啟動方式

S3C2440對外引出了27根地址線ADDR0~ADDR26,它最多能夠尋址128MB,而S3C2440的尋址空間可以達到1GB,這是由於S3C2440將1GB的地址空間分成了8個BANKS(Bank0~Bank7),其中每一個BANK對應一根片選信號線nGCS0~nGCS7,當訪問BANKx的時候,nGCSx管腳電平拉低,用來選中外接設備, S3C2440通過8根選信號線和27根地址線,就可以訪問1GB。如下圖所示:

其中Bank0~Bank5可以焊接ROM或SRAM類型存儲器,Bank6~Bank7可以焊接ROM,SRAM,SDRAM類型存儲器,也就是說,S3C2440的SDRAM內存應該焊接在Bank6~Bank7上,最大支持內存256M,Bank0~Bank5通常焊接一些用於引導系統啟動小容量ROM,具體焊接什么樣存儲器,多大容量,根據每個開發板生產商不同而不同。

以Mini2440開發板為例:將兩片32M,16位寬SDRAM內存(型號HY57V561620FTP)焊接在Bank6和Bank7上,並聯形成64M,32位內存。

  • A0-A12是地址線:行地址、列地址復用,行地址使用A0-A12(13條),列地址使用A0-A8(9條)。 BA0-BA1是bank選擇引腳。(bank選擇與行地址(row address)同時下發,在列地址下發時,有其他用途)。
  • 這個SDRAM有:13根行地址線   RA0-RA12   9根列地址線    CA0-CA8     2根BANK選擇線 BA0-BA1;SDRAM的地址引腳是復用的,在讀寫SDRAM存儲單元時,操作過程是將讀寫的地址分兩次輸入到芯片中,每一次都由同一組地址線輸入。兩次送到芯片上去的地址分別稱為行地址和列地址。它們被鎖存到芯片內部的行地址鎖存器和列地址鎖存器。$\overline{RAS}$是行地址鎖存信號,該信號將行地址鎖存在芯片內部的行地址鎖存器中;$\overline{CAS}$是列地址鎖存信號,該信號將列地址鎖存在芯片內部的列地址鎖存器中;
  • 需要注意的是LADDR2接的引腳是A0,這是因為一個地址對應4個字節,32位數據位寬。
  • BA0,BA1ADDR24,ADDR25,為什么用這兩根地址線呢?BA0~BA1代表了SDRAM的最高地址位。因為CPU的尋址空間是以字節(Byte)為單位的,本系統SDRAM容量為64MB,那就需要A25~A0(64M=2^26)地址線來尋址,所以BA1~BA0地址線應該接到S3C2440ADDR25~ADDR24引腳上。13根行地址線+9根列地址線 = 22根。另外HY57V561620F一個存儲單元是2個字節,相當於有了23根地址線。BA0,BA1是最高地址位,所以應該接在ADDR24,ADDR25上。
  • SDRAM地址空間:0x30000000~0x33F000000;

由於S3C2440是32位芯片,理論上講可以達到4GB的尋址范圍,除去上述8個BANK用於連接外部設備,還有一部分的地址空間是用於設備特殊功能寄存器,其余地址沒有被使用。

2.1 啟動方式

系統啟動取決於S3C2440 CPU的OM0、OM1兩個引腳的取值。在Mini2440中,直接將OM1接地(永遠為0),OM0作為撥碼開關,來選擇是從NAND啟動(接地,0)還是從NOR16-bit啟動(懸空,1)。

NAND FLASH:ROM,容量大,適用於數據存儲,ARM不能從NAND 中直接啟動,主要是因為NAND FLASH不具有地址線,沒有采取內存的隨機讀取技術,它的讀取是以一次讀取一塊的形式來進行的,通常是一次讀取512個字節,采用這種技術的Flash比較廉價。但是它有專門的控制接口與CPU相連,數據總線為8-bit,但這並不意味着NAND FLASH讀寫數據會很慢。大部分的優盤或者SD卡等都是NAND FLASH制成的設備。

NOR FLASH:ROM,容量小,和我們常見的SDRAM的讀取是一樣,用戶可以直接運行裝載在NOR FLASH里面的代碼。

SDRAM: RAM,容量大,操作系統等大型軟件都運行在SDRAM中。

2.2 NAND啟動

圖1右側是選擇從NAND  FLASH引導啟動(啟動模式選擇開關拔到NAND端,此時OM0管腳拉低),S3C2440的NAND 控制器會自動把NAND FLASH中的前4K代碼數據搬到內部SRAM中(在S3C2440片內有一塊被稱為SteppingStone的片內SRAM,它的大小為4K),片內SRAM被映射到nGCS0片選的空間(nGCS0片選的空間,即0x00000000),CPU從0x00000000位置開始運行程序。所以當中斷發生的時候,PC指針指向0x0+offset(如:IRQ就是0x18),可以找到中斷服務程序的入口。

Mini2440開發板就是將采用了的256MB的NAND FLASH(型號K9F2G08U0C)

2.3 NOR啟動

圖1左側對應NOR FLASH啟動(啟動模式選擇開關拔到NOR端,此時OM0管腳拉高),0x00000000就是2MB NOR FLASH實際的起始地址,NOR FLASH中的程序就從這里開始運行,不涉及到數據拷貝和地址映射。

注意此時,這里就不需要片內SRAM來輔助了,所以片內SRAM的起始地址還是0x40000000 。

Mini2440開發板就是將2M的NOR FLASH(型號S29AL016D70TF102)焊接在了Bank0上,用於存放系統引導程序Bootloader。

  • 地址線A1-A22,共22條(請注意地址是從A1開始的,這意味着它每次最小的讀寫單位是2字節),實際我們的開發板上只用了A1-A20條地址線,因為與A21、A22相連的S29AL016D70TF102的相應引腳是懸空的。;
  • 數據線D0-D15,共16條;

2.4 程序大於4kb

那么當程序大於 4kb 的時候,當我們以 NAND FLASH啟動后,前面的4kb 被拷貝到 片內RAM中去執行(自動完成)。我們在這前4kb的程序中初始化SDRAM,然后將NAND FLASH剩下的程序拷貝到 SDRAM中(不是只有4kb 被拷貝到片內RAM中執行了嘛)然后跳轉到 SDRAM中去執行剩下的程序。

那么也就是說 通常當程序大於 4kb的 時候,我們就需要把程序拷貝到SDRAM中去運行。(程序小於4kb 那么也就可以不用拷貝了,以NAND FLASH方式 啟動后,程序全被拷貝到 片內4kb的片內SRAM中去運行。)

那么,既然程序大於4kb的時候需要從 NAND FLASH中拷貝到 SDRAM中去運行。自然可以想到 燒到 NAND FLASH中的程序前面一部分代碼應該 是初始化SDRAM(程序最終需要拷貝到SDRAM中去運行)和 將NAND FLASH中的剩余的程序拷貝到SDRAM中去(全考過去也行,方便點),然后跳轉到SDRAM中執行。

采用NOR FLASH啟動時,由於NOR FLAH為2MB、因此可以不用拷貝到SDRAM運行,但是我們也可以嘗試這么做,可以參考s3c2440中斷程序(燒錄到NORFlash,運行在SDRAM中)

2.5 總結

NAND 啟動時,地址0x00000000為內部SRAM映射的地址;

NOR啟動時,地址0x00000000為NOR FLASH的實際起始地址。

向NOR FLASH中寫數據需要特定的命令時序,而向內存中寫數據可以直接向內存地址賦值。

 三、基本電路

3.1 電源系統

Mini2440開發板直接使用外接5V電源,通過降壓芯片產生整個系統所需要的三種電壓:3.3V、1.8V、1.25V。降壓芯片采用LM117-1.8V、LM117-3.3V等。

整個系統的電源通斷是由S1撥動開關控制的,它不能通過軟件實現開關機。

為了方便用戶外接其他電源,開發板還設計了一個電源接口CON8,它是一個白色2.0mm間距的單排插座,中間均為“地”,兩側均為5V。注意,這兩個5V並非是相通的,其中一個連接了外部電源的5V,另外一個則連接了經過撥動開關S1之后的5V。
它們的連接關系和相應的實物標稱見下圖:

3.2 復位電路

Mini2440開發板采用復位芯片MAX811實現CPU低電平復位。

3.3 LED電路

開發板具有4個用戶可編程LED,它們直接與CPU的GPIO相連接,低電平有效(點亮):

 

  LED1 LED2 LED3 LED4
GPIO GPB5 GPB6 GPB7 GPB8
可復用為 nXBACK nXREQ nXDACK1 nDREQ1
使能 低電平 低電平 低電平 低電平

3.4 按鍵電路

開發板總共有6個用戶測試用按鍵,它們均從CPU中斷引腳直接引出,屬於低電平觸發,這些引腳也可以復用為GPIO和特殊功能口,為了用戶把它們引出作為其他用途,這6個引腳也通過CON12引出,6個按鍵和CON12的定義如下:

  K1 K2 K3 K4 K5 K6
中斷 EINT8 EINT11 EINT13 EINT14 EINT15 EINT19
復用GPIO GPG0 GPG3 GPG5 GPG6 GPG7 GPG11
特殊功能 - nSS1 SPIMISO1 SPIMOSI1 SPICLK1 TCLK1
對應CON12 1 2 3 4 5 6

3.5 A/D接口 

Mini2440開發板引出4路A/D(模數轉換)轉換通道,它們位於板上的CON4-GPIO接口。為了方便測試, AIN0連接到了開發板上的可調電阻W1,原理圖如下所示:

 

3.6 蜂鳴器接口 

蜂鳴器連接到GPB0接口,通過PWM脈沖波輸出控制(高電平觸發)。

3.7 串口

S3C2440本身總共有3個串口UART0、1、2,它們分別對應Mini2440開發板的CON1、CON2、CON3接口。這3個接口都是從CPU直接引出的,是TTL電平。為了方便用戶使用,其中UART0做了RS232電平轉換,它們對應於COM0,可以通過附帶的直連線與PC機互相通訊。

CON1,CON2,CON3在開發板上的位置和原理圖中的連接定義對應關系如下圖所示。

3.8 USB接口

Mini2440提供兩種USB接口:

  • 一種是USB Host,和PC機一樣的USB接口,可以接USB攝像頭、USB鍵盤、USB鼠標、優盤等常見的USB外設。
  • 另外一種是USB Slave,我們一般使用它來下載程序到目標板,當開發板裝載了WinCE系統時,它可以通過ActiveSync軟件和Windows系統進行同步。

 

3.9 LCD接口

Mini2440開發板LCD接口是一個41 pin 0.5mm間距的白色座,其中包含了常見LCD所用的大部分控制信號(行場掃描、時鍾和使能等),和完整的RGB數據信號(RGB輸出為8:8:8,即最高可支持1600萬色的LCD);為了用戶方便試驗,還引出了PWM輸出(GPB1可通過寄存器配置為PWM),和復位信號(nRESET),其中LCD_PWR是背光控制信號。

另外,37、38、39、40為四線觸摸屏接口,它們可以直接連接觸摸屏使用。

J2為LCD驅動板供電選擇信號,驅動板都使用5V供電。

Mini2440搭配的LCD有多種型號,比如TD35、P35,我這里使用的是P35型號。

3.10 EEPROM

Mini2440開發板外接了一個I2C信號引腳的EEPROM芯片AT24C08,它有1024字節,供用戶測試I2C總線。

3.11 網絡接口

Mini2440開發板外接DM9000網卡芯片,可以自適應10/100M網絡。

3.12 音頻接口

S3C2440內置I2S總線接口,可直接外接8/16比特的立體聲CODEC,開發板采用基於I2S總線的UDA1341芯片實現音頻解碼系統,該芯片內部寄存器的初始化和設置則是采用 L3-bus 總線連接控制實現的,在這里沿用了三星公板的設計,分別使用CPU的GPB2、GPB3、GPB4 端口模擬實現 L3-Bus 規范的 L3MODE、L3DATA、L3CLOCK,它們在初始化完 UDA1341 以后就不再有用了,因此這三條控制線也可以使用普通的單片機模擬實現。

音頻系統的輸出為開發板上的常用3.5mm孔徑插座,輸入分為兩路,一路為板載麥克風,另一路通過 CON10 白色 2.0mm 插座引出。兩路音頻輸入通道的驅動是有些不同的,目前板載 MIC 對應的通道是可以錄音使用的,注意:開發板並非專業的錄音設備,音頻輸入的處理電路佷簡單,錄音時盡量把音源靠近麥克風。

3.13 JTAG接口

當開發板從貼片廠下線,里面是沒有任何程序的,這時我們一般通過 JTAG 接口燒寫第一個程序,就是 Superboot,借助 Superboot 可以使用 USB 口下載更加復雜的系統程序等.
除此之外,JTAG 接口在開發中最常見的用途是單步調試,不管是市面上常見的 JLINK還是 ULINK,以及其他的仿真調試器,最終都是通過 JTAG 接口連接的。標准的 JTAG 接口是 4 線:TMS、 TCK、TDI、TDO,分別為模式選擇、時鍾、數據輸入和數據輸出線,加上電源和地,一般總共 6 條線就夠了;為了方便調試,大部分仿真器還提供了一個復位信號。都可以稱為標准的 JTAG 接口。
因此,標准的 JTAG 接口是指是否具有上面所說的 JTAG 信號線,並不是 20Pin 或者10Pin 等這些形式上的定義表現。這就如同 USB 接口,可以是方的,也可以扁的,還可以是其他形式的,只要這些接口中包含了完整的 JTAG 信號線,都可以稱為標准的 JTAG 接口。
Mini2440開發板提供了包含完整 JTAG 標准信號的10 Pin JTAG 接口,各引腳定義如圖。
說明:對於打算致力於 Linux 初學者而言,JTAG 接口基本是沒有任何意義和用途的,因為大部分開發板都已經提供了完善的 BSP,這包括最常用的串口和網絡以及 USB 通訊口,當系統裝載了可以運行的 Linux 系統,用戶完全可以通過這些高級操作系統本身所具備的功能進行各種調試,這時是不需要 JTAG 接口的;即使你可以進行跟蹤,但鑒於操作系統本身結構復雜,接口繁多,單步調試猶如大海撈針,毫無意義可言。
想一想你手頭使用的 PC 機就知道了,或許你從沒有見過甚至聽過有誰會在 PC 主板上插一個仿真器,來調試 PCI 這樣接口的 WindowsXP 或者 Linux 驅動。這就是為什么你經常見到或者聽到那么多人在講驅動“移植”,因為大部分人都是參考前輩的實現來做驅動的。

JTAG 僅對那些不打算采用操作系統,或者采用簡易操作系統(例如 uCos2 等)的用戶有用。大部分開發板所提供的 Bootloader 或者 BIOS 已經是一個基本完好的系統了,因此也不需要單步調試。

 

3.14 GPIO

GPIO 是通用輸入輸出口的簡稱,本開發板帶有一個 34 Pin 2.0mm 間距的 GPIO 接口,標稱為 CON4,如圖。
實際上,CON4 不僅包含了很多富余的 GPIO 引腳,還包含了一些其他 CPU 引腳,如 AD0-AIN3,CLKOUT 等。你所看到的圖中的 SPI 接口、I2C 接口、GPB0 和 GPB1 等,它們其實也是 GPIO,不過是以特殊功能接口來標稱定義的,這些都可以通過相應的 CPU 寄存器來設置更改它們的用途,詳細的接口資源見下表。

CON4 引腳名稱 說明(有些端口可復用) CON4 引腳名稱 說明(有些端口可復用)
1 VDD5V 5V電源(輸入或者輸出) 2 VDD33V 3.3V電源(輸出)
3 GND 4 nRESET 復位信號(輸出)
5 AIN0 AD輸入通道0 6 AIN1 AD輸入通道1
7 AIN2 AD輸入通道2 8 AIN3 AD輸入通道3
9 EINT0 EINT0/GPF0 10 EINT1 EINT1/GPF1
11 EINT2 EINT2/GPF2 12 EINT3 EINT3/GPF3
13 EINT4 EINT4/GPF4 14 EINT5 ENT5/GPF5
15 EINT6 EINT6/GPF6 16 EINT8 ENIT8/GPG0
17 EINT9 EINT9/GPG1 18 EINT11 EIT11/GPG3/nSS1
19 EINT13 EINT13/GPG5/SPIMISO1 20 EINT14 EINT14/GPG6/SPIMOSI1
21 EINT15 EINT15/GPG7/SPICLK1 22 EINT17 EINT17/GPG9/nRST1
23 EINT18 EINT18/GPG10/nCTS1 24 EINT19 ENIT19/GPG11
25 SPIMISO SPIMISO/GPE11 26 SPIMOSI SPIMOSI/EINT14/GPG6
27 SPICLK SPICLK/GPE13 28 nSS_SPI nSS_SPI/ENT10/GPG2
29 I2CSCL I2CSCL/GPE14 30 I2CSDA I2CSDA/GPE15
31 GPB0 TOUT0/GPB0 32 GPB1 TOUT1/GPB1
33 CLKOUT0 CLKOUT0/GPH9 34 CLKOUT1 CLKOUT1/GPH10

3.15 CMOS CAMERA

S3C2440帶有CMOS 攝像頭接口,在開發板上通過標稱為 CAMERA 的接口引出。它是一個 20 腳 2.0mm 間距的針座,用戶可以直接使用我們提供的 CAM130 攝像頭模塊;其實CAM130攝像頭模塊上面沒有任何電路,它只是一個轉接板,它直接連接使用了型號為ZT130G2 攝像頭模塊,它們的定義如下圖所示。
說明:CAMERA 接口是一個復用端口,它可以通過設置相應的寄存器改為GPIO使用,下表是它對應引腳的 GPIO 列表

CAMERA 引腳名稱 可服用為 CAMERA 引腳名稱 可復用為
1 I2CSDA GPE15 2 I2CSCL GPE14
3 EINT20 GPG12 4 CAMRST GPJ12
5 CAMCLK GPJ11 6 CAM_HREF GPJ10
7 CAM_VSYNV GPJ9 8 CAM_PCLK GPJ8
9 CAMDATA7 GPJ7 10 CAMDATA6 GPJ6
11 CAMDATA5 GPG5 12 CAMDATA4 GPJ4
13 CAMDATA3 GPJ3 14 CAMDATA2 GPJ2
15 CAMDATA1 GPJ1 16 CAMDATA0 GPJ0
17 VDD33V 3.3V電源 18 VDD_CAM VDD_CAM
19 VDD28V 1.8V電源 20 GND

3.16 系統總線接口

開發板上的系統總線接口為CON5,它總共包含 16 條數據線(D0-D15)、8 條地址線(A0-A6, A24)、還有一些控制信號線(片選、讀寫、復位等),CON5 可以向外提供 5V 電壓輸出;實際上,很少有用戶通過總線擴展外設。下面是 CON5 的詳細引腳定義說明。

CON5 引腳名稱 說明(有些端口可復用) CON5 引腳名稱 說明(有些端口可復用)
1 VDD5V 5V電源(輸入或者輸出) 2 GND
3 EINT17 中斷17(輸入) 4 EINT18 中斷18(輸入)
5 EINT3 中斷3(輸入) 6 EINT9 中斷9輸入
7 nGCS1

片選1

對應物理地址:0x08000000

8 nGCS2

片選2

對應物理地址:0x10000000

9 nGCS3

片選3

對應物理地址:0x18000000

10 nGCS5

片選5

對應物理地址:0x28000000

11 LnOE 讀使能信號 12 LnWR 寫使能
13 nWAIT 等待信號 14 nRESET 復位
15 nXDACK0 nXDACK0 16 nXDREQ0 nXDREQ0
17 LADDR0 地址0 18 LADDR1 地址1
19 LADDR2 地址2 20 LADDR3 地址3
21 LADDR4 地址4 22 LADDR5 地址5
23 LADDR6 地址6 24 LADDR24 地址24
25 LDATA0 數據線0 26 LDATA1 數據線1
27 LDATA2 數據線2 28 LDATA3 數據線3
29 LDATA4 數據線4 30 LDATA5 數據線5
31 LDATA6 數據線6 32 LDATA7 數據線7
33 LDATA8 數據線8 34 LDATA9 數據線9
35 LDATA10 數據線·0 36 LDATA11 數據線11
37 LDATA12 數據線12 38 LDATA13 數據線13
39 LDATA14 數據線14 40 LDATA15 數據線15

四、開發板使用(程序燒錄)

開發板出廠時NOR FLASH和NAND FLASH都是燒錄了Bootloader(Superboot)程序的。

4.1 啟動方式選擇

Mini2440開發板撥動開關S2到NOR FLASH一側時,系統采用NOR FLASH啟動。

Mini2440開發板撥動開關S2到NAND FLASH一側時,系統采用NAND FLASH啟動。

4.2 USB轉TTL接串口1

COM1從上到下依次為TXD0、RXD0、VDD5V、GND引腳。我們將USB轉TTL模塊的接口和COM1接口按如下方式連接:

  • TXD -> RXD
  • RXD -> TXD

 

我們按上面要求連接好串口后,打開設備管理器,我們可以看到我們的串口號:COM5;

主要注意的是這里如果你使用的usb轉串口:需要安裝PL2303to串口驅動,如果使用的是USB轉TL:需要安裝CH340驅動(USB串口驅動)驅動

我們設置串口助手參數如下,並打開助手:

我們采用NAND啟動方式,給開發板上電,uboot啟動時會打印出如下等信息:

4.3 MiniTools工具使用(燒錄到NAND FLASH)

Minitools是一款Android內核燒錄軟件,MiniTools是友善之臂提供的全新USB下載工具,可以方便來Mini2440燒寫操作系統,就像刷手機一樣刷開發板:

  • 無需串口連接:MiniTools完全使用USB傳輸數據,無需串口,讓你的桌面更整潔;
  • 真正一鍵燒寫:無需從串口輸入命令,再點選USB下載,並且要通過多個步驟才能燒寫整個系統,較為繁瑣,MiniTools真正實現一鍵燒寫,燒寫文件可單選,也可全選;
  • 支持32/64-bit電腦:MiniTools安裝程序已經包含32/64-bit所需要的下載驅動,通吃所有Windows平台;
  • 跨平台:MiniTools采用Qt4開發,可支持各種Windows和Linux發行版;
  • 支持裸機程序:支持裸機程序的直接下載運行和燒寫;

通過MiniTools工具,可直接通過USB數據線,把各個系統方便的安裝到開發板上,並快速啟動,更加方便調試開發。在使用MiniTools工具之前,需要安裝SuperVivi-Transfer-Tool-Complete驅動,雙擊exe文件進行安裝:

安裝完成之后,將usb連接到開發板USB Slave接口,並打開設備管理器查看設備是否正常,如果出現驅動異常,類似下圖:

此時可以選擇使用驅動人生進行驅動修復。

使用USB燒寫系統前的准備工作:

(1) 將開發板上的S2開關切換到NOR FLASH一側;

(2)上電並開機,開發板將進入USB下載模式,此時,如果你連接了串口線並打開了串口終端,終端上會顯示Hello USB Loop:

(3) 用USB線連接電腦與開發板,MiniTools左下角將顯示已連接開發板,串口終端會顯示USB Mode:Connected

(4) 接下來,你就可以使用MiniTools燒寫系統了。

注意:只有Superboot才能配合MiniTools的USB下載功能。

(5) 要開始燒寫系統,請在主界面的左側,選擇你要燒寫的系統,例如Linux,將出現該系統的配置界面,如下圖所示

(6)  你可以手動選擇zImage、文件系統等燒寫文件,手工填寫Kernel CommandLine,不過,一個更方便的方法是點擊界面上的【選擇images目錄】按鈕,並將目錄定位到images目錄下,MiniTools會自動讀取所選images目錄下的FriendlyARM.ini配置文件,將內核和文件系統等燒寫信息填寫到界面上。

noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0

使用MiniTools,你可以全選燒寫更新整個系統,也可以單選燒寫其中的某個部分,例如只燒寫Kernel,或者只燒寫文件系統等。設置完成后,點擊【開始燒寫】按鈕進行一鍵燒寫,燒寫界面如下圖所示:

 (7) 燒寫完成后,點擊左下角的【快速啟動】按鈕,可以直接從Nand Flash啟動系統,而無需撥動S2和電源開關.

4.4 Jlink程序燒錄

由於當前我手上沒有Jlink這里就不演示了,通過jlink向NOR FLASH燒錄Superboot可以參考玩轉mini2440開發板之【如何使用JLink下載燒錄boot程序到NorFlash】

需要注意:插入JLink時,其余只保留一個電源線和開發板相連,串口接線先去掉。

參考文章

[1] S3C2440存儲器地址段(Bank)

[2]S3C2440開發板 NOR啟動 和 NAND啟動

[3]s3c2440的內存管理機制

[4]mini2440用戶手冊

[5]mini2440原理圖

[6]ROM 、RAM和FLASH 的區別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM