工程目录说明
├── bootloader /*各个平台的引导代码*/
│ ├── uboot-x1000
│ ├── uboot-x1021
│ └── uboot-x2000
├── build /*⼯程编译脚本*/
├── buildroot /*⽂件系统*/
├── demos /*人脸识别demo,库,示例代码*/
├── doc /*说明⽂档,包含驱动,应用,工具文档等*/
├── factory_test /*出厂外设测试应用源码*/
├── kernel
│ ├── kernel /*linux 5.1内核代码,支持各个平台*/
│ ├── kernel-x1000 /*linux 4.4内核x1000平台代码*/
│ ├── kernel-x1021 /*linux 4.4内核x1021平台代码*/
│ └── kernel-x2000 /*linux 4.4内核x2000平台代码*/
├── libhardware2 /*驱动对应的应⽤接⼝代码*/
├── libisp /*x2000 isp 相关示例代码*/
├── libmcu /*小核相关示例代码*/
├── libmedia /*多媒体相关示例代码*/
├── libutils2 /*应⽤⼩⼯具*/
├── module_driver /*模块驱动代码*/
├── ota_updater /*ota升级*/
├── third_party /*第三方应用相关的库*/
├── tools
│ ├── iconfigtool /*配置⼯具*/
│ └── toolchains /*交叉编译⼯具*/
└── wireless /*⽆线⽹卡驱动*/
君正Linux平台,其kernel是基于模块化驱动实现的。其整个源码的目录结构大体包含boot引导系统,kernel驱动的加载,rootfs文件系统和data分区用户可定制文件系统。
现在对一些重点目录进行介绍。
1.1 bootloader 目录
bootloader为系统的boot引导系统。其目录包含 uboot-x1000, uboot-x1021, uboot-x2000。
uboot-x1000 适用于芯片: X1000 X1500
uboot-2000 适用于芯片: X1600 X1600E X1600hn X2000
uboot-x1021 适用于芯片: X1021
1.2 build 目录
build目录下是存放工程编译的脚本。其存放路径为:
build/configs 存放编译主配置文件
build/configs/buildroot 存放编译buildroot 的配置文件
1.3 buildroot 目录介绍
buildroot 是文件系统目录,包含第三方开源的库和应用。打包 rootfs文件系统也是在这个目录下进行的。
1.4 kernel 目录
kernel 下包含以下几个目录:
kernel linux 5.1 内核代码,支持各个芯片平台,比如: x1000,x1520,x2000,x1600e等
kernel-x1000 linux 4.4 内核代码,支持x1000,x1830,x1500,x1630,x1520芯片平台
kernel-x1021 linux 4.4内核代码,支持x1021芯片平台
kernel-x2000 linux 4.4内核代码,支持x2000,x2100,x1600hn,x1600e,x1660,x2580 芯片平台
1.5 libhardware2 目录
libhardware2目录下包含驱动对应的应⽤接⼝代码,其中包含很多相应的驱动控制命令,比如:
`cmd_adc cmd_keyboard_test`
`cmd_aes cmd_mcu`
`cmd_alsa cmd_mscaler`
`cmd_camera cmd_nemc`
`cmd_camera_h264_encode cmd_ps2`
`cmd_camera_jpeg_encode cmd_pwm`
`cmd_camera_nv12_preview cmd_pwm_audio`
`cmd_camera_software_preview cmd_pwm_battery`
`cmd_dtrng cmd_rector_play`
`cmd_efuse cmd_rotator`
`cmd_fb cmd_rtc`
`cmd_fb_scale cmd_sc`
`cmd_gpio cmd_spi`
`cmd_gpio_counter cmd_sslv`
`cmd_hash cmd_uevent`
`cmd_i2c cmd_usb_device_state`
`cmd_inputdev_listen cmd_v4l2_camera`
`cmd_isp cmd_watchdog`
`cmd_keyboard cmd_wifi`
详细libhardware2介绍 ,libhardware2 api 详细说明
1.6 libisp 目录
该目录下集成君正X2000多媒体功能(ISP Video等)以及示例代码,详细介绍见:
1.7 module_driver 目录
module_driver 是我们模块化驱动的源码的目录,君正linux 的kernel 是采用 module_driver 模块化的形式,客户需要自己添加模块化驱动,可以在该目录下进行添加和开发。
1.8 ota_updater 目录
ota_updater目录下是存放我们ota相关的源码和升级脚本。需要实现ota的功能,可以参考该目录下的 ota 代码。
1.9 iconfigtool工具
IConfigTool 是基于 Qt 的 Gui 界面
IConfigTool 不包含 uboot、kernel、buildroot 的相关配置,kernel、bulidroot 的相关配置可通过 menuconfig 配置
IConfigTool 主要用于模块化驱动,无线设备的配置,如
- 配置mac、gpio、i2c、camera等驱动
- 添加lcd、camera、bt、wifi、按键、背光等设备
IConfigTool 还可配置一些常用工具及应用,如
- (出厂)外设测试脚本
- ota 升级(包括本地升级和网络升级)
- 人脸应用
- isp_camera 应用
- 片上外设的接口/命令(可通过 shell 脚本命令直接对外设进行操作)
- (根文件系统) rootfs 相关设置,包括 USB/sd_card 的自动挂载,userdata 分区的挂载,adb 服务的开启关闭等
具体IConfigTool说明,请详见: IConfigTool 使用文档