Tiny4412

来自百问网嵌入式Linux wiki

构建工具

  • 嵌入式Linux构建工具

Buildroot

 项目地址: https://github.com/zczjx/buildroot-es_udk
 提交权限申请: 火哥(QQ: 287334895)

已经支持的构建配置:

     tiny4412_linux_k4_4_defconfig --> tiny4412 linux-4.4.38嵌入式版
     raspberrypi3b_aarch32_eabihf_defconfig --> 树莓派3B 嵌入式Linux QT发行版
 Buildroot相关教程: https://blog.csdn.net/zhou_chenz/article/category/6019071

Yocto

  • Android构建工具
  • Ubuntu / Debian构建工具

发行版系统

  • ubuntu
  • debian

应用测试用例

   我们辛辛苦苦写好的驱动不就是为了让应用拿来用的吗? -- 韦东山老师
  • BSP应用测试用例(除glib2之外或者OMX,OpenGL等不开源库,尽量不依赖第三方库)
   用途: 最底层的应用,用于测试验证写好的驱动是否正常工作
   项目地址: https://github.com/zczjx/arm-linux-bsp-tests
   提交权限申请: 火哥(QQ: 287334895)
  • Linux第三方库测试用例
  用途: 调用tslib, libv4l, ffmpeg等第三方库,测试验证更加高级的驱动功能
  项目地址: https://github.com/zczjx/linux-3rd-lib-tests
  提交权限申请: 火哥(QQ: 287334895)
   

uboot项目

火哥官方修改版

 地址: https://github.com/zczjx/uboot_tiny4412
 配置文件 tiny4412_config
 提交权限申请: 火哥(QQ: 287334895)
 特点: 
 * 基于友善官方uboot-2010.12修改,版本比较旧
 * 支持Linux-3.x zImage 和 Linux4.x uImage + dtb 双内核可选择启动,
 以便大家移植新内核驱动可以切换内核进行对比
 * 支持双文件系统切换启动,以便大家对比自己制作的文件系统和官方文件系统功能差异
 
 Tiny4412刷机参考链接:
 https://github.com/zczjx/linux-4.4.38-for-tiny4412/blob/master/README.md

uboot_2018_07

 地址: https://github.com/TinyWindzz/tiny4412_uboot_2018_07
 提交权限申请: 2304083234

Tiny4412板子与芯片相关的启动脚本与固件

  地址: https://github.com/zczjx/tiny4412-userland
  提交权限申请: 火哥(QQ: 287334895)

说明:

  里面包含tiny4412的一些开机必备的启动脚本,以及一些官方提供的驱动需要加载的固件,比如isp的固件,mfc的固件

Linux内核与驱动

linux-4.4.38


 提交权限申请: 火哥(QQ: 287334895) 
 源码地址: https://github.com/zczjx/linux-4.4.38-for-tiny4412
 设备树dts:  exynos4412-tiny4412.dts
 默认config: tiny4412_linux_4_4_defconfig

编译参考

 下载并设置 arm-linux-gcc version 4.9.4 
 cp tiny4412_linux_4_4_defconfig .config
 make LOADADDR=0x40008000 uImage
 make dtbs  

已经移植好的核心驱动:

 * RGB显示屏fimd驱动 s3c-fb.c (无DRM功能)
 * FIMC capture DVP摄像头采集驱动 exynos4-is/fimc-capture.c
 * FIMC m2m pixel coversion 像素格式硬件转换
 * ov5640自动聚焦摄像头sensor, ov5640.c
 * s5p-jpeg jpeg 硬件编解码驱动(encode连续编码开源驱动有bug, 应用代码做了workaround)
 * s5p-mfc codecs h264等相关视频格式硬件编解码驱动

已经移植好的非核心驱动:

 * spidev通用SPI驱动
 * i2cdev 通用I2C驱动
 * leds 点灯驱动
 * tiny4412_ts_backlight tiny4412_1wire 屏幕背光与亮度驱动(单总线协议接口)
 * hc-sr04 超声测距驱动
 * pwm-buzzer pwm蜂鸣器驱动
 * at24c08 eeprom驱动
 * ft5406 触屏驱动(i2c接口读写)
 * mma7660 g-sensor重力传感器驱动
 * nfc-mfrc522 rc522 NFC卡读卡器驱动
 * mshc_0 emmc/sd卡驱动
 * tmu 温度计thermal驱动
 * adc 模数转换驱动(使用hwmon框架)
 * watchdog驱动
 * rtc 驱动
 * usb4604 以太网卡复位驱动

linux-4.9

  地址:
  提交权限申请: 
 
  设备树dts: 
  默认config: 
  已经移植好的核心驱动:
  已经移植好的非核心驱动:

linux-4.14

  地址:
  提交权限申请: 
 
  设备树dts: 
  默认config: 
  已经移植好的核心驱动:
  已经移植好的非核心驱动:

linux-4.19

  地址:
  提交权限申请: 
 
  设备树dts: 
  默认config: 
  已经移植好的核心驱动:
  已经移植好的非核心驱动:

linux-4.20

  地址:https://github.com/TinyWindzz/linux-4.20
  提交权限申请: 2304083234
 
  设备树dts: exynos4412-tiny4412.dts
  默认config: 
  已经移植好的核心驱动:
  已经移植好的非核心驱动:

repo管理(暂时无人维护,不建议使用repo方法)

  • 考虑uboot/kernel等代码仓库较多,不方便进行配置切换,故而使用repo进行管理。
  • 首先根据您的办公网络情况,获取repo工具。在构建和谐社会的大前提下,需要修改REPO_URL,可参考以下修改
## REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'
REPO_URL = https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/
  • 也可以直接使用修改好的repo命令,使用方法如下
100ask@book$ git clone  https://git.dev.tencent.com/codebug8/repo.git
100ask@book$ sudo cp repo/repo /bin/

国内coding仓库

  • 使用国内coding仓库,下载同步源码网速带宽可以跑满,省去了部分等待时间
book@100ask$  mkdir -p tiny4412_source && cd tiny4412_source
book@100ask$  repo init -u https://dev.tencent.com/u/weidongshan/p/manifests/git -b linux-sdk -m samsung/tiny4412/tiny4412_linux_release.xml --no-repo-verify
book@100ask$  repo sync -j4

国外git hub仓库

  xml地址: https://github.com/tinylaker/manifest
  拉取代码仓库
  $ mkdir -p tiny4412
  $ cd tiny4412
  $ repo init -u https://github.com/tinylaker/manifest -m default.xml --no-repo-verify
  $ repo sync -j4
  查看源码目录
  $ ls 
  buildroot  firmware  kernel  test  uboot
  $ ls kernel/
  linux-4.20  linux-4.4.38
  $ ls test/
  bsp  lib
  $ ls uboot/
  uboot-2010.12  uboot-2018.07

系统烧写方式

刷机参考指南 https://github.com/zczjx/linux-4.4.38-for-tiny4412/blob/master/README.md

SD卡启动

eMMC启动

交流群

QQ群: 149827797