嵌入式

● 交叉环境编译模块

1. 在linux-2.6.22.6/arch/arm/configs目录下拷贝对应的配置文件s3c2410_defconfig到内核源码树(是开发板对应的内核版本,不是linux主机使用的内核)的根目录下,重命名为.config

2. 编译内核

切换到root,命令行执行:

export ARCH=arm

export CROSS_COMPILE=arm-linux-

export PATH=$PATH:/home/rao/Softwares/gcc-3.4.5-glibc-2.3.6/bin

安装依赖库:

sudo apt-get install libncurses5-dev

开始编译:

make oldconfig

make 

make bzImage

make modules

make modules_install

会看到内核根目录下出现vmlinux文件

3. Makefile文件

ifneq ($(KERNELRELEASE),)

obj-m:= hello.o

else

KDIR := /home/rao/Program/linux-2.6.22.6

PWD := $(shell pwd)

CROSS_COMPILE=arm-linux-

CC =$(CROSS_COMPILE)gcc

default:

make -C $(KDIR) M=$(PWD) modules

endif

clean:
rm -f *.o
rm -f *.symvers
rm -f *.order
rm -f *.ko
rm -f *.mod.c

4. 在源文件目录下执行make,得到.ko文件,然后.ko文件拷贝到开发板上,执行insmod hello.ko 命令

参考:

http://www.linuxidc.com/Linux/2014-03/97500.htm

● 安装arm gcc

注意,要在32位Linux下安装,否则需要安装32位的库,比较麻烦

修改/etc/profile

export PATH=$PATH:/home/rao/Softwares/gcc-3.4.5-glibc-2.3.6/bin

● 开启nfs

CentOS默认安装了nfs服务

开启服务:

service rpcbind start

service nfs start

chkconfig rpcbind on

chkconfig nfs on

修改配置文件:

 vim /etc/exports

/home/rao/work  192.168.1.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)

重新加载nfs

exportfs -r

挂载:

mount -t nfs -o nolock 192.168.1.110:/home/rao/work /mnt/work

参考:

http://www.linuxidc.com/Linux/2015-05/117378.htm

http://www.cnblogs.com/jkko123/p/6361476.html?utm_source=itdadao&utm_medium=referral

● tftp烧写

tftp 30000000 leds.bin  #将leds.bin下载到地址30000000(nand flash)

nand erase bootloader  #先擦除bootlloader代表的地址

nand write 30000000 bootloader  #将地址30000000处的程序烧写到BootLoader处

posted @ 2017-06-20 22:04  volcanorao  阅读(142)  评论(0)    收藏  举报