libbare-cpu 介绍
libbare-cpu 是Ingenic为其MCU提供的一个底层硬件库,旨在提供不依依赖于操作系统的裸机环境,其结构简单,直接面对硬件控制器寄存器编程,能够实现误操作系统的业务逻辑。同时libbare-cpu提供了基于 freertos/alios/rthtread的porting文件,方便适配到rtos系统,满足对操作系统有需求的用户。
配合Ingenic提供的JTAG调试器,支持使用VSCode 在线调试代码。
目前主要支持芯片
• X16XX
• X26XX
系统结构

源码目录结构
lib 目录说明
主要包含
• gcc libgcc 使用说明
• libc-minimal
• libc-newlib
开发环境搭建
工具链信息汇总
注意: 如果ftp无法访问,请使用百度网盘链接进行下载。
U-BOOT 下载
• git clone http://git1.ingenic.com.cn:8082/gerrit/bootloader/u-boot -b ingenic-master u-boot-ingenic-master
烧录工具下载
| 平台 | 官方下载链接 | 替代下载方案(百度网盘) |
|---|---|---|
| Linux | ftp://ftp.ingenic.com.cn/DevSupport/Tools/USBBurner/cloner-latest-ubuntu.tar.gz | |
| Windows | ftp://ftp.ingenic.com.cn/DevSupport/Tools/USBBurner/cloner-latest-windows.zip | |
| Linux & Windows | 链接 提取码: svwi |
参考文档
tools 目录下包含必要的开发工具:
开发环境设置
使用方法
使用示例参考projects/template
2.1 Linux 平台开发
2.1.1 基于Makefile编译
会在build目录生成template.elf, template.bin文件.
2.1.2 基于cmake构建
前提:确认cmake 版本 cmake-v3.23.1 ,可以使用最新的cmake版本。
会在build目录下生成template.elf,template.bin文件.
2.1.3 基于vscode 集成开发环境
前提:确认cmake 版本 cmake-v3.23.1 ,可以使用最新的cmake版本。 注意:不要使用工具链的cmake。否则vscode 会报错。
流程如下:
1. vscode 打开工程
2. 选择cmake kits:cmake-kits "GCC for ingenic cross compile on Linux"
3. lunch(F5) 运行编译、调试
4. 选择状态栏,build, 进行代码编译.
2.2 windows 平台开发
windows 开发需要安装相关的软件和系统环境变量配置,参考 Windows开发环境搭建手册
2.2.1 基于vscode集成开发环境
流程如下:
1. vscode 打开创建好的工程文件夹,例如 projects/template 文件夹
2. 选择cmake-kits "GCC for ingenic cross compile on Windows"
3. lunch(F5) 运行编译、调试
4. 或者选择状态栏,build,仅编译.
说明: vscode 可以支持在线调试,也可以仅编译后,使用烧录工具烧到开发板运行
2.2.2 基于命令行编译
前提: 系统必须安装msys - mingw64-make 工具.
3. 程序烧录
烧录配置
打开烧录工具,选择配置界面

3.1 选择烧录配置
以x16xx系列芯片x1600e,halley6开发板为例.

1. 选择芯片平台"x1600"
2. 根据开发板配置选择板级。
开发板板载nand flash,选择"x1600e_sfc_nand_lpddr2_linux.cfg"
开发板板载nor flash,选择"x1600e_sfc_nor_lpddr2_linux.cfg"
3.2 选择烧录镜像
运行裸机驱动程序需要烧录uboot和裸机程序

1. 选择uboot镜像, u-boot-with-spl.bin
注意:uboot镜像需要另外修改和编译,uboot需要将裸机程序引导在0x80600000地址进行启动,所以需要修改其boot command。
以halley6开发板为例,在Manhattan工程的u-boot目录,修改uboot板级配置文件( u-boot/include/configs/halley6.h )中boot command的定义, 根据板载flash类型进行区分: Nor flash:
Nand flash:
修改保存之后,回到u-boot/目录,进行编译,同样根据板载flash类型进行区分: Nor flash: 执行make halley6_uImage_sfc_nor -j Nand flash: 执行make halley6_uImage_sfc_nand -j
编译成功之后,就会在该目录下生成u-boot-with-spl.bin镜像。
2. 选择之前编译完成的裸机驱动程序(二进制*.bin文件,这里以template.bin为例)
到这里烧录配置完成,点击“保存”按钮,保存配置, 回到初始界面后,点击“开始”按钮,开始烧录.
3.3 spl 启动 raw driver
注:目前此启动模式暂时只针对x1600 nor flash panda 板。 该章节中采用的是 spl 启动 raw driver ,3.2 部分采用的是 u-boot 启动。
3.3.1 uboot 编译 spl
打开 ubooot 程序在u-boot 目录下进行执行
在 u-boot/spl 目录下生成 u-boot-spl-pad.bin ,烧录工具选择该文件位置以及选择之前编译完成的裸机驱动程序(二进制*.bin文件,这里以 template.bin 为例),此时 spl 所占大小为 256K
烧录具体选择如下


3.3.2 减少 spl 所占空间修改
注:与 3.3.1 选择一个即可
第一步:打开 uboot 源码目录输入,对应图片进行修改如下可作为参考最小 32k 大小
vim include/configs/panda.h

编译执行
此时烧录文件为 uboot /spl目录下 u-boot-spl-pad.bin 与编译出的template.bin文件
烧录工具也需要进行对应的修改,按照以下图片进行修改。

需要对 uboot 部分和 kernel部分都修改为与图片一致的数据

3.4 详细参考资料
libbare 是裸机SDK, 对应Linux 的SDK 资料更加全面,其中部分开发流程可以参考Linux的开发资料。
• 烧录工具的详细使用
• uboot 开发和配置
| 芯片平台 | 资料名称 | 链接 |
|---|---|---|
| X16XX | 文档仓库 | X16XX开发手册 |
| X26XX | 文档仓库 | X2600开发手册 |
4. 创建工程
4.1 基于已有工程
可以在project目录下,找到一个合适的工程,复制到新的文件夹,进行以下修改
1. SDK_PATH 修改
2. 修改CMakelists.txt 工程名称 例如:
3. 添加源文件 根据工程实际情况,添加需要编译的源文件
4. 添加头文件路径 根据实际情况,添加需要包含的路径
5. 添加库路径
6. 添加链接的库选项 确保要链接的库在link_directories中定义
在线调试
5 JDI调试
5.1.准备调试环境
5.2. 调试说明

按下键盘的F5或者Run菜单下的Start Debugging开始调试。等待代码编译并加载完成会出现如图所示界面。图中标注的序号代表不同的工作区域。各个区域含义如下。
注意
6 开发板调试
使用配套的panda开发板通过添加打印的方式进行调试。
