TPA教学视频稿子
TPA教学视频稿子大家可能在开发M0系列芯片时遇到过这样的一些问题:官方的CCS框架过于古老,不兼容很多最新的AI插件Keil的环境配置过于复杂,对于很多新手来说学习负担大,很多时间经常浪费在不知道怎么下载和调试上(当然不可否认的是Keil的调试功能确实很强大,但是在电赛中,我们不一定需要这么多的功能);对于以前尝试过将开发工作流转移到VSCode上的同学来说,你的方案可能就是先在CCS中配置环境,配置引脚和中断等,然后待生成代码后再将项目在VSCode中打开,编译和调试又要回到CCS中进行,流程割裂、效率低下;另外就是针对已经有过C/C++开发经验的同学来说,项目架构的清晰肯定是我们进行复杂开发的必要前提,官方以IDE为中心的项目架构完全不利于大家的客制化开发和拓展,对接现代C/C++开发流程非常麻烦。这些问题往往会花费我们很多时间,耽误我们的电赛备赛进程和电赛中途的开发效率。 为了避免这些问题,我开发了这款脚本工具,能够在最小安装的前提下保证最完全的开发体验,拥有现代化的开发框架和项目管理流程,支持Windows,Linux双端,支持M0全系列芯片和XDS...
Ti-Project-Assistant使用教程
Ti-Project-Assistant (TPA) 使用教程仓库地址:Ti-Project-Assistant 1.前言这篇文章是关于我的开源小项目 Ti-Project-Assistant(以下简称 TPA)的使用教程,主要是帮大家更快地开始M0芯片的开发,主要是面向电赛的同学们,无论你是新手还是老手,这个项目可以更快地帮你上手业务开发,并且按照最前沿、最现代的方式组织自己的项目,通过CMake和VSCode的结合,实现完全摆脱Keil和CCS Theia的束缚,使用现代化的开发方式进行全流程配置、开发、编译、烧录和调试。 我的项目已经开源在Github,可以通过PyPI一键安装:pip install ti-project-assistant。为了满足国内网络环境的需求,后续会迁移到Gitee上,大家可以通过网站获取完整开源项目。 2.项目介绍这个项目用 Python 编写,已发布至 PyPI,可通过 pip install ti-project-assistant 一键安装。安装后 mspm0-init 命令全局可用。它通过环境变量配置读取 Sysconfig(TI 官方...
GPT-SoVits的部署
GPT-SoVits的部署前言最近终于有时间做一直想做的tts服务器项目了,暂时现在本地部署一下,测试下效果,之后会部署在云GPU服务器上,提供API服务。这篇文章就用来整理一下部署的过程,希望能给读者一点参考。 环境准备本次部署在Ubuntu24.04系统上进行,在官方github仓库可以看到快速启动的部署指令: 123conda create -n GPTSoVits python=3.10conda activate GPTSoVitsbash install.sh --device <CU126|CU128|ROCM|CPU> --source <HF|HF-Mirror|ModelScope> [--download-uvr5] 按照这个指令,首先创建了一个新的conda环境,安装了python3.10,然后运行安装脚本,选择了对应的设备和模型源,等待安装完成。本机在RTX5060平台安装,选择了CU128和HF-Mirror,安装过程大约花了20分钟左右,期间会下载模型文件和安装依赖包。注意到经常容易出现网络连接问题,必要依赖可以手动下载,然...
关于如何在VSCode环境基于STM32Cube插件使用DapLink进行调试的研究
关于如何在VSCode环境基于STM32Cube插件使用DapLink进行调试的研究1. 背景与动机七月份电赛就要开打了,最近也是入手了两块天猛星的ti板子,想着先熟悉一下ti芯片的开发,顺手就购入了心心念念的DapLink(逻辑分析仪二合一)。本人虽然蛮久时间没有用过keil了,但是偶尔用上一次,令人心酸的代码补全和代码提示实在是让代码体验苦不堪言。于是跟着keysking的教程,我将整个开发工具链迁移到了我有较长使用经历的VSCode,并打算后续将包括嵌入式开发的整个环境迁移到Linux上去。总之就是这样,我虽然能够成功在VSCode使用STlink进行调试,但是ST插件没有对DapLink的支持,无法用我新买的DapLink进行调试实在是不够优雅,于是我踏上了对调试环境艰辛(也说不上)的探索。 2. 逻辑梳理想要理解如何为什么要使用DapLink以及如何使用DapLink,就需要理清楚嵌入式开发和调试的整个逻辑链条。趁着这个机会,我也是完完整整地梳理了一遍开发流程,让我对嵌入式开发的理解更上了一层楼。 核心组件与职责 CMake:用于管理编译流程,指挥编译器生成elf文件,...
行为树
行为树 行为树是什么 在构建较为复杂的机器人项目时,我们会发现让机器人自动执行动作的逻辑会随着业务需求的增加而变得非常复杂,用有限状态机(FSM)去管理状态之间的切换逻辑的维护成本也大幅提升。比方说现在想要从一个结构较为完整的机器人上删去某个动作节点或者判断逻辑,那我们需要在状态机的图上删去所有和这个源节点相连的关系,还要处理其他节点的依赖关系。更不用说其他令人头疼的问题了: 代码复杂、难以阅读:用状态机维护的行为逻辑会越来越复杂,交织的网络关系呈现出来可能是上千行的代码,给谁看都不乐意,徒增维护成本 逻辑修复困难:像上面提到的那样,删除节点、新增节点之前需要开发者对整个逻辑框架有良好的认知,需要在明确知晓操作影响的前提下再进行操作 运行监控和日志管理:机器人的状态监控需要远程和本地输出调试信息,一般情况信息较为复杂,难以管理 为了解决这些问题,BehaviorTree.CPP应运而生,它使用四种抽象节点的树状关系来管理逻辑:序列节点、选择节点、并行节点和装饰节点。通过树状结构的层次关系,行为树能够更清晰地表达复杂的行为逻辑,同时也更容易维护和扩展。 基本概念与入门 行为...
