1. 程式人生 > >Play with mini2440 ARM Board ( by quqi99)

Play with mini2440 ARM Board ( by quqi99)

版權宣告:可以任意轉載,轉載時請務必以超連結形式標明文章原始出處和作者資訊及本版權宣告 (作者:張華 發表於:2018-05-23)

硬體準備及連線

  • mini2440開發板
  • JLink、轉接板、連線線、B型USB線
  • USB轉串列埠板、串列埠直連線
  • 這些東西對於學習嵌入式不是必須的,用qemu模擬即可

連線如下:
- 對於核心啟動早期(如u-boot)的程式設計及除錯主要使用JTAG: 用於將uboot引導安裝程式下載到開發板的Nor Flash/BIOS中。有兩類,一類是並口,一類是USB介面代替並口(B型USB線一端接電腦另一端接JLink,JLink再接轉接板,轉接板接連線線,連線線接mini2440)。使用JTAG安裝了u-boot之後,通過u-boot再可以通過很多種方式(如tftp)下載作業系統並引導安裝。
- 對於核心的程式設計和除錯除了使用JTAG也可以使用串列埠結合KGDB除錯,或者使用qemu模擬除錯

:USB轉串列埠線的USB端連電腦, 另一端和接串列埠直連線,串列埠線連mini2440的串列埠

使用minicom連線串列埠

將USB轉串列埠線插入電腦
$lsusb
Bus 003 Device 017: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
ls /dev/ttyUSB0 # if now ttyUSB0, we can: sudo mknod /dev/ttyUSB0 c 188 0

sudo apt-get install minicom
sudo minicom -s #Serial port setup
sudo minicom -s
先選’Serial port setup’然後作如下的配置,接著選’Save setup as dfl’, 最後選’Exit’
+———————————————————————–+
| A - Serial Device : /dev/ttyUSB0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - Bps/Par/Bits : 115200 8N1 |
| F - Hardware Flow Control : No |
| G - Software Flow Control : No |

先執行: sudo minicom
然後將mini2440上的Flash選擇開關(音訊介面旁)撥到從Nor Flash啟動(右邊,向下為Nor Flash),然後開啟mini2440的電源(左邊,向上為開電源)。此時,串列埠會自動連線。

$sudo minicom
Welcome to minicom 2.7
OPTIONS: I18n 
Compiled on Feb  7 2016, 13:37:27.
Port /dev/ttyUSB0, 13:44:26
Press CTRL-A Z for help on special keys
Try to bring eth0 interface up......eth0: link down                                                                        
Done                                                                                                                                                                                                                                            
Please press Enter to
activate this console. [[email protected] /]#

利用JLINK燒寫U-boot到NAND Flash中

J-link是個偵錯程式,而Jlink可以使用JTAG除錯介面或者SWD除錯介面。用它可以下載U-boot。
可使用JFlash (Jlink Flash)和Jlink Command兩種方式燒寫U-boot到NAND Flash中,前者是圖形化工具,後者是純命令列工具。前者只能在windows平臺下使用,若使用Ubuntu就只能使用後者了。

windows下使用JFlash的步驟可以參見: https://blog.csdn.net/q1302182594/article/details/51323279 , 下面看看如何在Ubuntu裡安裝Jlink Command:
JLink_Linux_x86_64.deb - https://www.segger.com/jlink-software.html
- https://download.csdn.net/download/houxd_cs/10322536
sudo apt-get install libusb-dev libreadline6 libreadline6-dev
sudo dpkg -i JLink_Linux_V632c_x86_64.deb
JLinkExe
下列實驗未成功,在執行usb命令後再執行connect命令時找不到JTAG target,不清楚什麼原因,也許是買的Jlink有問題吧。不care,知道步驟就行了。剩下的可以參考: http://blog.chinaunix.net/uid-26019596-id-3434327.html

$ JLinkExe 
SEGGER J-Link Commander V6.30j (Compiled Mar 29 2018 18:16:53)
DLL version V6.30j, compiled Mar 29 2018 18:16:48
Connecting to J-Link via USB...O.K.
Firmware: J-Link V9 compiled Jun  2 2222 22:22:22
Hardware version: V9.40
S/N: 81480416
License(s): GDB, RDI, FlashBP, FlashDL, JFlash, RDDI
VTref = 3.296V

J-Link>usb
Disconnecting from J-Link...O.K.
Connecting to J-Link via USB...O.K.
Firmware: J-Link V9 compiled Jun  2 2222 22:22:22
Hardware version: V9.40
S/N: 81480416
License(s): GDB, RDI, FlashBP, FlashDL, JFlash, RDDI
VTref = 3.303V
J-Link>connect
J-Link>speed 12000
Selecting 12000 kHz as target interface speed
J-Link> loadbin /bak/tools/mini2440/init/init.bin 0x0
Type "connect" to establish a target connection, '?' for help
setpc 0x0

用qemu模擬mini2440

waiting …