当前位置: 首页 > news >正文

嵌入式之XMOS打印Hello World

你好呀,我的老朋友!我是老寇,跟我一起学习嵌入式开发

XMOS xCORE 双 Tile 架构图

0805d9a03e2e4621bbf19a83d42c5a8d~tplv-73owjymdk6-jj-mark-v1_0_0_0_0_5o6Y6YeR5oqA5pyv56S-5Yy6IEAgS-elng==_q75

解释

这是 双 Tile 对称架构,一个 core 对应一个 硬件线程一个Tile只允许有8个硬件线程,通过 中间 switch 传输数据

XC介绍

XC = 为并发和实时硬件设计的 C 扩展语言

你想做的事 C语言怎么做 XC怎么做 备注
写程序入口 main() main() 一样
顺序执行 默认 默认 一样
同时做两件事 很难 非常简单 XC最大优势
多任务 需要操作系统 语言自带 XC更简单
任务通信 共享变量 channel XC更安全
等待事件 中断 select XC更直观
控制IO 调外设 直接控制 XC更底层
精确时间 很难 内建支持 XC强项
锁(mutex) 必须学 不需要 XC省事
容易写错 XC更安全
项目例子

写一个简单例子

CMakeLists.txt

# 要求 CMake ≥ 3.21
cmake_minimum_required(VERSION 3.21)# 加载 XCommon CMake 模块 (必须在 project() 之前)
include("$ENV{XMOS_CMAKE_PATH}/xcommon.cmake")# 项目定义
project(xmos_demo)# 目标平台
set(APP_HW_TARGET "XCORE-AI-EXPLORER")# 源文件
set(APP_XC_SRCSsrc/main.xc
)# 编译选项
# -O2 保持可调试性
# -g 生成调试信息
# -report 生成资源报告
set(APP_COMPILER_FLAGS-O2-g-report
)# 注册 XMOS 应用
XMOS_REGISTER_APP()

main.xs

/*** XMOS 8 线程 Hello World 演示** xCORE tile[0] 有 8 个硬件线程* par{} 中的每一项占用 1 个线程,真正同时执行(非操作系统调度)*/#include <platform.h>
#include <stdio.h>
#include <xs1.h>/*** 每个线程执行的任务* 打印自己的线程编号*/
void hello_task(int thread_id)
{printf("Hello World from thread %d!\n", thread_id);
}int main(void)
{par{/*** 8 个任务 = 8 个硬件线程,同时启动* 打印顺序不固定,因为它们是真正的并行执行*/on tile[0]: hello_task(0);on tile[0]: hello_task(1);on tile[0]: hello_task(2);on tile[0]: hello_task(3);on tile[0]: hello_task(4);on tile[0]: hello_task(5);on tile[0]: hello_task(6);on tile[0]: hello_task(7);}return 0;
}

步骤

su root# 设置XMOS TooL环境,这步骤跳过,请自行设置# 构建
cmake -B build
cmake --build build# 模拟运行
xsim bin/xmos_demo.xe# 烧录【根据自己需要使用不同命令】
xrun --io bin/xmos_demo.xe# 烧录并运行【根据自己需要使用不同命令】
xflash bin/xmos_demo.xe# 调试
xgdb bin/xmos_demo.xe
# 在 xgdb 中连接到目标
(gdb) connect
(gdb) run

运行结果

Hello World from thread 7!
Hello World from thread 1!
Hello World from thread 2!
Hello World from thread 3!
Hello World from thread 4!
Hello World from thread 5!
Hello World from thread 6!
Hello World from thread 0!

我是老寇,我们下次再见啦!

http://www.jsqmd.com/news/417923/

相关文章:

  • Python元类:我如何让所有类的实例化,都必须经过我的“出生登记处”?
  • 定稿前必看!AI论文平台,千笔 VS Checkjie,专为本科生设计!
  • 内存涨价:三星涨100%,苹果直接答应
  • 2026年全国靠谱保洁设备厂家榜 全品类覆盖 高效清洁更省心 适配各类需求 - 深度智识库
  • 城南核心地段现房交付,2026年购房者实景体验首选,学区房/70年大产权住宅/实景现房/南都新城,现房直销厂家有哪些 - 品牌推荐师
  • 【问题解决】vscode插件Jenkins Pipeline Linter Connector校验格式报错
  • 学长亲荐!一键生成论文工具,千笔·专业学术智能体 VS Checkjie
  • 综述不会写?AI论文网站 千笔·专业论文写作工具 VS speedai
  • 机器学习算法基本型 关联规则(笔记)
  • 智能化-技术体系
  • 构建智能IT运维助手:基于腾讯云ADP平台的运维问题解决专家
  • windows10 安装claude code使用glm
  • Linux USB子系统之Gadget设备端驱动
  • 解锁香港名校密码:十大留学中介“神助攻”来袭 - 博客湾
  • 2026年 洗车机水处理设备厂家推荐排行榜,一体化污水处理设备,工业污水处理设备,专业净化技术助力环保升级! - 品牌企业推荐师(官方)
  • 端到端在工程上的严格含义;funasr的多模块级联;
  • 港校申请秘籍大公开!TOP10留学机构全揭秘 - 博客湾
  • 夸克浏览器v6.8.8 去网站访问限制/去广告/去更新
  • 闲置天猫享淘卡别闲置!超实用高效回收妙招,轻松盘活卡内余额 - 京回收小程序
  • 图扑 HT Qt 应用:高性能可视化渲染效果实现
  • 2026冲刺用!千笔·专业降AI率智能体,本科生降重首选
  • labelme实例分割标注的图片和标注数据微微旋转1度2度 做数据扩增
  • 2026看中医去哪里?中医诊疗机构推荐及选择指南 - 品牌排行榜
  • 2026年优质清洁设备厂家口碑榜 涵盖智能清洁 适配多场景实用之选 - 深度智识库
  • 2026年全国保洁设备厂家哪家好?技术过硬服务周到 适配多场景需求 - 深度智识库
  • 港校逐梦“加速器”:留学中介TOP10实力大揭秘 - 博客湾
  • 干燥设备订制优选集:2026年这些厂家评价颇高,离心造粒包衣机/高效沸腾制粒机/高效粉碎机,干燥设备生产厂家有哪些 - 品牌推荐师
  • LORA无线数传模块
  • 2026年 全自动洗车机厂家实力推荐榜:隧道式/往复式/公交大巴/智能无人值守洗车机品牌深度解析与选购指南 - 品牌企业推荐师(官方)
  • 2026磁轴键盘排名TOP1!迈从Ace 68 Turbo|实至名归的磁轴键盘性价比之王 - 速递信息