AM335X

来自天嵌科技
跳转至: 导航搜索

介绍文档

安装编译环境

百度网盘处下载4.4.6_TQ3358_release_20180820.tar.bz2文件,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

#cd /opt
#tar xjf 4.4.6_TQ3358_release_xxx.tar.bz2 -C /
#sed -i '/^PATH/d' /etc/environment
#echo PATH=$PATH:/opt/EmbedSky/4.4.6/bin:/opt/EmbedSky/4.4.6/qt4.5/bin>>/etc/environment
#source /etc/environment
#apt-get update
#apt-get install mtd-utils
#apt-get install zlib
#apt-get install lzop

ubuntu系统搭建nfs服务器

在pc机中执行以下命令,可以在ubuntu系统中搭建nfs服务器:

#apt-get install nfs-common
#mkdir /opt/nfs
#echo "/opt/nfs *(rw,sync,no_root_squash,no_subtree_check)">> /etc/exports
#/etc/init.d/nfs-kernel-server restart

ubuntu系统搭建tftp服务器

在pc机中执行以下命令,可以在ubuntu 系统中搭建tftp服务器:

#apt-get install tftp-hpa tftpd-hpa
#mkdir /opt/tftp
#echo "TFTP_USERNAME=\"tftp\""> /etc/default/tftpd-hpa
#echo "TFTP_DIRECTORY=\"/opt/tftp\"">>/etc/default/tftpd-hpa
#echo "TFTP_ADDRESS=\"0.0.0.0:69\"">> /etc/default/tftpd-hpa
#echo "TFTP_OPTIONS=\"-l -c -s\"">> /etc/default/tftpd-hpa
#service tftpd-hpa restart		;注此命令需要每次开机执行一次才能使用

ubuntu系统搭建ftp服务器

在pc机中执行以下命令,可以在ubuntu系统中搭建ftp服务器:

#apt-get install vsftpd
#mkdir /opt/ftp
#useradd -d /opt/ftp -s /bin/bash ftpname
#passwd ftpname			;设置密码,例如设置为123
#service vsftpd start

使用方法:

在开发板中执行ftpget -u ftpname -p 123 192.168.1.xxx zImage获取电脑中/opt/ftp目录下的zImage文件

编译uboot

百度网盘处下载uboot源码uboot_TQ3358_Nand_V3.5.tar.bz2,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

#cd /opt
#tar xjf uboot_TQ3358_xxx.tar.bz2 -C /
#cd /opt/EmbedSky/TQ335x/uboot_TQ335x_Nand
#./build.sh

然后等待编译完成,编译完成后可以看到在此目录下有MLO和u-boot.bin文件,此文件可以直接烧录到板卡中启动

编译kernel

百度网盘处下载linux源码Kernel_3.2_TQ3358_for_Linux_v3.5.tar.bz2,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

#cd /opt
#tar xjf Kernel_3.2_TQ3358_for_Linux_xxx.tar.bz2 -C /
#cd /opt/EmbedSky/TQ335x/Kernel_3.2_TQ335X_for_Linux
#./build.sh

然后等待编译完成,编译完成后可以看到在此目录下有zImage_CoreB_V1.bin,zImage_CoreB_V2.bin,zImage_CoreC.bin文件,分别对应TQ335x_CoreBV1板卡TQ335x_CoreB_V2板卡,TQ335x_CoreC板卡的内核,具体使用的是哪款板卡可以查看官网的产品信息。

制作文件系统镜像

百度网盘处下载文件系统工具包和系统文件rootfs_tools_V3.6.tar.bz2,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行(第一次使用前需按安装编译环境章节搭建好环境):

#cd /opt
#tar xjf rootfs_tools_xxx.tar.bz2 -C /
#cd /opt/EmbedSky/TQ335x/ubitools
#./mkfs1G_4k.sh rootfs			制作镁光型号的存储器镜像(2018年以后新买的板卡使用此命令)
#./mkfs1G_2k.sh rootfs			制作Spantion型号的存储器镜像(一般2018年以前买的板卡使用此命令)

执行成功之后可以在此目录下看到rootfs_2k.img(执行./mkfs1G_2k.sh rootfs生成)或rootfs_4k.img(执行./mkfs1G_4k.sh rootfs生成)文件,然后可以将此文件烧录到板卡中

烧录镜像

使用sd卡自动烧录方式

A).制作烧录卡 按照编译uboot源码章节先编译uboot,然后在uboot源码目录中执行

#./create_sdcard.sh /dev/sdx

注:其中/dev/sdx为sd卡的设备节点,根据电脑的不同会改变,可以通过以下方式确认sd卡的节点:
在不接上usb读卡器时执行ls /dev/sd*,然后接上usb读卡器时执行ls /dev/sd*,可以看到接上读卡器时会多出一个文件,新增加的文件名即是sd卡的设备名;
B).执行完成之后可以看到sd卡中有MLO,u-boot.bin,embedsky.ini三个文件,如果要烧写内核和文件系统还需要拷贝相应的镜像文件到sd卡中,然后通过修改embedsky.ini文件确定要烧写的镜像名,具体如何修改参考embedsky.ini配置说明章节
C).将拨码启动方式选择拨至SD,然后启动即可自动烧录,烧录完成之后可以通过调试串口看到进入uboot菜单,拨码方式如下:

DEVICE BOOT2 BOOT3
NAND ON OFF
SD OFF ON

编译QT程序

百度网盘处下载qt程序源码qt_apps_source_code_V2.0.tar.bz2将其拷贝到根目录/opt目录下,编译qt程序前需先按安装编译环境章节安装好编译器,然后在ubuntu系统中执行

#cd /opt
#tar xjf qt_apps_source_code_Vx.x.tar.bz2 -C /
#cd /cd_source/tq3358/rootfs/opt/EmbedSky/qt-4.5/335Xpro
#cd XXX		;XXX为要编译的程序,例如TQAdc等等
#qmake_arm xxx.pro	;xxx.pro以实际程序名称为主
#make

执行完成之后可以在同级目录下看到可执行程序,将其拷贝到开发板上运行即可

embedsky.ini配置文件说明

[common]
erase_env= ;1表示擦除uboot环境,0表示不擦除
;用于设置烧写的系统类型,目前支持linux,nfs
;当设置为nfs时表示文件系统使用的是nfs服务器中的,会烧录[linux_upgrade]栏中除system的其他项,并设置nfs启动,服务器地址根据[nfs]栏的参数而定
system_type=linux
erase_all=0 ;1表示烧写前擦除整个存储器,0表示不擦除
[nfs]
ipaddr = 192.168.1.64 ;nfs启动时板卡使用的ip地址
nfsserverip = 192.168.1.162 ;nfs启动时服务器的ip
nfs_dir = /opt/nfs/rootfs/ ;nfs服务器中文件系统的路径
[env]
... ;用于添加新uboot环境,例如tq = embedsky,在烧写完后可以看到uboot环境中有tq=embedsky
board_name = TQ3358_CoreB ;使用CoreB板卡要添加此项,不然在sd卡烧录过程中lcd背光会不亮(不加时只是影响烧录时的背光,不影响nand启动的背光)
board_name = TQ3358_CoreC ;使用CoreC板卡要添加此项,不然在sd卡烧录过程中lcd背光会不亮(不加时只是影响烧录时的背光,不影响nand启动的背光)
[display]
mxcfb0 = lcd_7pd
;用于设置显示屏类型,可用选项有:
;lcd_7pd:为7寸普清显示屏,分辨率为800*480
;lcd_7hd:为7寸高清显示屏,分辨率为1024*600
;lcd_5hd:为5寸高清显示屏,分辨率为800*480
;lcd_4_3pd:为4.3寸显示屏
;lcd_3_5pd:为3.5寸显示屏
;lcd_10_4pd:为10.4寸显示屏
;lcd_13_3pd:为13.3寸显示屏
;vga_720p:为VGA显示参数720p
;vga_1080p:为VGA显示参数1080p

;panel_lcd:为自定义显示屏,分辨率与参数需要填充[panel_lcd]栏
[panel_lcd] ;当mxcfb0=panel_lcd时使用,用于自定义设置屏参,需要根据自己屏幕的规格书填充数字
x_lcd = 800
y_lcd = 480
pix_clk_lcd = 3000000
hbp_lcd = 1
hfp_lcd = 2
hsw_lcd = 3
vbp_lcd = 4
vfp_lcd = 5
vsw_lcd = 6
rgb_lcd = 24
rgb_lcd = 32
[linux_upgrade] ;用于设置烧录镜像的文件名,不需要烧录时可以清空”=”右边
mlo=MLO ;烧录启动文件
bootloader=u-boot.bin ;烧录uboot
kernel=zImage.bin ;烧录内核
Logo=logo.bmp ;烧录uboot logo文件,图片需是24位色
system=rootfs.img ;烧录文件系统镜像

外设使用方法

adc使用

在命令行中读取adc的值:

#Cat /sys/bus/iio/devices/iio:device0/in_voltageN_raw

其中N表示adc的通道标号,例如要读取AIN4管脚的电压,N为4 在代码中读取adc的值可参考以下代码:

Int fd = Open(“/sys/bus/iio/devices/iio:device0/in_voltageN_raw”,O_RDONLY);
Read(fd,buff,sizeof(buff));
Close(fd);

控制背光

在命令行中设置背光亮度:

#echo xxx > /sys/class/backlight/pwm-backlight/brightness

其中xxx为0~100的数值,表示背光的亮度 在代码中设置背光亮度:

Int fd = Open("/sys/class/backlight/pwm-backlight/brightness",O_RDWR);
write(fd,"50",2);	//设置背光值为50
Close(fd);

修改&取消默认启动程序

修改文件系统中的/bin/pda文件,找到最后一行的”$QPEDIR/bin/tqpda -qws > /dev/null 2>/dev/null”

将其替换成自己的开机程序即可,或在最前面加”#”号去掉开机启动程序.

wifi热点发送功能(AP)

本方法仅保证适用于tq-8723-wifi模块,在板卡串口终端上执行

#cd /test_file/
#./send_ap.sh

默认账号:test 密码:12345678

修改账号密码方法:

#vim  /etc/hostapd.conf

账号对应项:ssid=test

密码对应项:wpa_passphrase=12345678

wifi连接功能

本方法仅保证适用于tq-8723-wifi模块,在板卡串口终端上执行

#cd /test_file/
#./link_wifi.sh

默认账号:CDMA-yalu 密码:1234567890

wifi用户、密码修改:

#vim /etc/wpa_supplicant.conf

账号对应项:ssid="CDMA-yalu"

密码对应项:psk="1234567890"

4G全网通拨号上网

本方法仅保证适用于tq-SIM7100c,SIM7600c等模块,在板卡串口终端上执行

#/test_file/link_4g.sh

ssh远程登录

先在开发板中配置好网络,例如下面命令是将以太网的ip设置为192.168.1.6:

#ifconfig eth0 up
#ifconfig eth0 192.168.1.6

然后在PC中执行ssh root@192.168.1.6可以登录开发板(前提是网络能够互相ping通)

使用ftp获取电脑中的文件

先安装环境搭建章节搭建好ftp服务器后,在开发板上执行以下命令可以获取电脑中的文件:

#ftpget -u ftpname -p 123 192.168.1.xxx filename

其中123为用户ftpname的密码,192.168.1.xxx为ftp服务器的ip,filename为需要获取的文件名

开发说明

修改管脚pinmux

下面以修改UART1_TXD管脚为例,将其修改为其他功能管脚:

  • 步骤1:

打开核心板原理图,找到需要修改的管脚: 修改管脚pinmux

  • 步骤2:

打开arch/arm/mach-omap2/mux33xx.c文件,在文件中搜索“UART1_TXD”,可以找到:

_AM33XX_MUXENTRY(UART1_TXD, 0,
	"uart1_txd", "mmc2_sdwp", "d_can1_rx", "i2c1_scl",
	NULL, "pr1_uart0_txd_mux1", NULL, "gpio0_15"),
其中:
“uart1_txd”		    对应步骤3的OMAP_MUX_MODE0
“mmc2_sdwp”	        对应步骤3的OMAP_MUX_MODE1
“d_can1_rx”	        对应步骤3的OMAP_MUX_MODE2
“i2c1_scl”		    对应步骤3的OMAP_MUX_MODE3
“pr1_uart0_txd_mux1”	对应步骤3的OMAP_MUX_MODE5
“gpio0_15”		    对应步骤3的OMAP_MUX_MODE7
  • 步骤3:

在目录arch/arm/mach-omap2下面打开

board-tq335x_coreb_v1.c(TQ3358 CoreBV1板卡) ,

board-tq335x_coreb_v2.c(TQ3358 CoreBV2板卡),

board-tq335x_corec.c(TQ3358 CoreC板卡)文件

添加:

static struct pinmux_config gpio_mux[] = {
{"uart1_txd.uart1_txd",          OMAP_MUX_MODE0 | AM33XX_PULL_UP | AM33XX_PULL_DISA | AM33XX_SLEWCTRL_SLOW},    	//将管脚修改为uart发送功能
{"uart1_txd.gpio0_15",           OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
        {NULL, 0},
};
其他可用选项有:
AM33XX_SLEWCTRL_FAST:	高速管脚
AM33XX_SLEWCTRL_SLOW:	低速管脚
AM33XX_PULL_DISA:	关闭内部上下拉
AM33XX_PIN_OUTPUT:	输出下拉
AM33XX_PIN_OUTPUT_PULLUP:	输出上拉
AM33XX_PIN_INPUT:	关闭内部上下拉,并配置成输入
AM33XX_PIN_INPUT_PULLUP:	开启内部上拉,并配置成输入
AM33XX_PIN_INPUT_PULLDOWN:	开启内部下拉,并配置成输入

同时在函数am335x_evm_init中添加:

setup_pin_mux(gpio_mux);