当前位置:首页 >> 信息与通信 >>

AM335X开发日记


AM335X 平台开发日记
2014-11-24 至 2014-11-29 进行核心板原理图设计 2014-12-1 至 2014-12-10 进行 PCB 设计。 2014-12-5 开始学习 AM335X 软件部分的知识。 安装了 vmware 虚拟机,10.0.1 版本的。 安装了 ubunt12.04 版本。 安装 vmware-tools,创建共享文件夹。 在

root(需执行 sudo su)下执行 mount -t vmhgfs .host:/ /mnt/hgfs 在 windows 共享文件夹存放 TI 安装包 ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.bin。在终端里面执行安装。安装 目录为/usr/local/ti-sdk-am335x-evm#,一般会自动加入环境变量,如果没有,在 /etc/environment 增加环境变量: (注意:6.0 的安装包不支持 ubunt14.04 版本,只支持 12.04 以下的版本) PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/l ocal/ti-sdk-am335x-evm/linux-devkit/sysroots/i686-arago-linux/usr/bin:" 输入命令 arm-linux-gnueabihf-gcc –v 即可查询版本 执行 setup.sh 配置 linux 环境,例如安装包更新,NFS,TFTP,minicom 等。 下载了 Uniflash V3,准备选择 USB 或者 ETH 接口进行 FLASH 编程。 执行命令 make CROSS_COMPILE=arm-linux-gnueabihf- O=am335x ARCH=arm am335x_evm 编译 u-boot,生成 MLO(spl)和 u-boot.img Nandflash 程序分区: 1. 0-0x1ffff 为 SPL 2. 0x20000-0x3ffff 为 SPL backup1 3. 0x40000-0x5ffff 为 SPL backup2 4. 0x60000-0x7ffff 为 SPL backup3 5. 0x80000-0x25ffff 为 uboot 6. 0x260000 -0x27ffff 为 env 7. 0x280000-0x77ffff 为 linux kernel 8. 0x780000为 file system 9. 下载 uboot 软件并进行修改适应新设计的核心板,并把 uboot 下载到板子里 调试运行。

2014-12-8 下载安装 TI 的 AM335X 开发板的 6.0 软件包, 安装下载了用于 USB 下载烧录 FLASH

的工具 UniFlash,学习 UniFlash 的使用方法。 2014-12-9 今日编写部门年度计划和总结,未进行软件调试。 2014-12-10 编译 uboot,尝试用 USB 下载,下载安装了驱动程序 linux_am335x.inf,板子能识 别 USB 接口并虚拟成网口, 但是程序下载过程中没反应。 学习 uboot 的软件结构,编译选项和编译过程,分析 uboot 中 SPL 的运行过程, 不同加载方式的区别等。 SPL 加载执行过程: 1. 首先 Start.s 里面调用 cpu_init_crit,再运行 lowlevel_init,里面执行 s_init() 2. 然后运行_main,在 arch/arm/lib 里面的 crt0.s 中 3. 运行 board_init_f,在 arch/arm/lib 里面的 spl.c 中,再运行 board_init_r()。 4. 执行 spl_board_init 到 am33xx_spl_board_init,进行主频设置(会根据不同板 子进行) 。 5. 根据启动参数 boot_params.omap_bootdevice 来选择进行 uboot.img 的加载。 6. 跳转到 uboot 程序运行,这里也可以选择通过 SPL 直接加载 linux。

尝试用 UART 口加载程序,采用 xmodem 可以下载,但是下载后没有反应。 晚上采用 PSP 的软件包编译,放到 SD 卡里面可以加载运行。 但是仍然不理解为什么 UART 下载的程序不运行,是否内部 ROM 程序把软件加 载位置和编译选项之间的关系不匹配?但查不到出问题的地方。 2014-12-11 把关于 EEPROM 的部分删除,编译 UBOOT,可以在周立功的板子上运行,并可 以加载 ubot,进而引导内核。可能是 SD 卡文件系统有问题,就是加载文件系统 失败。 另外发现在运行 CPSW 时提示“wait_for_user_access Timeout” ,这是对 PHY 操作 的 MDIO 长时间处于忙状态导致,判断 GO 状态位,在寄存器 MDIOUSERACCESS0 中有说明。 下一步准备在 uboot 中调通以太网和 NANDFLASH。 2014-12-12 Nand 调试说明: 1. 首先修改 Mem.c 中的 gpmc_init()函数,相应修改 Mem.h 中的配置。查看 gpmc_config = gpmc_m_nand;找到 gpmc_m_nand 的配置,也在 Mem.h 中。 2. 外 设 引 脚 的 配 置 在 SPL 中 执 行 , 在 s_init() 函 数 中 , enable_board_pin_mux(&header);header 是从 EEPROM 中读出,如果没有 EEPROM,需要自己重新定义。

3. 重新编译 uboot 后,下载运行能识别 NAND 并可正常进行读写。 4. 用 UART 或者 SD 卡启动后,可以在 uboot 里面进行 nand 的操作,具体说明 参考 sitara-linuxsdk-sdg-06.00.00.00.pdf。 2014-12-13 以太网调试: 根据板子 PHY 的配置是 RMII,因此需要移植 1. board.c 里面,首先进行 RMII 接口外设的 mux 配置。 static struct module_pin_mux rmii1_pin_mux[] = { {OFFSET(mii1_txen), MODE(1)}, /* RMII1_TXEN */ {OFFSET(mii1_txd1), MODE(1)}, /* RMII1_TXD1 */ {OFFSET(mii1_txd0), MODE(1)}, /* RMII1_TXD1 */ {OFFSET(mii1_rxd1), MODE(1) | RXACTIVE}, /* RMII1_RXD1 */ {OFFSET(mii1_rxd0), MODE(1) | RXACTIVE}, /* RMII1_RXD1 */ {OFFSET(mdio_data), MODE(0) | RXACTIVE | PULLUP_EN},/* MDIO_DATA */ {OFFSET(mdio_clk), MODE(0) | PULLUP_EN}, /* MDIO_CLK */ {OFFSET(mii1_crs), MODE(1) | RXACTIVE}, /* RMII1_CRS_DV */ {OFFSET(rmii1_refclk), MODE(0) | RXACTIVE}, /* RMII1_REFCLK */ {-1}, }; 对于接收引脚,一定要使能 RXACTIVE,否则会出现异常。 2. 以太网的初始化, 是从执行 board_init_r(),进入 eth_initialize(), 执行 phy_init(), 这里要选择和实际一样的配置,选择 CONFIG_PHY_MICREL (周立功的板子 KSZ8041 ) 和 CONFIG_PHY_SMSC( 现 在 自 己 做 的 板 子 LAN8720) , 这 里 会 registerPHY,比较 PHYID 的一致性,提供相关驱动。 3. 接 着 执 行 board_eth_init() , 需 增 加 接 口 的 配 置 模 式 #define RMII_MODE_ENABLE 0xc5,用于配置 GMII_SEL 寄存器(使能 RMIIrefclk input) 。cpsw_slaves[0].phy_if 赋值为 PHY_INTERFACE_MODE_RMII。接着执行 cpsw_register()(在 cpsw.c 中) , 里面会对 PHY 进行初始化操作 cpsw_phy_init。

2014-12-15 为方便进行在 windows 下编辑软件,使用 samba 服务进行文件共享。 在虚拟机下的 network 配置要为 NAT , VMware Virtual Ethernet Adapter for VMnet8 的 IP 配置和客户机里的 IP 一个网段。客户机的网关配置为虚拟机的 IP。 安装 samba,apt-get install samba 建立共享目录,/home/jiao/share,并设置读写权限,chmod 777 share 建立 samba 用户,smbpasswd –a jiao (jiao 为当前用户),并输入密码。 修改 smb.conf 文件,添加共享目录设置。 [share] comment=share files path=/home/jiao/share available = yes

browseable = yes public = yes writable = yes write list =jiao valid users=jiao guest ok = yes 其他都不用改。 启动 samba 服务,service smbd start 或者重启 /etc/init.d/smbd restart 在 windows 下地址栏输入\\192.168.138.5(客户机 IP),第一次要输入用户名和密 码,可保存密码,以后就可以直接进入。在里面可以看到共享的文件夹了。 看到网上说,如果遇到访问权限,需要关闭防火墙和 seliunx,命令是 Iptables –F Setenforce 0 2014-12-16 今天是个收获的日子, 昨天偶然看到 MII_SEL 寄存器中有 RMII_REFCLK 引脚方向 配置,默认是输出,原来没有配置造成 RMII 不能正常工作 在 windwos 下用 source insight 进行编辑软件还是很方便,效率提高不少,编译 时写了脚本文件,也提高了效率。 更改 NAND flash 的写保护和 MII_SEL 寄存器的配置, 下载后, 调试发现 NANDflash 和以太网操作都正常了,可以实现 TFTP 的下载,并对成功对 NAND 进行读写。 另外在初始化网络时,可以先把 UBOOT 中的 IP 地址设置好,减少后面的输入操 作。可以用如下方法: Ipaddrset=0x0501a8c0; //192.168.1.5 ip_to_string(Ipaddrset, tmp); setenv("ipaddr", tmp); 先采用 UART 下载 u-boot-spl.bin 和 u-boot.img,启动后采用 TFTP 进行下载 MLO 和 u-boot.img,并烧录 nand Tftp 0x82000000 MLO Nand erase 0x0 0x80000 Nand write 0x82000000 0x0 0x20000 Nand write 0x82000000 0x20000 0x20000 Nand write 0x82000000 0x40000 0x20000 Nand write 0x82000000 0x60000 0x20000 Tftp 0x82000000 u-boot.img Nand erase 0x80000 0x80000 Nand write 0x82000000 0x80000 0x80000 如果用 SD 或 USB 下载,命令如下 Mmc rescan Fatls mmc 0 Fatload mmc 0 0x82000000 MLO

下面开始进行 linux 系统的移植工作,主要应该有以下几个方面: 1. 编译系统的配置,包括各种外设配置 2. 文件系统的移植 3. 6 个 UART 驱动和 CAN 驱动的移植 4. 网络驱动(两个网口) 、USB 驱动、SD 卡驱动 5. LCD 驱动的调试 6. 音频驱动 7. SPI 驱动 Linux 编译
1. clean : make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mrproper

2. 目标板默认配置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- <config>

Device

SDK config

PSP config

AM335x/Beaglebone tisdk_am335x-evm_defconfig am335x_evm_defconfig AM37x AM3517 Beagleboard AM180x tisdk_am37x-evm_defconfig omap3_evm_defconfig tisdk_am3517-evm_defconfig am3517_evm_defconfig tisdk_beagleboard_defconfig omap3_beagle_defconfig tisdk_am180x-evm_defconfig da850_omapl138_defconfig

编译 AM335X 的板子如下:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_evm_defconfig

自定义配置

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig 编译内核: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage 通过 uboot 下载内核后,能启动内核,下一步进行文件系统的移植。 2014-12-17
利用周立功提供的文件系统,编译后下载,启动报错。 UBI error: ubi_init: UBI error: cannot initialize UBI, error -19 下午参加了技术中心年中总结汇总会议,没有进行调试。

2014-12-18
今天是郁闷的一天,文件系统一直挂载失败,利用自己编译的内核,和周立功的文件系统也 不行,又试了周立功的内核和文件系统,利用自己的 ubot,也不能启动。 后来从 UBI error: ubi_init: UBI error: cannot initialize UBI, error -19 这个报错,一直跟踪查找, 找到了 open_mtd_device 返回出错, 进一步查到 idr_find 函数返回出错, 下面都是 linux 的链

表数据,看不太懂,无法进行下去了。反复进行,折腾了一天,没有眉目。 下午快下班时,想到原来 9260 平台的 linux 系统文件系统的分区信息在一个结构体 mtd_partition 里可进行修改, 找到 mtd_partition 这个结构体的定义 am335x_nand_partitions。 发现有 7 个分区信息, 但是就是没有看到打印信息, 于是怀疑 nand 就没有进行初始化操作。 从分区初始化查找 evm_nand_init 没有执行, 进而查到板子硬件初始化的结构体 evm_dev_cfg, 发现定义这个结构体的数组都是根据不同板子的信息进行的,由于我没有 EEPROM 的信息, 把根据这个信息进行的操作都屏蔽了,怪不得这些硬件初始化都没有执行。 于 是 更 改 初 始 化 信 息 的 把 , 从 EEPROM 读 出 的 config 信 息 都 进 行 手 动 配 置 , 选 择 ind_auto_mtrl_evm_dev_cfg 这个板子进行硬件初始化。 主要是修改 board-am335xevm.c 文件。从 am335x_evm_setup 函数开始。 修改程序后,运行发现文件系统能进行初始化操作了,也看到了分区信息,但是由于 UBI 参数和编译文件系统是的参数不一致,没有文件系统没有挂载成功。下一步把 UBI 参数调整 好再试试。 总结 linux 下文件系统参数的传递过程: 是从启动命令行 kernel command line 传递过来的,console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=7,2048 rootfstype=ubifs rootwait=1。 从这个信息看到根文件系统的信息是 ubi0,挂载在 ubi.mtd 的第 7 个分区上。周立功的内核 分区信息只有 5 个,所以用我们的 uboot 传递过去的信息不对,导致不成功,原来没有进行 nand 初始化并得到分区信息,因此在进行 ubi 初始化时找不到分区信息而报错。因此 uboot 的传递过去的根文件系统的挂载信息必须和 linux 系统下的分区信息相对应。一般在会在用 mtd_partition 定义的数组里,不同板子配置系统放的位置不太一样。

2014-12-19
调试发现文件系统的烧录和 ECC 的配置有很大关系,目前标准版 uboot 里面用的是

HW_BCH8_ECC。 从周立功的启动信息看, NAND: 他们把 uboot 的的 ECC 更改了。

HW ECC Hamming Code selected,

为了内核和 uboot 保持一致,暂时都选用 HW_BCH8_ECC,但是这样在做 UBI 文 件系统时,参数的选择是否就不应该和周立功的一致。 目前系统默认的是: UBI logical erase block size 0x1F000 UBI minimum I/O size 0x800 Maximum LEB count 2047 (一般小于或等于 block conut-1) UBI phyisical erase block size 0x20000 UBI sub-page size 0x800 (不分页擦除和校验等于 min I/O size)

制作根文件系统,参考 TI 的 FAE 编写的文档

Ubifs文件系统的制 作和启动.pdf

从官网上下载 ftp://ftp.infradead.org/pub/mtd-utils 直接 make 编译。 中间会报错, 需要安装一些支持库, 主要有 libacl1-dev、 liblzo2-dev、
uuid-dev、zlib1g-dev。

编译完成后,进行 make install。 执行命令进行生成镜像文件。 mkfs.ubifs –F -q -r /home/usr/fs -m 2048 -e 126976 -c 2047 -o ubifs.img 这个地方搞了很久,原来以为下载这个文件就行了,其实对于用uboot烧录nand 的方式,必须还要用ubinize进行格式转换。
ubinize -o ubi.img -m 2048 -p 128KiB ubinize.cfg ubinize.cfg文件内容如下: [ubifs] mode=ubi image=ubifs.img vol_id=0 vol_size=200MiB vol_type=dynamic vol_name=rootfs vol_flags=autoresize

制作文件系统后,利用SD卡烧录到nand中,上电启动后系统运行和加载文件系 统正常了。搞了两天终于把文件系统成功加载了。 2015-1-2 前一段时间由于工作的不确定性,把AM335X的开发暂时停了一段时间,现 在继续捡起来把这个平台完善。时间过得好快,不经意已经跨年了,俗话说好事 多磨,相信通过自己不懈的努力,应该能把这个平台的功能完善,做出一个稳定 可靠并且容易使用的平台。 前面已经把文件系统加载成功,下面需要调试系统的网口和串口驱动。没有 修改的情况下,网口PING不成功。应该还要修改一些地方。 修改am33xx_cpsw_init函数,把gmii_sel配置为0x49,MAC1设置为RMII,MAC2 设置为GMII。同时在setup_ind_auto_motor_ctrl_evm中执行 am33xx_cpsw_init(AM33XX_CPSW_MODE_RMII, NULL, NULL); 编译后在UBOOT中通过TFTP下载内核,首先要执行NAND的启动模式。 run nandargs tftp 0x82000000 uImage bootm 0x82000000 系统启动后,PING主机成功。 在ind_auto_mtrl_evm_dev_cfg数组中添加对MAC2的初始化配置: {rgmii2_init, DEV_ON_BASEBOARD, PROFILE_ALL},连接网口2,能识别出千兆 位口,但是当网口1使能时,网口2不能ping通,把网口1关闭后,网口2就能ping 通,是不是linux系统里识别到一个主机IP后,会把主机IP绑定到这个网口上。 后来在百度上查询,有人说两个网口是不能在一个网段,验证设置成两个网 段后, 两个网口能同时工作了。 如果要配置在一个网段, 必须采用策略路由方式, 这个比较麻烦,就没有进行尝试。 USB调试: 插入U盘后,系统能检测到U盘插入。 利用命令cat /proc/bus/usb/devices可以查看U盘信息。 挂载U盘

mkdir /mnt/usb mount –t vfat /dev/sda /mnt/usb 另外通过free –m 可查看内存情况,通过top命令可查看进程任务。Dmesg查看内 核的打印信息,包括各种硬件初始化和启动信息。 SD卡调试: 插入SD卡,系统能检测到SD卡。一般挂载到目录/media/mmcblk0p1。可以对 SD卡进行读操作,但是写操作失败,提示是只读系统,好像是进行了写保护,分 析代码,原系统里面有写保护设置,在下面数组里有定义,修改为GP0-19,修改 后读写正常。 static struct omap2_hsmmc_info am335x_mmc[] __initdata = { { .mmc = 1, .caps = MMC_CAP_4_BIT_DATA, .gpio_cd = GPIO_TO_PIN(0, 6), //.gpio_wp = GPIO_TO_PIN(3, 18), .gpio_wp = GPIO_TO_PIN(0, 19), .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34, /* 3V3 */ }, { .mmc = 0, /* will be set at runtime */ }, { .mmc = 0, /* will be set at runtime */ }, {} /* Terminator */ }; 利用命令fdisk –l能看到SD卡的挂载信息。 利用df命令可以查看各个文件系统的信息,包括各种挂载的文件系统。 液晶调试: 首先要在ind_auto_mtrl_evm_dev_cfg里面增加LCD的配置项: {lcdc_init, DEV_ON_BASEBOARD, PROFILE_ALL}, //液晶初始化 {enable_ecap0, DEV_ON_BASEBOARD, PROFILE_ALL}, //背光 {mfd_tscadc_init, DEV_ON_BASEBOARD, PROFILE_ALL},//触摸屏 在lcdc_init和backlight_init的函数里面增加对IND_AUT_MTR_EVM的支持。 驱动文件是da8xx-fb.c,可以配置像素,液晶选择S9700RTWV35TR,像素是 800*480 系统启动时,能看到小企鹅和进度条在液晶上显示出来了。 下一步对于显示,准备实现QT的操作。 2015-1-3 对于LCD显示,一直想做个测试程序,显示个图像,但是昨天一直没有找到, 自己不想全部动手编程,网上说,通过cat xx.bmp > /dev/fb0可以实现显示图像, 测试了一下不行,因为bmp文件格式里面有一些文件信息,不是完整图像数据信

息,FrameBuffer设备只能识别图像数据信息,并且还必须满足一定的数据格式, 比如bits_per_pixel (每个像素点占用的数据位) 的大小, 有些是16位 (565格式) , 有些是24位 (888格式) , 还有些32位 (带有灰度的888格式, 最高字节是透明度) , 因此直接把文件输入到设备缓存里面应该不行。 今天在网上查找了一下,看到LonlyCorner博客的文章LCD测试程序,并附有 源代码,把他的源代码下载保存,他的程序bits_per_pixel是16位,通过 ioctl(fbd->fd, FBIOGET_VSCREENINFO, &vinfo);获取可变参数信息,看到 AM335X系统带的驱动bits_per_pixel为32bit,根据这个修改了程序,首先是显示 红、绿、蓝三个色带。每个像素连续4个字节设置颜色。 *((int *)(fbd->pfb) + y*fbd->xres +x) = color; int型数据的代表了4个字节,原来16位用的是short型。 下一步显示一个图像。 修改下载的程序, 把16bit模式更改为32bit, 主要是把bmp文件格式中的像素点转 换为FrameBuffer设备需要的数据,bmp文件格式一般为:

另外lcd在系统中会自动休眠,需要重新激活: Echo “0” > /sys/class/graphics/fb0/blank 编译了测试程序,并转换了几个24位bmp图片,经过调试,显示正常。 2015-1-10 上周4-9号上班基本在忙一些杂事, 平台基本上没有进行, 今天周末在家又开 始调试一下。 目前开始准备调试串口和CAN。串口在board-am335xevm.c中添加初始化 {uart1_init, DEV_ON_BASEBOARD, PROFILE_ALL}, {uart2_init, DEV_ON_BASEBOARD, PROFILE_ALL}, {uart3_init, DEV_ON_BASEBOARD, PROFILE_ALL}, {uart4_init, DEV_ON_BASEBOARD, PROFILE_ALL}, {uart5_init, DEV_ON_BASEBOARD, PROFILE_ALL}, 在初始化函数里面对引脚进行设置setup_pin_mux(uart1_pin_mux); 编译下载后调试串口通信收发数据正常。 CAN总线设置了两路,添加初始化选项 {d_can_init, DEV_ON_BASEBOARD, PROFILE_ALL}, 并对引脚进行配置。系统启动后,利用ifconfig –a可以查看到can0和can1的配 置了,但是怎么进行数据收发,需要调试程序支撑,资料里面建议用canutils进 行调试,canutils的编译过程也比较麻烦,首先要编译iproute2和libsocketcan,在 编译时有好多支持软件没有,需要利用apt-get install随时安装。在编译canutils时 一直提示libsocketcan找不到,实在不行,就利用周立功提供的测试程序,对can 进行测试,能进行收发数据了。 Can驱动文件: S.No Location 1 2 3 4 drivers/net/can/d_can/d_can.c drivers/net/can/d_can/d_can_platform.c arch/arm/mach-omap2/board-am335xevm.c arch/arm/mach-omap2/devices.c Description DCAN driver core file Platform DCAN bus driver DCAN board specific data addition DCAN soc specific data addition

对can操作过程,首先socket(int af, int type, int protocol),地址描述为29,类 型是SOCK_RAW,协议是CAN_RAW,接着配置接口控制模式,选择can0. s = socket(PF_CAN, SOCK_RAW, CAN_RAW); strcpy(ifr.ifr_name, "can0"); ret = ioctl(s, SIOCGIFINDEX, &ifr); 接着配置模式和绑定地址: addr.can_family = PF_CAN; addr.can_ifindex = ifr.ifr_ifindex; ret = bind(s, (struct sockaddr *)&addr, sizeof(addr)); 配置can通信id及屏蔽位,把设置写入socket选项里。 filter[0].can_id = 0x200 | CAN_EFF_FLAG; filter[0].can_mask = 0xFFF;

filter[1].can_id = 0x20F | CAN_EFF_FLAG; filter[1].can_mask = 0xFFF; ret = setsockopt(s, SOL_CAN_RAW, CAN_RAW_FILTER, &filter, sizeof(filter)); 下面进行数据的读写: 首先清空设备信息 FD_ZERO(&rset); FD_SET(fd, &rset); 扫描接收缓冲区是否收到真实数据: ret = select(fd+1, &rset, NULL, NULL, NULL); 有数据后,读取数据: ret = read(fd, &frdup, sizeof(frdup)); 打印收到的数据: print_frame(&frdup); 把收到的数据回写: ret = write(fd, &frdup, sizeof(frdup)); 系统启动后,需要对can进行启动配置,如下: ip link set can0 type can bitrate 1000000 triple-sampling on ip link set can0 up 2015-1-11 今天开始调试触摸屏。 首先下载移植tslib1.4 # tar -zxvf tslib-1.4.tar.gz # cd tslib
3 配置

# ./autogen.sh # echo "ac_cv_func_malloc_0_nonnull=yes" > arm-linux-gnueabihf.cache # ./configure --host=arm-linux-gnueabihf --cache-file=arm-linux-gnueabihf.cache --enable-inputapi=no --prefix=/usr/local/arm-linux/tslib1.4
注意,prefix 选项更换为你的安装路径。 4.编译

# make
5.安装

# make install
修改 ts.conf 内容 打开安装路径下的/etc/ts.conf 文件,修改其内容。

# vi /usr/local/tslib/etc/ts.conf
搜索定位至#module_raw input,把行首的注释符去掉,但要注意行首不要留有空格,即文字是顶格的,不然之后会出现段错 误(segmentational fault)。 7.移植至开发板

将安装路径下的整个 tslib 文件夹,下载至开发班的上,我存放的路径为/usr/local 8. 设置开发板环境变量 通过超级终端, 打开环境变量文件/etc/profile

# vi /etc/profile
添加如下内容:

export TSLIB_ROOT=/usr/local/tslib export TSLIB_TSDEVICE=/dev/input/event1 export export export export export export export QWS_MOUSE_PROTO=tslib:/dev/input/event1 TSLIB_CALIBFILE=/etc/pointercal TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts TSLIB_FBDEVICE=/dev/fb0 TSLIB_CONSOLEDEVICE=none LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

其中,TSLIB_ROOT更换为自己实际存放的路径; 另外,TSLIB_TSDEVICE 和QWS_MOUSE_PROTO这两项需要查看自己的板子的触摸屏设备对应/dev/input/下那个文件 9.执行测试命令 重启开发板(使系统读取 profile 环境变量),进入 tslib/bin 目录,执行触摸屏校准程序

# ./ts_calibrate
如果出现tslib的触摸屏五点校准画面,至此,tslib的安装移植成功完成。 也可执行此目录下其他的程序来体验触摸屏!

通过实际操作以上步骤, 确实可以实现触摸屏的校准和测试, 能够进行画线测试。


相关文章:
AM335X开发日记
AM335X 平台开发日记 2014-11-24 至 2014-11-29 进行核心板原理图设计 2014-12-1 至 2014-12-10 进行 PCB 设计。 2014-12-5 开始学习 AM335X 软件部分...
AM335x学习记录
AM335x 学习笔记 1 硬件及其开发环境篇 1.1 开发环境的搭建 1.1.1 路由器方式的 NFS 启动 1) 通过路由器的方式来启动 NFS 文件系统 设置路由器局域网的...
am335x芯片笔记
am335x芯片笔记_计算机硬件及网络_IT/计算机_专业资料。am335x 芯片资料笔记。6 中断 6.1 功能描述中断控制器通过屏蔽和优先级排序处理输入中断,产生中断信号给关...
AM3359 EZSDK 开发环境安装教程
AM335X 开发环境,大概步骤如下: 首先 EZSDK 包下载地址如下: http://software-dl.ti.com/dsps/dsps_public_sw/am_bu/sdk/AM335xSDK/latest/index_FDS....
OK335xS-2开发板规格书
OK335xS-2开发板规格书_信息与通信_工程科技_专业资料。 OK335xS-Ⅱ开发板,采用德州仪器Cortex-A8架构AM335x系列处理器,采用全工业级设计,整板运行温度宽达-40...
21ic--基于AM335x的工业自动化应用
21ic--基于AM335x的工业自动化应用_信息与通信_工程科技_专业资料。基于 AM335x 的工业自动化应用 第1题:AM335x 在工业驱动器的运用中,可提供几路 PWM 供客...
AM335X MCASP与AIC3100调试心得
=1 开始运行 AM335X 没有此引脚 AMUTE:静音寄存器,如果检测到错误,是否驱动 AMUTE 引脚 XDMAERR:发送 DMA 错误,是否驱动 AMUTE 引脚 RDMAERR;接收 DMA 错误...
AM335x的linux内核移植
下载 Ti 提供的在 linux 地下进行开发的工具 ti-sdk-am335x-evm-07.00.00.00,然后安装即可得到。 我们到目录: ~/ti-sdk-am335x-evm-07.00.00.00/...
sitara试题及答案
C,D,E 第 2 题:可以通过下列哪种方式获取最新的正在开发的 U-boot 代码? ...E 所选答案:A,B,C,D,E 第 1 题:CCS 调试 AM335x 所需要的初始化文件...
am335x,GPIO学习
am335x,GPIO学习_计算机软件及应用_IT/计算机_专业资料。am335x,starterware,GPIO,demo学习[A8] am335x_starterware —GPIO demo 学习本例程实现功能比较简单,实...
更多相关标签:
am335x开发板 | am335x开发板资料下载 | am335x裸机开发 | am335x开发板 原理图 | 飞凌am335x开发板资料 | am335x开发板资料 | am335x开发环境搭建 | am335x开发环境 |