snifer

[原创]嵌入式3G机器人项目实战----工具链的编译

0
阅读(2841)

工具的获得有多种途径,第一种方法也是最简单的一种方法是在下面这个网站下载

http://www.codesourcery.com/sgpp/lite/arm/portal/release1600在这个网站上下载的工具链默认支持的是ARMV5的指令集,而我们的s3c2410使用的是ARV4T的,所以在使用这个工具链的的时候我们在编译的时候需要加参数-march armv4t。第二种方法是自己编译移植支持armv4t的工具链,编译方式参考实验指导书,这里我们采用的工具链是arm-none-linux-gnueabi-gcc-4.3.2

3.2 uboot移植

         u-boot我们采用的是u-boot.2010.03的版本,具体的移植步骤参考实验指导书

3.3 内核移植

         内核的移植分为两个部分,一部分是基本驱动的添加如nand flash、网卡等,这部分的移植参考实验,另一部分驱动的添加我们在下面一一介绍。

3.3.1 摄像头驱动的移植

         我们选择的摄像头使用的芯片是中星微的ZC301,这个摄像头的驱动在内核里已经支持,我们需要做的工作是通过配置内核选项,使我们的内核支持这个摄像头。

make menuconfig

Device Drivers  ---> 

<*> Multimedia support  --->

                           <*>   Video For Linux

[*]     Enable Video For Linux API 1 (DEPRECATED) (NEW)

[*]   Video capture adapters (NEW)  --->

[*]   V4L USB devices (NEW)  --->

<*>   USB Video Class (UVC)

[*]     UVC input events device support (NEW)

                                     <*>   GSPCA based webcams  --->

                                                        <*>   ZC3XX USB Camera Driver


在摄像头驱动驱动中添加如下代码

         修改文件drivers/media/video/gspac/gspca.c

220                     goto error_buffer;

221  }

+                urb->transfer_flags = URB_NO_TRANSFER_DMA_MAP;

222  usb_fill_int_urb(urb, dev,

223            usb_rcvintpipe(dev, ep->bEndpointAddress),

无线网卡驱动的移植

         我们选择的无线网卡是ralinkrt73芯片,这个芯片的驱动在内核中也有了支持,但是内核中的这个驱动功能有限,所以我们需要去ralink官网上去下载驱动,但是我们还是需要去配置内核,选择wifi相关的选项。

1)         内核配置

make menuconfig

[*] Networking support  --->

-*-   Wireless  --->

<*>   cfg80211 - wireless configuration API

<*>   Generic IEEE 802.11 Networking Stack (mac80211)

[*]   Enable mac80211 mesh networking (pre-802.11s) support

 

Bus support  ---> 

                  <*> PCCard (PCMCIA/CardBus) support  --->

Device Drivers  --->

                  [*] Network device support  --->

                           [*]   Wireless LAN  --->

                                     <*>   Aviator/Raytheon 2.4GHz wireless support

1)         驱动移植

a)         驱动下载

下载网站http://www.ralinktech.com/

下载驱动2010_0817_RT73_Linux_STA_v1.1.0.4.tar.bz2

b)         驱动编译

解压内核并修改makefile

tar xvf 2010_0817_RT73_Linux_STA_v1.1.0.4.tar.bz2

cd 2010_0817_RT73_Linux_STA_v1.1.0.4

vim Makefile

修改Makefile内容为

5 #PLATFORM=PC

6 PLATFORM=CMPC

33 #EXTRA_CFLAGS += -DDBG

40 ifeq ($(PLATFORM),CMPC)

41 LINUX_SRC = /source/kernel/linux-2.6.35

42 endif

注:#EXTRA_CFLAGS += -DDBG 一定要关掉,否则终端会不停的循环打印扫描网络的信息

make

c)         安装

编译好之后我们关心的文件有三个rt73.binrt73.kort73sta.dat将这些文件拷贝到我们做好的文件系统中。

cp rt73.ko /source/rootfs/drivers

cp rt73.bin /source/rootfs/etc/Wireless/RT73STA/

cp rt73sta.dat /source/rootfs/etc/Wireless/RT73STA/

到此为止,移植成功了,继续驾校。。。。。