全志XR806 FreeRTOS快速开发入门

news2024/11/16 23:52:43

RTOS 快速开发入门

XR806 是一颗高集成度无线应用MCU,其集成了ARMv8-M 内核、IEEE 802.11b/g/n Wi-Fi 子系统、BLE 5.0子系统、电源管理系统、高级别的安全系统以及丰富的外设接口,具有优秀的射频性能、稳定性、可靠性和超低功耗。

芯之联软件开发平台,具有丰富的组件和灵活的应用框架,可满足用户对Wi-Fi、BLE、低功耗、安全等多方面的需求,可协助用户快速开发智能产品应用,包括物联网(IoT)、智能家居、云连接等。

SDK 说明

框架简述

在这里插入图片描述

目录结构

目录结构如下,其中out 目录在编译时产生。

.
├── bin # bin 文件目录,存放预置bin 文件
├── chip.mk
├── config.mk
├── gcc.mk
├── Kconfig
├── Makefile
├── include # 头文件目录,存放模块对外头文件
├── lib # 库文件目录,存放预置库文件和编译生成的库文件
│ ├── libaac.a
│ ├── libadt.a
│ └── ......
├── out # 编译生成文件存放目录,存放编译生成的bin 和image
├── project # 工程总目录
│ ├── bootloader # bootloader 工程
│ ├── common # 工程公用代码
│ ├── demo # 演示工程总目录,该目录下每个目录对应一个工程
│ │ ├── hello_demo
│ │ ├── wlan_demo
│ │ └── ......
│ ├── example # 示例工程总目录,该目录下每个目录对应一个工程
│ │ ├── uart
│ │ ├── wlan
│ │ └── ......
│ ├── image_cfg
│ │ └── image.cfg # 默认镜像配置文件
│ ├── linker_script
│ │ └── gcc
│ │ ├── appos.ld # 工程默认链接脚本
│ │ └── bootloader.ld # bootloader 链接脚本
│ ├── project.mk
│ ├── Kconfig
│ └── ......
├── src
│ ├── driver
│ │ ├── chip # 芯片外设驱动
│ │ └── component # 扩展外设驱动
│ ├── image # image 模块
│ ├── kernel # 内核
│ ├── ota # OTA 模块
│ └── ......
├── ......
└── tools # 镜像打包及烧录等工具

构建系统和配置文件

XRADIO SDK 的代码编译和镜像创建采用Kconfig 和Makefile 进行管理,Kconfig 和关键Makefile 和配置文件的说明见表。除特殊说明外,下文所有路径描述均为相对于SDK 根目录的相对路径。

在这里插入图片描述

一般情况下,用户只需要修改以下文件来实现工程配置定义:

  • project/[prj]/gcc/Makefile(用于指定工程源文件、库、链接脚本、镜像配置文件等)
  • project/[prj]/gcc/defconfig(可用于覆盖顶层.config 中的默认配置)
  • project/[prj]/prj_config.h(覆盖“project/common/prj_conf_opt.h”中的默认配置)

代码编译和镜像创建

代码编译前需要在“gcc.mk”中设置正确的GCC 交叉编译工具链路径,例如:

CC_DIR = ~/tools/gcc-arm-none-eabi-8-2019-q3-update/bin

所有代码编译和镜像创建命令均需在Linux 终端执行,在顶层目录编译。

  1. 先copy 一份配置作为默认配置。例如:
cp project/demo/hello_demo/gcc/defconfig .config
make PRJ=demo/hello_demo defconfig

在这里插入图片描述

应用示例

对“hello_demo”工程进行代码编译和镜像创建的常规过程,举例如下:

# 复制默认配置文件到顶层目录(不切换工程可不要此步骤)
$ cp project/demo/hello_demo/gcc/defconfig .config 或make PRJ=demo/hello_demo defconfig
# 检查SDK 基础配置,如工程名、芯片型号、高频晶振、板级配置是否正确
$ make menuconfig
# 清理,切换工程时需要
$ make build_clean
# 编译代码并生成镜像文件,生成的镜像文件为“out/xr_system.img”
$ make build(建议使用make build -j 加速编译)

编译bootloader 的过程如下:

# 复制默认配置文件到顶层目录
$ cp project/bootloader/gcc/defconfig .config 或make PRJ=bootloader defconfig
# 检查SDK 基础配置,如工程名、芯片型号、高频晶振、板级配置是否正确
$ make menuconfig
# 清理,切换工程时需要
$ make build_clean
# 编译代码并生成镜像文件,默认晶振是40M,生成的镜像文件为
#“bin/xradio_v3/boot/xr806/boot_40M.bin”
$ make build(建议使用make build -j 加速编译)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IIS发布PHP网站字体404解决办法

最近在使用 IIS 发布 PHP 网站时,我遇到了一个前端问题,即字体库文件 404 错误。这个问题的根本原因是 IIS 未能正确识别字体文件类型,导致浏览器在加载页面时无法正确获取所需字体资源,进而触发了404错误。这样的问题会导致网站页…

量化投资实战(一)之K线图策略

点赞、关注再看,养成良好习惯 Life is short, U need Python 量化投资实战系列,不断更新中 1. K线图简介 K 线图(Candlestick Charts)又称为“蜡烛图”、“阴线图”等。股市及期货市场中的 K 线图的画法包含四个数据,…

ETH网络中的区块链

回顾BTC网络的区块链系统 什么是区块链?BTC网络是如何运行的?BTC交易模式 - UXTO ETH网络中的区块链 ETH网络的基石依旧是 区块链。上面 什么是区块链? 的文章依旧适用。 相比BTC网络,ETH网络的账户系统就相对复杂,所…

FPGA之带有进位逻辑的加法运算

module ADDER( input [5:0]A, input [5:0]B,output[6:0]Q ); assign Q AB; endmodule 综合结果如下图所示: 使用了6个Lut,,6个LUT分布…

【通信基础知识】完整通信系统的流程图及各模块功能详解

2024.2.29 抱歉最近在写毕设大论文,因此没有太多时间更新。然而,在写论文的过程中,发现自己对通信系统的了解还不够全明白,因此差了一些硕博论文总结了一个完整的通信系统流程图。若有不对的地方请多多指正//部分内容有参考ChatGP…

Python+neo4j构建豆瓣电影知识图谱

文章目录 数据来源数据整理导入节点和关系导入使用Subgraph批量导入节点和关系 多标签实体和实体去重 数据来源 http://www.openkg.cn/dataset/douban-movie-kg 该网址拥有丰富的中文知识图谱数据集,OpenKG(Open Knowledge Graph),可供研究人员使用研究…

2019年下半年教师资格证考试《高中信息技术》题

2.在如图1所示的图文混排Word文档中,文字环绕方式使用了( D)。 图1 A嵌入型 B上下环绕型 C衬于文字下方 D编辑环绕顶点 6.在Flash中绘制类似“雨”的形状,一般首先使用“椭圆工具”绘制出一个圆形(如图4中a图&…

Win11系统实现adb命令向安卓子系统安装APP

Win11系统实现通过adb命令向安卓子系统安装已下载好的apk包。 要实现以上目标,我们需要用到一个Android SDK 的组件Android SDK Platform-Tools !这个组件呢其实是被包含在 Android Studio中的,如果你对安卓开发有所了解对此应该不会陌生&…

利用DrissionPage库写一个简单的哔哩哔哩自动评论引流脚本

以前利用selenium写过哔哩哔哩简单的脚本,后来数据丢失,痛苦万分,今天看到这个库了解一下便写了这个脚本。 切记做好数据备份 文章目录 DrissionPage简介:代码部分 DrissionPage和selenium很像,但是更简单,…

展厅设计的理念是什么

1、立足当地文化 升华本地精神 ,因地制宜,深入挖掘本土文化特色,撷取其精华,灵活运用、巧妙融入,做到掌控宏观全局。 重点突出,努力打造本土拳头品牌,挖掘其内涵,拓展延伸、着重展示…

cannot import name ‘Iterator‘ from ‘torchtext.data‘

在运行Transformer工程的时候,执行如下语句时出现题目中的报错。 from torchtext.data import Iterator 这个问题解决起来比较曲折,记录下来以备后续查阅。 原来的环境安装的是最新的pytorch,2.x版本,而且该环境在另一个大型Tr…

36102系列微波测量探针

01 36102系列微波测量探针 产品综述: 微波测量探针产品36102系列,无缝隙覆盖DC~110GHz,触点防堆金处理,压痕轻,性能可靠,产品统一采用标准同轴安装接口,触点类型、触点尺寸可选,可…

python64-Python的循环之嵌套循环

如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环。嵌套循环既可以是for-in 循环嵌套while循环,也可以是while循环嵌套do while循环.即各种类型的循环都可以作为外层循环,各种类型的循环也都可以作为内层循环。 当程序遇到嵌套循环时,如果外层循环的循环条件允许…

PSO-CNN-LSTM多输入分类预测|粒子群算法优化的卷积-长短期神经网络分类预测(Matlab)——附代码+数据

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序数据分享下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台…

韩国量子之梦:将量子计算纳入新增长 4.0战略

内容来源:量子前哨(ID:Qforepost) 编辑丨王珩 编译/排版丨沛贤 深度好文:1500字丨9分钟阅读 据《朝鲜邮报》报道,韩国将推出由量子计算加速的云服务,并在首尔地区启动城市空中交通的试飞&…

Android 混淆是啥玩意儿?

什么是混淆 Android混淆,是伴随着Android系统的流行而产生的一种Android APP保护技术,用于保护APP不被破解和逆向分析。简单的说,就是将原本正常的项目文件,对其类、方法、字段,重新命名a,b,c…之类的字母&#xff0c…

贝叶斯优化双向门控循环单元BO-BIGRU时序预测的matlab实现【源代码】

贝叶斯优化双向门控循环单元简介: 贝叶斯优化双向门控循环单元(BO-BIGRU)是一种结合了贝叶斯优化和双向门控循环单元(BIGRU)的神经网络模型。BIGRU是一种改进的循环神经网络(RNN),它…

Java+SpringBoot,打造社区疫情信息新生态

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

新一代科学计算与系统建模仿真平台MWORKS 2024a震撼发布:产品强势进化,更新亮点速览!

2月25日,同元软控成功举办MWORKS 2024产品发布会,会上公布了新版MWORKS的设计理念、关键技术、版本亮点、产品特性以及重大改进。当前,科学计算与系统建模仿真平台MWORKS 2024a已正式上线,开放下载。 MWORKS已成为全球第4个完整的…

DVWA 靶场 SQL 注入报错 Illegal mix of collations for operation ‘UNION‘ 的解决方案

在 dvwa 靶场进行联合 SQL 注入时,遇到报错 Illegal mix of collations for operation UNION 报错如下图: 解决办法: 找到文件 MySQL.php 大致位置在 \dvwa\includes\DBMS 目录下 使用编辑器打开 检索 $create_db 第一个就是 在 {$_DVW…