forlinx335x系统移植
启动方式:
- SD 卡启动设置: 1 On, 2 On (On 代表拨到上方,Off 代表拨到下方)
- NandFlash 启动设置:1 Off ,2 On (On 代表拨到上方,Off 代表拨到下方)
更新系统
.SD卡一键更新
1.将 bin 目录下的 MLO、u-boot.img、uImage、ubi.img 拷入 SD 卡 boot(FAT32)分区,此步骤与 rootfs分区无关,
2.拨码开关拨到 SD 启动项,把 SD 卡插入到开发板的 SD 卡插槽中,开机进入 U-boot
命令行, 执行 “run update_nand”命令
终端如下打印:
OK335X# run update_nand
---------------Begin update system to Nand---------------
NAND erase.chip: device 0 whole chip
Erasing at 0xffe0000 – 100% complete.
OK
reading MLO
36087 bytes read
HW ECC BCH8 Selected
NAND write: device 0 offset 0x0, size 0x8cf7
36087 bytes written: OK
reading u-boot.img
235204 bytes read
HW ECC BCH8 Selected
NAND write: device 0 offset 0x80000, size 0x396c4
235204 bytes written: OK
reading uImage
3450392 bytes read
HW ECC BCH8 Selected
NAND write: device 0 offset 0x280000, size 0x34a618
3450392 bytes written: OK
reading ubi.img
43253760 bytes read
SW ECC selected
NAND write: device 0 offset 0x780000, size 0x2940000
43253760 bytes written: OK
--------------Update system to Nand success--------------
OK335X#
uboot编译
1.解压交叉编译链:
tar xvf cross-tools-am335x-4.5.3.tar.bz2 -C /usr/local/arm
2.指定目标文件夹名、交叉工具、架构、板级进行编译
make O=ok335x CROSS_COMPILE=/usr/local/arm/cross/am335xt3/devkit/bin/arm-arago-linux-gnueabi- ARCH=arm ok335x
3.编译结果:
相关文件位置:
kernel编译
- 解压
tar xvf linux-3.2.0-forlinx.tar.bz2
cd linux-3.2.0
- 编译
cp arch/arm/configs/ok335xd_evm_linux_defconfig .config
make CROSS_COMPILE=/usr/local/arm/cross/am335xt3/devkit/bin/arm-arago-linux-gnueabi- ARCH=arm uImage
优化启动时间:
文件系统制作
对于 SD 卡,文件系统是 ext3 格式的,如需添加文件直接往里拷贝即可,
对于 Nand, 文件系统是 ubi格式的文件系统,修改其中内容方法如下:
-
拷贝 filesystem 目录下 rootfs.tar.bz2 文件到 /home/forlinx/work 目录下,拷贝 tools 目录下的
mkfs.ubifs,,ubinize,ubinize.cfg 到 /home/forlinx/work 目录下然后执行: -
创建一个新文件夹
mkdir rootfs -
将文件系统解压到 rootfs 目录
tar xvf rootfs.tar.bz2 -C rootfs
根据您的需求修改 rootfs 文件夹里面的内容,比如增加脚本文件,设置 IP 地址等等 -
重新生成 ubi.img
./mkfs.ubifs -r rootfs -m 2048 -e 126976 -c 1900 -o ubifs.img
./ubinize -o ubi.img -m 2048 -p 128KiB -s 512 -O 2048 ubinize.cfg
rm ubifs.img -
将新的 ubi.img 重新烧写到 nand 即可。
命令行测试
飞凌提供的内核同时支持 5/7/8 寸电阻屏和电容屏,但系统默认使用 7 寸电阻屏,如果用户想要使
用电容屏,可以在 uboot 命令行执行命令 scr type C 即可,想要使用电阻屏时用户只需在 uboot 命令行执行命令 scr type R 即可切换回电阻屏模式, 另外 scr size 5/7/8 命令可以在 5 寸/7 寸/8 寸屏间进行切换。
驱动文件
设备 驱动程序源代码在内核中的位置 对应的设备名
网卡驱动 drivers/net/ethernet/ti/cpsw.c eth0
LED 驱动 drivers/misc/led_dev.c /dev/led
LCD 背光驱动 drivers/video/backlight/pwm_bl.c /sys/class/backlight
USB 接口 U 盘 drivers/usb/storage/ /dev/sdX
USB 鼠标 drivers/hid/usbhid/ /dev/input/mice
Flash ECC 校验 drivers/mtd/nand/nand_ecc.c 无
Nand Flash 驱动 drivers/mtd/nand/omap2.c /dev/mtdX,mtdblockX
UBI 文件系统 fs/ubifs/ 无
SD 卡驱动 drivers/mmc/card/ /dev/mmcblk0
(自制底板没有写保护引脚,在板级文件中注销掉该控制,硬件去掉CLK引脚上的电容)
LCD FrameBuffer drivers/video/da8xx_fb.c /dev/fb0
电阻触摸驱动 drivers/input/touchscreen/ti_tsc.c /dev/input/event0
电容触摸驱动 drivers/input/touchscreen/ft5x06_ts.c /dev/input/event0
RTC 实时时钟驱动 drivers/rtc/rtc-ds1307.c /dev/rtc0
改为:RTC 实时时钟驱动 drivers/rtc/rtc-rx8025.c /dev/rtc
SPI 驱动 drivers/spi/spidev.c /dev/spidev2.0
串口(含三个串口) drivers/tty/serial/omap-serial.c /dev/ttyO0,1,4
串口(只用到了两个) drivers/tty/serial/omap-serial.c /dev/ttyO0,2
其中ttyO2用于读取gps数据—控制gps使能的引脚为GPIO3_20
按键驱动 drivers/input/keyboard/gpio_keys.c /dev/input/event3
看门狗驱动 drivers/watchdog/omap_wdt.c /dev/watchdog
外部看门狗gpio为gpio0_4
RS485 驱动 drivers/tty/serial/omap-serial.c /dev/ttyO2
RS485 驱动 drivers/tty/serial/omap-serial.c /dev/ttyO1
EEPROM 驱动 drivers/misc/eeprom/at24.c /dev/eeprom
CAN 驱动 drivers/net/can/d_can/d_can.c can0
音频驱动 sound/soc/codec/tlv320aic3x.c /dev/snd/controlC0,
pcmC0D0c,pcmC0D0p,
seq,timer
开发板功能测试:
OK335xD 开发板中有三个串口,在开发板上的标识符分别为 COM0,COM1,UART。COM0 为调试
口,不需要测试。
1)COM0 口,RS232 电平,用于调试口,在 Linux 中的设备名称: /dev/ttyO0;
2)COM1 口,RS232 电平,使用 DB9 公头,在 Linux 中的设备名称: /dev/ttyO1;
3)UART 口,TTL 电平,使用插针接口,在 Linux 中的设备名称 :/dev/ttyO4;
-
SD卡不支持热插拔
挂载在/media的mmcblk0p1和mmcblk0p2下 -
U盘测试通过
挂载在/media的sdxx目录下 -
以太网测试未通过
ifconfig eth0 192.168.1.233
ping 192.168.1.105(我的pc的ip)
ping 不通
-
复位测试通过
-
看门狗测试通过:
/forlinx/bin/restarttest
测试程序中打开了/dev/watchdog 设备文件,启动 Watchdog,程序进入忙
循环状态,由于没有喂狗,60 秒后系统复位。 -
LED测试通过
-
背光测试通过
1) 默认背光值查看:# cat /sys/class/backlight/pwm-backlight/brightness
602)设置背光值:# echo 30 > /sys/class/backlight/pwm-backlight/brightness
-
RTC测试通过
1)查看系统时间date
Thu Oct 3 18:48:31 UTC 2013
2)设置系统时间
date 040311422014.01
Thu Apr 3 11:42:01 UTC 2014
3)查看硬件时间
hwclock
Thu Oct 3 18:52:55 2013 0.000000 seconds
4) 将系统时间设置到时钟芯片里面,此时 rtc 就可以使用了。如果没有这步,下
次启动时,系统时间是不会更新的
# hwclock -w
5) 断电重启系统,读取RTC 时间,并同步给系统时间
hwclock -s
-
EEPROOM测试通过
eepromtest -w 123456789abcdefghijklmnopqrstuvwxyz
eepromtest -r
-
USB 3G测试(还未测试)
本产品目前支持以下 3G 上网卡:
WCDMA:华为 E1750、E261、中兴 MF190。
CDMA2000:中兴 AC2787、AC582。
TDSCDMA:中兴 A356。 -
USB WIFI 测试通过(使用老的ourlink)——系统启动后插入
本产品目前支持以下 WIFI 网卡:
BL-LW05-AR5:芯片型号 RTL8188CUS
EP-N8508GS:芯片型号 RTL8188CUS。
1)插入usb wifi 运行命令
lsusb
出现Bus 001 Device 007: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
这样一行,打印出来网卡信息
2)关掉以太网,使能wifi网卡
root@ok335x:/forlinx/bin# ifconfig eth0 down
root@ok335x:/forlinx/bin# ifconfig wlan0 up
[ 852.947538] rtl8192cu: MAC auto ON okay!
[ 852.972156] rtl8192cu: Tx queue select: 0x05
[ 852.977897] rtl8192c_common: Loading firmware file rtlwifi/rtl8192cufw.bin
3)配置 wlan0 的 IP,并添加缺省路由
ifconfig wlan0 192.168.1.223
route add default gw 192.168.1.1
4)查看添加路由是否成功
route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
5)查看扫描周围的 AP
iwlist wlan0 scan
Cell 03 - Address: 28:2C:B2:9D:21:FB
Channel:5
Frequency:2.432 GHz (Channel 5)
Quality=69/70 Signal level=-41 dBm
Encryption key:on
ESSID:“PICOHOOD”
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=0000000317315180
Extra: Last beacon: 400ms ago
IE: Unknown: 00085049434F484F4F44
IE: Unknown: 010882848B960C121824
IE: Unknown: 030105
IE: Unknown: 0706434E20010D1E
IE: Unknown: 2A0100
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: Unknown: 32043048606C
IE: Unknown: 2D1AEE111BFFFFFF0000000000000000000000000000000000000000
IE: Unknown: 331AEE111BFFFFFF0000000000000000000000000000000000000000
IE: Unknown: 3D1605051700000000000000000000000000000000000000
IE: Unknown: 341605051700000000000000000000000000000000000000
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: Unknown: DD0900037F01010000FF7F
6)配置wpa_supplicant.conf,并进行相应修改
wpa_passphrase PICOHOOD “12345asdfg” >> /etc/wpa_supplicant.con
7)连接AP
wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant.conf -B -d
- 测试连接成功与否 ——连接成功
ping baidu.com
PING baidu.com (220.181.111.85): 56 data bytes
64 bytes from 220.181.111.85: seq=0 ttl=52 time=51.631 ms
64 bytes from 220.181.111.85: seq=1 ttl=52 time=127.325 ms
64 bytes from 220.181.111.85: seq=2 ttl=52 time=98.544 ms