
嵌入式系统架构设计
文章平均质量分 86
在多种工具链中开发嵌入式系统,解决开发过程中的问题,以及一些有趣的开发方法。
suyong_yq
屌丝程序员:喜欢乒乓球,喜欢听歌,喜欢写程序,喜欢吃零食,喜欢睡觉。
展开
-
试用无线调试器PowerDebugger小记
本文记录了试用`PowerDebugger`无线调试器调试YTM32微控制器的全过程。创芯工坊发布的产品简介和用户手册对`PowerDebugger`功能和用法做了详细的介绍,但笔者在实际试用过程中还总结了一些额外的要点。。。原创 2023-11-20 23:33:45 · 633 阅读 · 1 评论 -
基于Ubuntu Server编译YTM32 SDK工程
基于Ubuntu Server编译YTM32 SDK工程原创 2023-10-21 22:38:39 · 547 阅读 · 0 评论 -
利用DMA的触发循环实现eTMR的PWM周期计数
反推整个触发链:先要确认DMA控制器(DMAMUX)能够捕获到来自eTMR的触发信号,然后在eTMR中确认eTMR的触发信号能否同PWM的一次输出周期关联起来,最后再查阅如何配置eTMR产生对应的触发信号。。。原创 2023-10-01 18:31:05 · 690 阅读 · 2 评论 -
MODBUS应用协议Spec导读intro
在设计一些小型的多微控制器联动系统时,希望通过一种简单的方式组网,暂不考虑ENET或者CAN总线,虽然这两个外设用于组网确实不错,但对微控制器有比较高的要求,使用这些外设有一定的门槛,协议栈相对复杂,外围电路的成本也比较高。UART是最简单的通信外设,能搭配UART的外设组网协议栈,最常用的就是MODBUS。原创 2023-08-16 10:30:56 · 490 阅读 · 0 评论 -
定制带U盘功能的bootloader实现拖拽下载固件
为了简化下载固件的操作,本例使用MM32F5270微控制器,基于芯片自带的USB外设,实现了一个基于U盘拖拽更新固件的解决方案。原创 2023-07-23 17:52:46 · 1006 阅读 · 0 评论 -
系统工程 - 记录一次调试USB设备低功耗应用的过程
最近在同客户做机械键盘的产品设计,我们SE系统工程团队为客户设计了一套使用灵动MM32F0160微控制器的机械键盘原型电路板,用于评估原型方案。随着同客户不断沟通,客户进一步细化了需求,这次对低功耗特别提了要求:根据USB规范约定,当电脑处于待机状态时,USB设备从USB线缆上获取的电流不能超过2.5mA,这个2.5mA不仅仅是MCU的工作电流,而是整个USB设备电路板的工作电流!原创 2023-06-19 14:42:53 · 1188 阅读 · 0 评论 -
Cache技术在星辰处理器中的应用
本文从修复MicroPython启动程序在MM32F5微控制器上比较慢的问题,体验了星辰处理器中Cache的作用。简单介绍了Cache的工作原理和机制,重点介绍了使用Cache可能存在的风险,并进一步探讨了如何能用到Cache高速存取的同时避免数据不一致的情况。原创 2023-06-15 21:26:52 · 748 阅读 · 0 评论 -
使用MindSDK的at-server组件开发从机模组
MindSDK中的`at-server`组件,应用逻辑还是相当清晰的,抽象出了绑定硬件的函数对象、命令集等,自定义命令和注册回调函数也非常方便。at-server对于小资源微控制器来说,可是个福音,在基于主从机交互的应用环境中,将微控制器作为一个仅连接电路系统的控制器,解析并执行来自主机的命令,将大算力和大存储需求的算法和应用逻辑转移到主机(PC机)上。如此以来,不通硬件和不愿意看微控制器开发手册的Python算法工程师,也可以试着让自己的程序控制电路啦。原创 2023-05-08 17:24:39 · 946 阅读 · 0 评论 -
CAN总线开发一本全(6) - CANopenNode组件(1)
CANopenNode是一个免费的开源CANopen协议栈的实现。CANopen协议栈是一个在嵌入式控制器上的基于CAN总线高层应用协议,遵循国际标准CiA 301(EN 50325-4)。原创 2023-03-13 22:02:47 · 5938 阅读 · 6 评论 -
CAN总线开发一本全(5) -CANopen协议概述
本文精翻了CiA对CANopen协议的背景知识介绍,并根据个人的理解,调整了组织方式。原创 2023-03-12 00:01:30 · 4479 阅读 · 0 评论 -
CAN总线开发一本全(4) - FlexCAN的驱动程序
MindSDK中设计的FlexCAN驱动程序,对FlexCAN外设进行了建模,创建了一系列数据结构和API,能够为软件开发者提供初始化FlexCAN通信引擎,通过MB的结构类型发送数据帧、远程帧等功能。MindSDK为FlexCAN驱动设计的一些样例工程,演示了在一些典型应用场景中(回环通信、板对板直接通信、板对板请求远程帧通信)使用FlexCAN驱动的方法。原创 2023-02-26 12:50:27 · 1606 阅读 · 0 评论 -
使用sdk-npi-enablement-tool生成SVD文件和芯片头文件
本文详细说明了如何使用灵动软件与系统工程组自主开发的`sdk-npi-enablement-tool`工具包,完成SVD文件局部更新的操作过程。原创 2023-01-19 01:21:57 · 3839 阅读 · 4 评论 -
使用轻量级图像解码器TJpgDec - 基于MM32F5微控制器和MindSDK
本文简单介绍了TJpgDec组件的情况,以及汇总了关于TJpgDec组件的所有必要的资料,然后对原作者描述的移植接口进行了详细的解释,补充一部分原作者在网页中简要带过的内容,最后在使用国产灵动微电子的MM32F5277E9P(Arm Cortex-MC1处理器)的plus-f5270开发板上进行具体移植,使用静态内存分配的方式换掉动态内存的用法。原创 2022-12-28 14:45:42 · 2907 阅读 · 0 评论 -
在ARM微控制器上部署MATLAB/Simulink仿真模型
本文详细演绎了从Simulink创建模型,仿真验证,之后再生成C源码部署到plus-f5270开发板的全过程。 其中描述的方法和操作步骤,为后续部署更多仿真模型奠定了基础。原创 2022-12-21 12:21:13 · 3087 阅读 · 0 评论 -
在MM32F5微控制器上使用外扩SRAM作为主内存
MM32F5微控制器基于Arm STAR-MC1微控制器,最高主频可达120MHz,集成了FPU单元和DSP扩展指令集,有不错的算力。但片内集成的128KB的RAM和256KB的FLASH,如果想支持代码量比较大的软件框架,就可能会力不从心,例如,TensorFlow Lite或者基于MicroPython的OpenMV这样的应用就需要更多的内存空间做缓存。但MM32F5微控制器带有FSMC接口和QSPI接口并支持基于QSPI的XIP(eXecute In Place,就地执行),可以分别外扩SRAM和FL原创 2022-08-15 16:01:32 · 1008 阅读 · 2 评论 -
手工打造基于MM32F5微控制器的MicroPython开发板
在本文中,将讲述如何自己动手制作基于MM32F5微控制的最小系统板,并获取与之配套的预先编译好的MicroPython固件,以及使用图形界面开发环境Thonny IDE在MM32F5微控制器上使用Python进行开发的基本用法。帮助MicroPython的开发者自己动手制作一块基于微控制器的开发板。...原创 2022-07-21 10:24:16 · 1178 阅读 · 1 评论 -
使用DAP-Link单独下载可执行文件到MM32F5微控制器
单独下载可执行文件到MM32F5微控制器suyong_yq,2022年5月文章目录单独下载可执行文件到MM32F5微控制器引言借用Keil工程使用Ozone引言使用Keil MDK或者IAR等使用图形界面的开发环境,可以在图形界面环境下编译源码工程,并下载编译生成的可执行文件到目标微控制器中。但若使用ARMGCC等命令行工具链,需要额外的下载工具,才能将编译生成的可执行文件下载到目标微控制器中。若使用SEGGER J-Link调试器,可以搭配SEGGER Ozone软件或者J-FLASH、J-FL原创 2022-05-30 10:23:58 · 5275 阅读 · 0 评论 -
【解决】msys2签名错误无法升级
解决msys2“无法升级 mingw64 (无效或已损坏的数据库 (PGP 签名))”密钥失效问题https://blog.youkuaiyun.com/xfijun/article/details/107810097如果不能在msys2中下载签名文件,可以直接在浏览器中输入文件url下载对应文件,存放至 “~”目录下,然后继续后续的命令即可完成修复。...原创 2022-03-03 23:20:14 · 1903 阅读 · 0 评论 -
ARM GCC 快速参考指南
ARM GCC 快速参考指南文章目录ARM GCC 快速参考指南概述命名使用命令参数`flags`编译命令` arm-none-eabi-gcc`链接命令 `arm-none-eabi-ld`查询储存空间占用信息命令`arm-none-eabi-size`导出`*.bin` 命令`arm-none-eabi-objcopy`调试程序命令`arm-none-eabi-gdb`反汇编命令`arm-none-eabi-objdump`概述GCC在最初指GNU C Compiler,作为GNU计划中相当重要的原创 2022-01-26 11:51:42 · 6153 阅读 · 1 评论 -
Sublime Text 在保存时自动删除多余的行尾空格
我记得很多年前在sublime text 2时用过一个“tail_xxx”的插件,现在找不到了。但偶然间发现可以直接通过用户配重,实现同样的功能。打开Sublime Text 3,在Preferences菜单下,轻戳Setting,即可打开Settings-User的编辑文件,在打开的用户配置中加入以下一行: "trim_trailing_white_space_on_save": true如下图所示:关于“expand_tabs_on_save”从代码中顾名思义,似乎顺带着连Tab键变空格也原创 2021-11-15 13:59:24 · 1100 阅读 · 0 评论 -
ARMCLANG: L6218E: Undefined Symbol __aeabi_assert
这个报错一般常见于在keil中开启了microlib的情况,参考资料来自ARM官网的说明 :https://developer.arm.com/documentation/ka004216/latest文中描述的解决解决方法有三个思路:不用 microlib。但是重定向的 printf 就需要自己写更多代码才能实现了。不需要使用 assert() 函数,在编译选项中增加 “NDEBUG” 的定义。重写 assert() 函数。在文档中也有说明,如果一定要 assert() 这个功能,那就直接复制原创 2021-10-14 11:29:59 · 1122 阅读 · 0 评论 -
Win7系统下无法正常安装JLINK CDC UART驱动的问题解决
文章目录描述问题解决问题参考资料描述问题今天调一块板子,需要在Windows7系统上跑一些工具,新装了一个Windows7系统后安装JLink驱动,出现无法正常安装JLINK CDC UART串口驱动的问题。接入带有班载JLink组件的设备时,能够识别JLINK CDC UART,但是有个黄色的感叹号。用Tera Term工具找不到这个“COM4”。额,之前遇到过一次这样的情况,这次肯定是绕不过去了。试着在设备管理器中重新安装驱动。说是驱动程序未签名 ??但是之前这台电脑是用过JLink驱动的,原创 2021-01-20 13:12:29 · 6100 阅读 · 0 评论 -
基于Windows系统搭建micropython原生开发环境
基于Windows系统搭建micropython原生开发环境苏勇,suyong_yq@126.com,2021-01文章目录基于Windows系统搭建micropython原生开发环境引言下载资料安装msys2在msys2中安装make工具在msys2中安装gcc编译器在msys2中安装python3在msys2中安装arm-gcc-none-eabi编译器编译micropython中的minimal工程验证工具链编译mpy-cross编译器编译minimal工程参考资料引言micropython的原创 2021-01-18 23:39:32 · 4481 阅读 · 3 评论 -
一种规范的嵌入式开发套件连接接口定义-Grove系统
一种规范的嵌入式开发套件连接接口定义-Grove系统文章目录一种规范的嵌入式开发套件连接接口定义-Grove系统Grove系统简介连接线规范信号定义规范Grove Digital 数字接口Grove Analog 模拟接口Grove UARTGrove I2CGrove系统简介Grove系统为制作开发板的外接扩展接口(连接器)提供了一个确定的标准。https://wiki.seeedstudio.com/cn/Grove_System/#grove_14Grove是一个模块化的标准连接器原型系统。原创 2020-09-17 12:55:28 · 3918 阅读 · 0 评论 -
使用IAR的外置编辑器配置
IAR默认的编辑器看着眼睛痛, 缺少典型配色方案, 逐个改每个元素太繁琐. 索性直接引用配置好的外置编辑器, 例如sublime text或者notepad++.参见iar官方的例子:https://www.iar.com/support/tech-notes/ide/problem-getting-external-editor-to-jump-to-specific-code-line/IntroductionHow do I get the external editor to jum原创 2020-08-04 12:09:23 · 1708 阅读 · 1 评论 -
重装VirtualBox的各种问题解答
VT-X is not available, Win10需要停用Hyper-X, 需要在BIOS里改, 需要在bcdedit里改, 需要在控制面板里改具体解决方法可参见:https://blog.youkuaiyun.com/imilano/article/details/83038682原创 2020-08-01 11:32:20 · 266 阅读 · 0 评论 -
Anaconda常用命令
Anaconda常用命令文章目录Anaconda常用命令环境管理创建新的虚拟环境查看已创建的虚拟环境激活已创建的目标环境退出当前激活环境, 切回默认环境删除已创建的环境工具包管理更新环境管理创建新的虚拟环境conda create --name my_pytorch python=3.7或者conda create -n my_pytorch python=3.7代表创建一个...原创 2020-02-20 13:40:33 · 163 阅读 · 0 评论 -
IAR指定函数和变量在链接时存放在指定位置
IAR指定函数和变量在链接时存放在指定位置Placing a group of functions or variables in a specific sectionhttps://www.iar.com/support/tech-notes/linker/how-do-i-place-a-group-of-functions-or-variables-in-a-specific-sec...原创 2020-02-02 19:09:56 · 2084 阅读 · 0 评论 -
使用CMake调用IAR编译器实现命令行编译
使用CMake调用IAR编译器实现命令行编译Using CMake with IAR Embedded Workbenchhttps://www.iar.com/support/tech-notes/general/using-cmake-with-iar-embedded-workbench/原创 2020-02-02 19:06:35 · 2830 阅读 · 1 评论