http://blog.csdn.net/u013686019/article/details/78934023
一、环境准备
1、开发板简介
一款名为PARROT的板子,长相如下:
LCD的基本参数:1280*800,LVDS接口,具体参数参见:
tina/target/allwinner/astar-parrot/configs/sys_config.fex
2、Tina SDK V2.1代码下载
$ curl https://raw.githubusercontent.com/tinalinux/repo/stable/repo > ~/bin/repo
$ chmod +x ~/bin/repo
$ export PATH=$PATH:~/bin/
$ mkdir tina && cd tina
$ repo init -u https://github.com/tinalinux/manifest -b r16-v2.1.y -m r16/v2.1.y.xml
$ repo sync
3、编译环境
主机:
$ uname -ra
Linux 4.10.0-42-generic #46~16.04.1-Ubuntu SMP Mon Dec 4 15:57:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
make版本:
$ make -v
GNU Make 4.1
make downgrading:
make_3.81-8.2_amd64.deb
gcc版本:
$ gcc -v
gcc version 4.8.5
注:gcc版本太高出现“error: environment variable SOURCE_DATE_EPOCH must expand to a non-negative integer less than or equal to 253402300799”的错误
4、编译
准备环境变量:
$ . build/envsetup.sh
$ lunch astar_parrot-tina
生成kernel的config文件(否则编译出错):
$ make kernel_menuconfig
直接"Exit"即可,在./lichee/linux-3.4/目录下生成.config文件
编译、打包:
$ make -jN
$ pack -d
$ ./build.sh -p sun8iw5p1
编译uboot过程中提示缺少libcrypto.a\libssl.a,解决方式:
$ cd lichee/brandy/extern-libs/
$ tar -jxvf openssl-secure-system.tar.bz2
$ cd openssl-1.0.1g-for-secure-system/openssl-1.0.1g
$ vi Makefile
修改Makefile中目标“build_libs”下的路径信息至正确的路径下,如SDK编译环境下的“~/tina/lichee/brandy/gcc-linaro/lib/gcc/arm-linux-gnueabi/4.6.3/”目录:
之后编译该库文件:
$make build_libs –j8
编译成功后,重新编译u-boot可以通过,并生成u-boot-sun8iw5p1.bin文件。
二、LCD测试
系统启动过程中uboot logo:
系统启动完成进入Linux系统,通过操作Framebuffer读写LCD数据。
Tina自带Framebuffer测试代码位于:package/utils/fbtest/
以下测试代码参考自“基于嵌入式Linux的LCD液晶点阵显示的基本实现”,未做优化。
1、测试demo主函数
#include <stdio.h>
#include <stdli