uboot、shell常用下载和设置命令

uboot、shell常用下载和设置命令(持续更新)
转载请注明出处

// 设置启动参数
set bootargs noinitrd init=/linuxrc console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.1.103:/work/nfs_root/1.20_fs ip=192.168.1.105:192.168.1.103:192.168.1.1:255.255.255.0::eth0:off
set bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.1.103:/work/nfs_root/qt_fs_new ip=192.168.1.105:192.168.1.103:192.168.1.1:255.255.255.0::eth0:off
set bootargs console=ttySAC2,115200 console=ttySAC0,9600 root=/dev/nfs nfsroot=192.168.1.104:/work/nfs_root/qt_1.20_fs_wifi_AP/ ip=192.168.1.105:192.168.1.104:192.168.1.1:255.255.255.0::eth0:off

set bootargs console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2		// jffs2	
set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 				// yaffs
set bootcmd 'nand read 30000000 kernel;bootm 30000000'
##############################################################################
// 挂接网络文件系统到子目录
sudo vi /etc/exports
/work/nfs_root/first_fs *(rw,sync,no_root_squash)	// 服务器允许目录被挂接
sudo /etc/init.d/nfs-kernel-server restart			// 重启服务器的nfs支持系统
mount -t nfs -o nolock,vers=2 192.168.1.103:/work/nfs_root/1.20_fs/ /mnt		// vers=2: nfs协议版本号

##############################################################################
// PC下载文件系统
tftp 30000000 fs_mini.jffs2
tftp 30000000 fs_mini_mdev.yaffs2
nand erase.part rootfs		// 擦除分区

##############################################################################
// 下载文件系统
nfs 30000000 192.168.1.103:/work/nfs_root/1.20_fs.yaffs2;
nand erase.part rootfs;	
nand write.yaffs 30000000 00320000 	$filesize;  
nand write.jffs2 30000000 00320000 	$filesize;
##
nfs 30000000 192.168.1.103:/work/nfs_root/1.7_fs_ok.yaffs2;nand erase.part rootfs;nand write.yaffs 30000000 00320000 $filesize; reset
# 0x00320000: 文件系统的偏移地址; 不能用rootfs, 因为这样会下载很多无关的内容进去	
# 1.6u-boot用$(filesize), 指传输文件的大小

##############################################################################
// 下载内核
cp arch/arm/boot/uImage /work/nfs_root/uImage_FTDI;		
nfs 30000000 192.168.1.104:/work/nfs_root/uImage_FTDI;	bootm 30000000
nand erase.part kernel;
nand write 30000000 kernel;
boot; 
bootm 30000000
---
nand erase 00120000 200000
nand write 30000000 00120000 200000
sound.bin

##############################################################################
// 下载u-boot	u-boot_2012_org.bin	
nfs 32000000 192.168.1.113:/work/nfs_root/sound_.bin;	//u-boot_2012_k4.bin;		
nand erase.part u-boot;
nand write 32000000 u-boot;

protect off all 
nand erase 0 30000
nand write 32000000 0 30000
##############################################################################
// 设置机器ID:  
	set machid 16a
// 设置ip
set ipaddr 192.168.1.105;
set serverip 192.168.1.104;
set ethaddr 00:0c:29:4d:e4:f4;
set machid 16a;
save;

##############################################################################
// 打开tftp工具后
tftp 30000000 u-boot.bin
tftp 30000000 uImage

##############################################################################
// 环境变量
#PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"
#PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin/"
/usr/local/arm/4.3.2/bin:/home/lhc/Qt/output/qt-embedded/bin:/home/lhc/Qt/output/qt-arm/bin:/home/book/bin:/home/book/.local/bin:/home/lhc/Qt/output/Qt-Creator/bin:/home/lhc/Qt/output/qt-embedded/bin:/home/lhc/Qt/output/qt-arm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/arm/bin
sudo mount -t cifs -o username=admin //192.168.1.101/f/ /work/share

##############################################################################
SYSTEM-V IPC通信命令
ipcs -a:	查看系统所有IPC的状态			
	 -q:	查看系统消息队列
	 -m:	查看共享内存状态
	 -s:	查看信号量			// signal
ipcrm  -m (id号)

##############################################################################
// 配置 编译 安装	// 配置(用来生成Makefile, ./configure --help)
./configure --host=arm-linux --prefix=$PWD/tmp
	--with-shared   generate shared-libraries
make && make install
sudo cp * /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include	// 将头文件和库复制到工具链的目录(-rfd)
sudo cp -rfd * /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib		// lib
cp -rfd *so* /work/nfs_root/1.20_fs/lib

##############################################################################
// 制作补丁
	cp .config config_wm8976	//选上wm8976
	make menuconfig				//选上uda134x
	cp .config config_uda134x
	cd ..
	mv linux-3.4.2 linux-3.4.2_alsa
	tar -xjf linux-3.4.2.tar.bz2
	diff -urN linux-3.4.2 linux-3.4.2_alsa/ > linux-3.4.2_wm8976_uda134x.patch
	rm -rf linux-3.4.2
##############################################################################
// 启动tellet
	telnetd -l /bin/login
##############################################################################
//编译内核:
	1. 解压
	2. 打补丁
	3. 将我们写的驱动程序复制到内核, 并修改Makefile
	4. cp config_ok .config
	3. make menuconfig, 选中LCD DM9000 UVC支持
	4. make uImage
##############################################################################
//编译busybox1.20
	1.make menuconfig指定交叉编译器头
	2.make
	3.哪些错误, 就make menuconfig把这一部分去掉
	
##############################################################################
//解决app段错误
	1. 让程序直接在开发板上运行, 当它发生错误时, 令他产生core dump文件;
		然后使用gdb根据core dump文件找到发生错误的地方
	2. 在ARM上运行
		1. ulimit -c unlimited
		2. 执行应用程序: 程序出错时会在当前目录下上层名为core的文件
	3. 在PC上执行(例子)
		 sudo /usr/local/arm/4.3.2/bin/arm-linux-gdb uvc_app core
	4. pc上执行, 知道是哪儿发生了段错误, 可执行q退出
		backtrace
##############################################################################
//解决驱动段错误
	PC is at 0x0
	LR is at snd_pcm_info+0xd8/0xe0		
	==>显然是在snd_pcm_info里面调用某个子函数后出错
	
##############################################################################
// strace的使用
	strace -o log app 
	
##############################################################################
// 执行su命令进入root用户, 可以不需要sudo命令				
// 编译.c文件
	gcc a.c ==>a.out
 创建空文件:
	> dir	
将一个目录拷贝到另一个地方, 如果那个地方已经存在这个目录, 就对着两个目录进行合并
source /etc/bash.bashrc

##############################################################################
开发板uart和easyeop的连线:
	1.开发版的uart的vcc和地线都连上了
	2.开发版的第3根连到easyeop第2根(电源键方向为小)
		开发版的第2根连到easyeop第3根(电源键方向为小)
##############################################################################
将函数编译成动态库so, 然后再链接生成APP,的Makefile
app: main.o libsem.so
	gcc -o $@ $^ -lsem -L.
	echo LD_LIBRARY_PATH=. ./app > app.sh
	chmod +x app.sh
libsem.so : semaphore_lib.o
	gcc -shared -o $@ $^
%.o : %.c
	gcc -fPIC -c -o $@ $<
clean: 
	rm -rf *.o *.so app *.sh
##############################################################################
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值