分享
 
 
 

ATMEL公司的AT91RM9200调试手册

王朝other·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

LINUX常用命令压缩、解压部分1. tar czf DirName.tgz DirName (压缩目录)

2. gzip –d filenames (针对以gz为结尾的压缩文件)

3. tar –xvf filenames (针对以tar为结尾的压缩文件)

4. tar zxvf filenames ( 针对以tar.gz为结尾的压缩文件)

5. tar jxvf filenames[B1] (针对以tar.gz2为结尾的压缩文件)

FTP部分ncftp –u user_name FTP_SERVER_IP

备注:支持(-R或-r)对目录的操作

查找、定位部分1. find –name filename.C (利用文件名进行查找)

2. locate filename.C (在当前目录和所有子目录下递归查找文件名中有filename的文件)

3. grep ‘search word’* -r (在当前目录和所有子目录下递归查找文件中含有相应字符串的文件)

网络设置ifconfig ETH0 192.168.1.1

NETMASK 255.255.255.0

ROUTE ADD –NET 127.0.0.0

ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx

route del default,去掉网关,加速访问速度,特别是NFS速度

比较、补丁部分

1. Diff创建补丁,patch打补丁

2. diffj [命令行选项][H2] 原始文件新文件,命令举例如下:

diff –ruNa Dir_Old Dir_New > Dir.patch

3. zcat ../patch-2.4.26-vrs1.gz | patch -p1

4. zcat ../*.patch.gz | patch -p1 (内核升级补丁)

5. 进入LINUX内核目录,修改ARCH :=arm和CROSS_COMPILE=arm-linux-

6. patch [命令行选项][待patch的文件[patch]],命令举例如下:

pathc –p1 < [patch_file] :在当前目录下利用patch_file进行打补丁

LINUX内核编译1. make mrproper

2. make target_device_config

3. make oldconfig

4. make menuconfig

5. make dep

6. make Image

7. /usr/local/arm/2.95.3/bin/arm-linux-objcopy -O binary -S vmlinux linux.bin

8. gzip -v9 linux.bin

9. /u-boot-1.1.1/tools/mkimage [H3] -A arm[B4] -O linux -C gzip -a 0x20008000 -e 0x20008000 -d linux.bin.gz uImage

建立NFS环境[B5] 1. cd /

2. setup

3. 选择“Firewall configuration”,进入并更改设置为“No firewall”

4. 到上一层MENU选择System services去掉“ipchains”和“iptables”两项服务。

5. 选择NFS服务后restart the PC

6. all is ok now!

实际测试总结:1. 实际设置可以在图形界面中的服务器设置中NFS服务中设置。

2. IP地址192.168.1.*表示对1-255号地址都开通NFS服务。

3. MOUNT命令为:mount –o nolock 192.168.1.1:/nfs /mnt/nfs

4. 详见<<HHARM9200_tech_manual-v2.2.pdf>>

5. 在ATMEL提供的RAMDISK中的MOUNT命令没有支持NFS,所以要删除ramdisk/bin/mount,重新编译BUSYBOX,选择静态编译,把生成的busybox拷贝到/ramdisk/bin,执行ln –s busybox mount。

U-BOOT编译部分1、 make mrproper (清理源代码树)

2、 make at91rm9200dk_config

3、 make all

4、 gzip –c u-boot.bin > u-boot.gz

5、 常用命令见附录[H6]

U-BOOT移植1. 在移植过程中注意参照其它类型CPU和开发板的结构

2. 在Makefile中增加如下两行:

at91rm9200dk_config : unconfig

@./mkconfig $(@:_config=) arm at91rm9200 at91rm9200dk

其中ARM是CPU的种类, arm920t是ARM CPU对应的代码目录,at91rm9200dk是开发板对应的目录。

3. 在board目录中建立at91rm9200dk目录,并所参考类型的开发板目录,如S3C2410、m5272C3等。

4. 在include/cofings/目录下复制

U-BOOT环境变量部分1、 kernel=tftp 21000000 uImage

2、 ramdisk=tftp 21100000 ramdisk-rmk7

3、 ethaddr=12:34:56:78:9A:FF

4、 bootcmd=tftp 21100000 ramdisk-rmk7; tftp 21000000 uImage; bootm 21000000

5、 bootargs=root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M

6、 fl2ram_kernel=cp.b 10020000 21000000 83b9e

7、 ram2fl_kernel=cp.b 21000000 10020000 83b9e

8、 filesize=5591e6

9、 fileaddr=21100000

10、 ipaddr=192.168.1.200

11、 serverip=192.168.1.3

12、 ram2fl_ramdisk=cp.b 21100000 10120000 5591e6

13、 fl2ram_ramdisk=cp.b 10120000 21100000 5591e6

14、 stdin=serial

15、 stdout=serial

16、 stderr=serial

RAMDISKCommon Command1. ls –al /dev/ram* (look all the ramdisk info)

2. df –k /dev/ram0 (find the really space of the ramdisk)

Updata the Ramdisk1. gunzip ramdisk.gz

2. mkdisk /mnt/new_ramdisk

3. mount –o loop ramdisk /mt/new_ramdisk

4. 进入/mnt/new_ramdisk进行操作,如增加删除文件

5. umount /mnt/new_ramdisk

6. gzip –c –v9 ramdisk >./tftpboot/ramdisk-rmk7

MINICOM设置FileName:minirc.dfl

# Machine-generated file - use "minicom -s" to change parameters.

pr port /dev/ttyS0

pu baudrate 19200

pu minit

pu mreset

pu mhangup

pu rtscts No

Crate the Ramdisk1. mkdir /mnt/ramdisk0 (create a mount point)

2. mke2fs[B7] /dev/ram0 (create a filesystem)

3. mount /dev/ram0 /mnt/ramdisk0 (mount the ramdisk)

BUSYBOX1. cd busybox-1.x

2. make menuconfig

change the path of cross compiler and install according to ur

set-up

3. make

now you can ls to ur

rootfs/bin rootfs/sbin and can find ur

binaries

备注:由于开发板厂家提供的RAMDISK都是基于ATMEL的,所以应该利用生成STATIC选项,否则在LINUX启动时会提示相应LIB找不到。

在1.0版本的busybox中,其route.c有问题,不要选择它。另外在libbb\loop.c中LINE32几行也有问题,建议注释掉。

利用新的busybox替换bin/busybox即可运行最新版本的busybox.

交叉编译环境1、 mkdir /usr/local/arm

2、 cd /usr/local/arm

3、 tar –jxvf cross-2.95.3.tar.bz2

4、 PATH=/usr/local/arm/2.95.3/bin:$PATH[B8]

5、 在/etc/bashrc文件中最后增加如下内容:

PATH=$PATH:/usr/local/arm/2.95.3/bin

6、 bash

NFS部分1. mount –o nolock 192.168.1.1:/nfs /mnt

空板调试指南部分1、 将跳线JP1(负责选择外部FLASH或内部ROM启动)取下来

2、 设置超级终端属性,(115200,N,8,1)

3、 开发板上电后,在超级终端中不断打印中“C”,表示AT91RM9200板子与计算机已正常连接,这时在超级终端中利用XMODEM协议发送文件(loader.bin)。当显示loader 1.0 (Aug 8 2003 - 12:01:07)

XMODEM: Download U-BOOT

CCCCCCC表示(loader.bin)已发送成功

4、 利用XMODEM协议发送文件(u-boot.bin)

5、 当超级终端显示出u-boot的版本、FLASH和SDRAM的信息后表示u-boot已下载成功,并且SDRAM可以正常使用

6、 在u-boot>提示符下输入:loadb 20000000,确定后超级终端会提示“## Ready for binary (kermit) download to 0x20000000 at 115200 bps...”

7、 在超级终端中利用Kermit协议选择并发送文件(boot.bin),成功后在超级终端中会有如下提示“## Total Size = 0x00002984 = 10628 Bytes

## Start Addr = 0x20000000

此时启动代码的映像已经下载到SDRAM的地址0x20000000处,下一步的操作就是将此映像文件内容写入到NORFALSH(0x10000000)

8、 分成以下步骤:

l 解除FLASH中第一扇区的保护:protect off 1:0(其中1为BANK1所在的FLASH,详见U-BOOT命令)

l 删除FLASH中第一扇区的内容:erase 1:0

l cp.b 20000000 10000000 5fff

l loadb 20000000

l 在超级终端中利用Kermit协议选择并发送文件(u-boot.bin.gz)

l cp.b 20000000 10010000 ffff

l protect on 1:0

l boot和u-boot已成功写入到FLASH中,此时将跳线接上,重新启动,系统开始从FLASH进行引导

9、 快捷键设置部分:

kernel

l setenv cpfltoker cp.b 10020000 21000000 affff(从FLASH中拷贝Kernel到SDRAM)

l setenv cpkertofl cp.b 21000000 10020000 affff(从SDRAM中拷贝Kernel到FLASH)

l setenv kernel tftp 21000000 uImage

ramdisk

l setenv cpfltoram cp.b 10120000 21100000 5fffff

l setenv cpramtofl cp.b 21100000 10120000 5fffff

l setenv ramdisk tftp 21100000 ramdisk-rmk7

miscellaneous

l setenv boot bootm 21000000

l setenv bootcmd run cpfltoker;run cpfltoram;run boot

l setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M

l

l

10、 要

VMWARELinux下作用VFAT32的硬盘

/dev/hda5 /mnt/d vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0

在vmware的LINUX中使用本地硬盘的FAT分区 将本地的FAT分区共享,然后在VMWARE中使用SMBFS挂上。可以将如下的行放到/etc/fstab中: //win_ip/D$ /mnt/d smbfs defaults,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb2312 0 0 其中win_ip是你的windows的IP地址; D$是你的windows里面共享的D盘的共享名; /mnt/d是要将该分区mount到linux的目录; win_name和win_pass是你的WINDOWS里面可以读取该分区的用户,比如你的管理员名和密码。 如果你运行了/etc/rc.d/init.d/netfs,那么在启动的时候就会自动挂载这个分区。

LINUX优秀站点集锦[B9]

1. http://www.shakthimaan.com

2. ftp://81.80.104.162(ATMEL提供的下载网站)

3. http://www.at91.com(butlerz_gaoyh,123456)

4. http://www.joyfire.net/

5. http://www.busybox.net/downloads

6. www.linuxforum.com (lucky_butler,123456)

7. www.arm.linux.org.uk(butler_gaoyh,123456)

8. Link to the Linux Patch ressource http://www.arm.linux.org.uk/developer/patches/section.php?section=20

9. How to build a Linux ramdisk, How to install new binaries, Informations about the User Applications,... http://www-106.ibm.com/developerworks/linux/library/l-embdev.html

10. The Official dedicated Web Site about the use of the USB with Linux:

-The USB Standard,

-The protocol,

-The news about the last developments and the compatibility problems between the Kernel versions,.... http://www.linux-usb.org/

11.

AT91RM9200电路板FLASH中的结构如下:

Bank # 1: INTEL 28F640J3A

Size: 8 MB in 64 Sectors

Sector Start Addresses:

10000000 (RO) 10020000 (RO) 10040000 (RO) 10060000 10080000

100A0000 100C0000 100E0000 10100000 10120000

10140000 10160000 10180000 101A0000 101C0000

101E0000 10200000 10220000 10240000 10260000

10280000 102A0000 102C0000 102E0000 10300000

10320000 10340000 10360000 10380000 103A0000

103C0000 103E0000 10400000 10420000 10440000

10460000 10480000 104A0000 104C0000 104E0000

10500000 10520000 10540000 10560000 10580000

105A0000 105C0000 105E0000 10600000 10620000

10640000 10660000 10680000 106A0000 106C0000

106E0000 10700000 10720000 10740000 10760000

10780000 107A0000 107C0000 107E0000 (RO)

AT91RM9200内存分布说明:

0x0000 0000

INTERNALROM(128KBYTES)

0x1000 0000(第0扇区)

boot.bin FLASH

0x1001 0000(第0扇区)

uboot.gz FLASH

0x1002 0000(第1扇区)

ulmage FLASH

0x1012 0000(第16扇区)

ramdisk FLASH

0x107E0000(第63扇区)

u-boot环境变量 FLASH

0x2000 0000

SDRAM

0x2100 0000

ulmage SDRAM

0x2110 0000

ramdisk SDRAM

附:U-BOOT 常用命令简介

一 环境变量操作

(1) Setenv

设置环境变量

举例

setenv serverip 192.168.0.1

setenv ipaddr 192.168.0.56

setenv bootcmd ‘tftp 32000000 vmlinux; kgo 32000000’

(2) saveenv: 保存环境变量

在设置好环境变量以后,保存变量值

(3) printenv

举例

printenv,打印所有环境变量

printenv ipaddr,打印环境变量ipaddr 的值

二 FLASH 操作

(1) flinfo

显示Flash 芯片的相关信息,包括Flash 容量、扇区起始地址以及是否保护等信息

命令格式:flinfo N,N 表示第N 片flash

(2) protect

保护(取消保护)Flash 的各扇区

命令格式:

protect on/off N:SF[-SL],保护(取消保护)第N 片Flash 上的SF 到SL 之间的扇区

protect on/off bank N

protect on/off all

protect on/off start end

(4) erase

擦除Flash 的各扇区

命令格式:

erase N:SF[-SL],擦除第N 片Flash 上的SF 到SL 之间扇区

erase bank N,擦除第N 片Flash 所有扇区

erase all,作用同上

举例:

erase 1:0-2(就是对第一块FLASH 的0-2 扇区进行删除)

注:N 从1 开始

三 内存操作

包括读取、比较、更改、写入等操作,通用命令如下

[.b, .w, .l] address [length]

其中,.b,.w,.l 分别表示8/16/32 位操作

(1) md

显示某地址处的内存值。

命令格式:md[.b, .w, .l] address [length]

举例

md.b 10000000 16,表示以字节为单位显示地址0x10000000 起始的16 字节数据

(2) mm

更改某地址处的内存值

命令格式

mm[.b, .w, .l] address

(3) mw

向某地址写入数据

命令格式

mw[.b, .w, .l] address value [count]

(4) cp

将一个地址处数据拷贝到另一地址处。

命令格式

cp[.b, .w, .l] source target count

注:此命令支持从SDRAM 拷贝数据到Flash 中

(5) cmp

比较两地址处的数据

命令格式

cmp[.b, .w, .l] addr1 addr2 count

四 下载和运行控制

(1) go

从某地址处开始运行。

命令格式

go addr [arg ...]

(2) run

运行某环境变量里面的内容

命令格式

run var [...]

(3) bootm

执行存储在某地址处的uboot 格式的image 文件

命令格式

bootm [addr [arg ...]]

(4) tftp

通过网络tftp 协议下载文件到内存某一地址处。

命令格式

tftp [loadAddress] [bootfilename]

(5) loadb

通过串口使用KERMIT 协议下载文件到内存某一地址处。

命令格式

loadb [ off ] [ baud ]

五 其它

(1) help/?

举例

help,得到所有命令列表

help usb, 列出USB功能的使用说明

Build Kernel for AT91RM9200

http://hugang.dyn.soulinfo.com/wiki/index.php/Build_Kernel_for_AT91RM9200

arm-linux-gcc

Kernel source and patches

linux-2.4.27.tar.bz2 (http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.29.tar.bz2) (~29MB)

Download from the link above or from kernel.org and make a base directory.

bzcat < linux-2.4.27.tar.bz2 | tar -xf -

patch-2.4.27-vrs1.bz2 (http://www.applieddata.net/developers/linux/files/2.4.27/patch-2.4.27-vrs1.bz2) (~508kB)

Download from the link above or from arm.linux.org.uk (ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4/patch-2.4.27-vrs1.bz2).

Change to the linux directory and apply the patch using patch level "-p1".

cp -rl linux-2.4.27 linux-2.4.27-vrs1

cd linux-2.4.27-vrs1

bzcat ../patch-2.4.27-vrs1.bz2 | patch -p1

last patch (http://maxim.org.za/AT91RM9200/2.4.27vrs1-at91-06102004.patch.gz)

Download from the link above

Change to the linux directory and apply the patch.

cp -rl linux-2.4.27-vrs1 linux-2.4.27-vrs1-06102004

cd linux-2.4.27-vrs1-06102004

zcat ../*.patch.gz | patch -p1

Make it

make CROSS_COMPILE=/skiff/local/bin/arm-linux- ARCH=arm menuconfig

make CROSS_COMPILE=/skiff/local/bin/arm-linux- ARCH=arm zImage

[B1]bzip2 –d cross-2.95.3.tar.bz2(解压压缩文件)

tar xvf cross-2.95.3.tar

[H2]

-r 递归处理目录 -u 输出统一格式(unified format)

-N patch 里包含新文件-a patch 里可以包含二进制文件

[H3]mkinage在U-BOOT/tools文件夹中

[B4]这个目录需要先进行创建

[B5]您用的不是华恒的开发板,那么可能您的busybox可能没有加入NFS mount的支持,这样您就需要重新编译busybox,加入NFS mount支持,然后更新ramdisk

[H6]U-BOOT Prompt in U-boot/include/configs/at91rm9200dk.h中。#define CFG_PROMPT "Uboot> " /* Monitor Command Prompt */

[B7]如果对ramdisk的格式化失败,那就是你的内核不支持ramdisk。其内核配置选项是 CONFIG_BLK_DEV_RAM

[B8]好像只能作用一次,计算机重启后需要重新设置,推荐步骤5、6

[B9]in googel.com输入以下可以在指定的网站查询指定的信息:

site:lists.arm.linux.org.uk at91rm9200 ramdisk

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有