T113平台Tina+FreeRTOS系统简介-盈鹏飞嵌入式

以下开发说明的内容,已经在盈鹏飞嵌入式相关T113平台上进行了验证,以下是盈鹏飞嵌入式最新的产品动态。
盈鹏飞嵌入式致力于打造全系列T113的平台应用,加速用户产品上市速度!记得还是这个“味”!!

1、RTOS系统概述

1.1、概述

Tina Linux SDK中包含了RTOS系统,该系统是基于FreeRTOS内核的软件开发包,包含了系统开发用到的内核源码、驱动、工具、组件与应用程序包。通过Makefile脚本和Kconfig配置文件,使得用户可以通过menuconfig进行个性化裁减,编译出一个可以直接烧写到机器上运行的RTOS系统软件。

1.2、系统框图

RTOS 系统框图如图所示,仅从软件的角度来看,从下至上分为内核层、组件层、应用层三个层次。各层次主要内容如下:

Kernel:内核层包括 FreeRTOS核心系统、文件系统、网络系统、BSP驱动等。

Component:组件层包括控制台、多媒体、功耗管理、OTA、音频系统、显示系统、图像采集等。

APP:应用层包括各种应用 demo。

2、RTOS SDK目录结构

rtos
├──board	#包含各SoC板级配置目录
│└──mr527_e906	#mr527_e906板级配置目录
│└──t113_s3p_c906	#t113_s3p_c906板级配置目录
│└──t113_s4_c906	#t113_s4_c906板级配置目录
│└──t113_s4p_c906	#t113_s4p_c906板级配置目录
│└──XXX	#XXX平台板级配置目录
├──envsetup.sh	#SDK环境初始化脚本
├──lichee
│├──dsp	#DSP FreeRTOS系统
│├──rtos	#C906/E906FreeRTOS系统
│├──rtos components#FreeRTOS公共组件
│└──rtos hal	#BSP驱动
└──tools	#打包相关工具脚本目录

所使用RTOS SDK目录结构如上所示,主要包括如下几个关键目录:

board:板级配置目录,用于存放芯片方案的配置文件,主要包括系统配置文件sys_config.fex等。

lichee/dsp:存放DSPFreeRTOS系统、组件、应用。

lichee/rtos:存放E906FreeRTOS系统、组件、应用。

lichee/rtos‑components:公共组件目录,lichee/dsp与lichee/rtos都可以使用该组件。

lichee/rtos‑hal:BSP驱动目录,用于存放各种驱动代码。对lichee/dsp与lichee/rtos通用。

tools:工具目录,用于存放编译打包相关的脚本、工具等。

下面对lichee/rtos、lichee/rtos‑hal目录进行详细说明。lichee/dsp目录与lichee/rtos目录类似,此处不做介绍。

2.1、lichee/rtos目录

├──arch	#处理器架构相关
├──build	#编译临时文件输出目录
├──components	#组件
├──drivers#驱动
├──include#头文件
├──kernel#FreeRTOS内核#方案工程
├──projects
├──scripts
└──tools#工具链

lichee/rtos目录主要包括arch(架构相关)、components(组件)、drivers(驱动)、include(头文件)、kernel(内核)、projects(工程)、toos(工具链)等目录,下面对常用重要目录分别进行介绍。

2.1.1、arch目录 

 arch目录主要放置跟SoC架构相关的内容,每个SoC单独目录管理,主要包括跟risc‑v架构相关的ARCH初始化、中断处理、异常处理、内存映射相关功能的实现。

lichee/rtos/arch/
├──common
└──risc v
├──arch.mk
├──c906
├──common
├──e906
├──includes
├──Kconfig
├──Makefile
├──sun55iw3p1
└──sun8iw20p1

2.1.2、components目录 

components 目录包含 allwinner 和第三方的组件。

lichee/rtos/components/
├──aw
│├──blkpart
│├──bluetooth
│├──csi
│├──devfs
│├──healthd
│├──......
│├──watchpoint
│└──wireless_video
├──common >../../rtos components
└──thirdparty
├──common
├──console
├──cplusplus
├──elmfat
├──finsh_cli
├──......
└──vfs

2.1.3、drivers目录 

drivers目录包含所需的外设驱动,主要包括各外设控制器驱动的具体实现(hal软连接)以及OSAL层接口(osal)。

lichee/rtos/drivers/
├──drv
├─ CPUfreq	#POSIX头文件
├──leds
├── uart
├──.....
├── wireless
├─hal ->.../../rtos-hal/
└──osal

2.1.4、include 目录 

include 目录统一管理各模块提供的数据结构定义及函数声明。

lichee/rtos/include/ 
├── arch 
# 架构相关头文件 
├── FreeRTOS_POSIX # POSIX头文件 
├── ...... 
└── vsprintf.h

2.1.5、kernel目录 

kernel目录主要包含FreeRTOS的kernel源码,全志实现的系统功能相关代码。

lichee/rtos/kernel/
├──FreeRTOS orig
│└──Source
└──Posix

2.1.6 projects 目录 

projects目录下的每一个子目录代表一个project,实现main入口,选择不同的project编译出来的bin具有不同功能,每个project有独立的FreeRTOSConfig配置。例如t113-s4,其对应于t113_s4_c906子目录,这个子目录下面根据应用的不同建立不同的应用配置,如下有evb1_auto应用和evb1_auto_fastboot_video应用。

rtos/lichee/rtos/projects/t113_s4_c906/
├── evb1_auto
│   ├── defconfig
│   ├── defconfig_org
│   ├── freertos.lds.S
│   ├── Kconfig
│   ├── Makefile
│   └── src
│       ├── alsa_config.c
│       ├── assert.c
│       ├── card_default.c
│       ├── FreeRTOSConfig.h
│       ├── hooks.c
│       └── main.c
├── evb1_auto_fastboot_video
│   ├── defconfig
│   ├── freertos.lds.S
│   ├── Kconfig
│   ├── Makefile
│   └── src
│       ├── alsa_config.c
│       ├── assert.c
│       ├── card_default.c
│       ├── FreeRTOSConfig.h
│       ├── hooks.c
│       └── main.c
└── Makefile

2.1.7、tools目录 

这个目录主要包含一些预编译好的交叉编译工具链。

xxx@xxx:lichee/rtos/tools$ ls -al
total 663248
drwxrwxr-x  3 ping ping      4096 Oct 21 14:28 .
drwxrwxr-x 13 ping ping      4096 Oct 21 16:02 ..
-rw-rw-r--  1 ping ping 103333888 Jan  8  2024 gcc-arm-melis-eabi-8-2019-q3-update-linux.tar.bz2
-rw-rw-r--  1 ping ping 106566166 Jan  8  2024 gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2
-rwxrwxr-x  1 ping ping 137020992 Jan  8  2024 gcc-arm-none-eabi-8-2019-q3-update-win32.zip
drwxr-xr-x  9 ping ping      4096 Oct 21 14:29 riscv64-elf-x86_64-20201104
-rwxrwxr-x  1 ping ping 164604965 Jan  8  2024 riscv64-elf-x86_64-20201104.tar.gz
-rwxrwxr-x  1 ping ping 167614189 Jan  8  2024 Xuantie-900-gcc-elf-newlib-mingw-V2.6.1-20220906.tar.gz
xxx@xxx:lichee/rtos/tools$

目前risc‑v基于GCC8.4.0的交叉编译器。

xxx@xxx:lichee/rtos/tools$./riscv64-elf-x86_64-20201104/bin/riscv64-unknown-elf-gcc -v
Using built-in specs.
COLLECT_GCC=./riscv64-elf-x86_64-20201104/bin/riscv64-unknown-elf-gcc
COLLECT_LTO_WRAPPER=/home/ping/workspace/t113_tina5.0/t113_tinasdk5.0-v1/rtos/lichee/rtos/tools/riscv64-elf-x86_64-20201104/bin/../libexec/gcc/riscv64-unknown-elf/8.4.0/lto-wrapper
Target: riscv64-unknown-elf
Configured with: /ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/build/../source/riscv/riscv-gcc/configure --target=riscv64-unknown-elf --with-mpc=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/lib-for-gcc-x86_64-linux/ --with-mpfr=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/lib-for-gcc-x86_64-linux/ --with-gmp=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/lib-for-gcc-x86_64-linux/ --prefix=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/install --disable-shared --disable-threads --enable-languages=c,c++ --with-system-zlib --enable-tls --enable-libgcctf --with-newlib --with-sysroot=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/install/riscv64-unknown-elf --with-native-system-header-dir=/include --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libgomp --disable-nls --src=../../source/riscv/riscv-gcc --with-pkgversion='T-HEAD RISCV Tools V1.10.2 B20201104' --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-Os  -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-Os  -mcmodel=medany' CC=gcc CXX=g++
Thread model: single
gcc version 8.4.0 (T-HEAD RISCV Tools V1.10.2 B20201104)

2.2、lichee/rtos‑hal目录 

lichee/rtos‑hal目录为BSP驱动目录,用于存放各种驱动代码。lichee/rtos/drivers目录下的rtos‑hal子目录软链接到该目录,下面对该目录进行介绍。

lichee/rtos hal
├──hal	#BSP驱动代码
├──include	#驱动相关头文件
└──tools

lichee/rtos‑hal目录主要包括hal(BSP驱动代码)、include(驱动相关头文件)等目录,下面分别对其进行介绍。

2.2.1、hal目录

hal目录主要包含各外设驱动代码以及驱动测试代码,source子目录为驱动代码,test子目录为驱动测试代码

lichee/rtos hal/hal
├──Makefile
├──source
│├──ccmu
│├──gpio
│├──......
│├──uart
│└──watchdog
└──test
├──ccmu
├──gpio
├──......
├──uart
└──watchdog

2.2.2、include目录 

include目录主要包含驱动相关头文件以及系统相关接口头文件。

lichee/rtos hal/include
├──hal
│├──aw alsa lib
│├──aw_common.h
│├──......
│├──sunxi_hal_usb.h
│├──sunxi_hal_watchdog.h
│└──video
└──osal
├──hal_atomic.h
├──hal_cache.h
├──......
├──hal_waitqueue.h
└──hal_workqueue.h

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值