页次: 1
整个流程主要参考了晕哥的帖子,非常棒的帖子,少走很多弯路,同时感谢群里大佬们的指点,很顺利就编译完成了。但是对于初次尝试编译系统的人来说,还是有些蒙的,记录一下,希望对你有帮助。
荔枝派Zero V3s开发板入坑记录 (TF/SD卡启动)(主线Linux,主线u-boot)
系统安装后的软件安装
1. sudo apt-get install gcc-arm-linux-gnueabihf 安装arm linux 硬件浮点数工具链, 因为V3s支持VFPv4 浮点单元
2. sudo apt-get install git 安装git
3. Sudo apt-get install make
4. Sudo apt-get install gcc
5. sudo apt-get install libncurses5-dev
6. sudo apt-get install device-tree-compiler
7. sudo apt-get install python
8. sudo apt-get install flex
9. sudo apt-get install bison
10. sudo apt-get install libssl-dev
11. sudo apt-get install vim
12. sudo apt-get install g++
13. sudo apt install gparted 分区工具,创建SD卡系统时用
14. u-boot
首先获取u-boot源码:
git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current
如果你需要支持spi flash:
git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-spi-experimental
15. 修改 include/configs/sun8i.h, 使u-boot可以直接从tf卡启动:
#define CONFIG_BOOTCOMMAND "setenv bootm_boot_mode sec; " \
"load mmc 0:1 0x41000000 zImage; " \
"load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; " \
"bootz 0x41000000 - 0x41800000;"
#define CONFIG_BOOTARGS "console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0"
有必要单独说说gcc的安装,卡了一阵子
16. 安装gcc
env sudo -E bash 改成root用户
vim /etc/bash.bashrc 修改配置文件,并按i进入编辑
添加这一句 PATH="$PATH:/home/yyl/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin"
然后按esc 输入:wq!回车强制保存并退出
source /etc/bash.bashrc 使配置文件生效
arm-linux-gnueabihf-gcc -v 查看是否安装成功
17. 编译Uboot
cd u-boot
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_800x480LCD_defconfig (群主网店5寸屏)
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_480x272LCD_defconfig (通用4.3寸屏)
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_defconfig (默认)
ARCH=arm make menuconfig
执行编译:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make
多核编译,避免cpu其他内核打酱油, J后的参数是参与编译的cpu个数:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j3
u-boot-sunxi-with-spl.bin
18. 编译设备树
此部分在u-boot目录执行
生成荔枝派Zero 默认配置文件: CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make licheepi_zero_defconfig
设备树文件(默认不需要修改):
arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
编译内核:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
编译设备树:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
19. kernel的编译
20. 获取Linux源码(zero-5.2.y分支对网卡支持比较好): git clone https://github.com/Lichee-Pi/linux.git -b zero-5.2.y
CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make licheepi_zero_defconfig
21. 进入buildroot目录, #make menuconfig进入配置修改
这里我跟晕哥的配置是不一样的是使用外部编译器,添加目录为gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf实际目录,这样做的原因是gcc下载很慢,我选择了手工下载,然后单独安装
22. make
编译完成后,在output/images/文件夹下的rootfs.tar就是根文件系统
烧录部分就看晕哥的帖子吧
原理图供电部分有自己瞎编的,有抄袭各位大佬的,有白嫖荔枝派的。3种都放上去了。
该图主要是基于林小姐和小小草二位大佬的原理图,白嫖荔枝派,希望能帮到和我一样的初学者
感谢@晕哥 @林小姐 @迪卡 @小小草 @群内各位大佬的指点
特别提醒,该板子尚未验证!
AD工程
F1C100S-MY.rar
原理图
F1C100S-MY.pdf
其实vs的仿真用起来很舒服,比eclipse好用,而且简单。但是他有一个bug,就是汉字只能显示双数。
显示汉字是很多人遇到的一个问题。我刚开始也在这里耗费了很多时间。后来群里也问过多次,LV作者也交流过多次,我来讲讲这里的几个要点吧,新手少走弯路。
1.克隆官方github的vs仿真工程
2.根据提示转换为自己安装的版本
3.检查lv_conf.h是否开启UTF-8
#define LV_TXT_ENC LV_TXT_ENC_UTF8
4.vs开启高级保存选项,把自己转换的c文件放进去,确保文件编码是UTF-8 no BOM,这很重要,出错的基本都是这个问题。注意main文件有可能也不是utf-8编码。
附上最新6.1.2的vs仿真打包
lv_sim_visual_studio_sdl-v6_1_2.rar
感谢晕哥及群里一众大佬日常热心解答!
之前一段时间改用vs了,但是vs2019显示汉字是有毛病的,可能很多人也卡在这,不断有人问。偶然发现换eclipse 仿真就是好的。今天就发出来具体步骤,让大家少采坑。
1.安装Eclipse IDE for c++
2.安装MinGW,参考这个帖子:https://www.cnblogs.com/lidabo/p/8990348.html
安装挺慢,可以考虑下打包好的。
3.添加环境变量MinGW=D:\MinGW,path中添加%MinGW%\bin
4.下载SDL2并释放到对应目录i686-w64-mingw32中
5.cmd命令行中输入Gcc -v,看到版本号表示安装成功
6.解压littlevgl官方下载的eclipse仿真压缩包
在调试目录新建Debug文件夹,并拷贝这两个文件到调试目录
7.File->Import and choose General->Existing project into Workspace.
这里导入后,需要对工程的properties做一些修改,否则会出现错误
右键编译即可在Debug目录找到pc_simulator.exe
也可点击上面的绿色图标Run。
8.添加目录,将在线生成的字体文件放入自己的目录
9.main里面添加如下语句
static lv_style_t style1;
lv_style_copy(&style1, &lv_style_pretty); /*Copy a built-in style to initialize the new style*/
style1.body.main_color = LV_COLOR_WHITE;
style1.body.grad_color = LV_COLOR_GREEN;
style1.text.color = LV_COLOR_RED;
style1.text.font = &my_font_CH; /*Unicode and symbol fonts already assigned by the library*/
/*Create a simple object*/
lv_obj_t* obj1 = lv_obj_create(lv_scr_act(), NULL);
lv_obj_set_style(obj1, &style1); /*Apply the created style*/
lv_obj_set_pos(obj1, 20, 20); /*Set the position*/
/*Create a label on the object. The label's style is NULL by default*/
lv_obj_t* label = lv_label_create(obj1, NULL); /*第一个参数(scr)是父 */
lv_label_set_text(label, "测试abcABC");
END
页次: 1