在基于
    
     ARM
    
    
     的嵌入式系统开发中,常常用到交叉编译的
    
    
     GCC
    
    
     工具链有两种:
    
   
    arm-linux-*
    
     和
    
    
     arm-elf-*
    
    
     ,两者区别主要在于使用不同的
    
    
     C
    
    
     库文件。
    
    
     arm-linux-*
    
    
     使用
    
   
    GNU
    
     的
    
    
     Glibc
    
    
     ,而
    
    
     arm-elf-*
    
    
     一般使用
    
    
     uClibc/uC-libc
    
    
     或者使用
    
    
     REDHAT
    
    
     专门为嵌入式系统
    
   
    的开发的
    
     C
    
    
     库
    
    
     newlib.Glibc
    
    
     。
    
    
     uClibc/uC-libc
    
    
     以及
    
    
     newlib
    
    
     都是
    
    
     C
    
    
     语言库文件,只是所应
    
   
    用的领域不同而已,
    
     Glibc
    
    
     是针对
    
    
     PC
    
    
     开发的,
    
    
     uClibc/uC-libc
    
    
     是与
    
    
     Glibc API
    
    
     兼容的小型
    
   
    化
    
     C
    
    
     语言库,实现了
    
    
     Glibc
    
    
     部分功能。
    
   
    下面我简单讲一下,我用到的几个
    
     jlink
    
    
     命令:
    
   
    r — reset,
    
     复位命令
    
   
    h — halt,
    
     停机,也有暂停的功能
    
   
    loadbin <filename> <address> —
    
     下载
    
    
     filename
    
    
     文件到地址上
    
    
     address
    
   
    setpc <address> —
    
     设置
    
    
     PC
    
    
     的值
    
   
    在执行
    
     J-Link
    
    
     命令之前,先执行:
    
   
> speed 12000
提高通信速度,不然后面下载程序会很慢。
    (
    
     1
    
    
     )下载
    
    
     init.bin
    
    
     文件,在
    
    
     J-Link Commander
    
    
     执行以下命令:
    
   
> r
> h
> loadbin e:\init.bin 0x40000000
> setpc 0x40000000
> g
    执行完上述命令之后,我们的目标板就从
    
     0x40000000
    
    
     地址上开始执行。如果看到
    
    
     Mini2440
    
    
     板子上的
    
    
     4
    
    
     个
    
    
     LED
    
    
     开始闪烁,那就说明
    
    
     init.bin
    
    
     程序在目标板中运行起来了。
    
   
 
