- 2024-11-20
-
回复了主题帖:
有奖直播 | 报名STM32全球线上峰会,了解重磅新品!
报名,报名
- 2024-11-15
-
加入了学习《NuttX Workshop 2024》,观看 NuttX Memory Debug tools
-
加入了学习《FollowMe 第二季:3 - EK_RA6M5 开发板入门》,观看 EK-RA6M5 开发板入门
- 2024-11-14
-
回复了主题帖:
DIY了一台无人机,用全志T113芯片
为大佬点赞
-
回复了主题帖:
用开发板本身的板载开发工具 ,keil能够连接上开发板,读到芯片型号,也可以正常编...
没有安装板级支持包 DFP ,又或者没有安装烧录算法 FLM 文件。
- 2024-11-08
-
发表了主题帖:
FM2-3瑞萨RA6M5开箱
背景
第一次参加 EEWORLD 和 DigiKey 联合举办的 【Follow Me 第二季第三期】活动,入围后灰常激动,立刻下单,接下来就是漫长的等待快递环节。
收到快递后迫不及待的打开,以下就是此板卡的靓照。
得捷的外包装很严实
拆箱
大盒子打开有三样东西:
物品清单
EK-RA6M5 套件
纸盒子填充物
EK-RA6M5 正面靓照
套件清单
蓝色板卡 EK-RA6M5【不得不说主芯片面积真的大】
三根线,分别是 Micro USB device 线;Micro USB host 线;网线;
板卡正面
板卡背面
出厂程序演示
先确保 J12 的 2-3 连接在一起,并且 J15 短接了;
使用 Micro USB 线一头接电脑,一头接板卡上的 J11 即 micro-AB USB Full Speed 端口;
上电,电源指示灯 LED4 亮起;
打开串口工具,找到电脑上新扫描出来的串口,例如我的电脑串口是 COM63,串口工具设置波特率 115200;
如下的测试我并没有插网线。
串口欢迎界面
1进入 Kit Information
此页面展示了板卡的一些信息,包括 MCU 温度信息,摄氏度为 29.47°C.
按键交互
按键SW2改变蓝色LED1闪烁频率
按键SW1改变蓝色LED1闪烁亮度
上电后 LED1 默认闪烁频率 1Hz,闪烁的亮度为10%。可以通过 SW2 改变其频率, SW1 改变其亮度。
2进入 Next Steps
此页面展示 EK-RA6M5 官方的资源链接,如文档、论坛、支持等。
疑问
为什么我的板卡串口只有两个菜单选项,但是官方的 ek-ra6m5-quick-start-guide.pdf 却有6个菜单选项呢?是不是烧的固件版本不同?
-
发表了日志:
FM2-3瑞萨RA6M5开箱
- 2024-11-05
-
回复了主题帖:
【实战练手】解锁高性能、近500元的【EK-RA6M5】,得捷Follow me第二季第3期报名中
直播时间还没定吗?
-
回复了主题帖:
《CMake 构建实战-项目开发卷》实战分享4—基于onnxruntime的手写数字识别库
#聊一聊# 为什么0/9 两张图片识别失败呢?
-
发表了主题帖:
《CMake 构建实战-项目开发卷》实战分享4—基于onnxruntime的手写数字识别库
本帖最后由 CoderX9527 于 2024-11-5 17:02 编辑
简介
这是本书的最后一个章节,融合前面模块、库搜寻、调用第三方库的知识,并基于 ONNX runtime 写一个手写数字识别的命令行工具。
ONNX runtime 安装
ONNX runtime 的官方地址如下
https://github.com/microsoft/onnxruntime
ONNX Runtime 是一种跨平台的推理和训练机器学习加速器。通过使用 ONNX runtime 进行推理,可以实现更快的客户体验并降低陈本,并支持诸如 PyTorch、TensorFlow/Keras 等深度学习框架以及诸如 sckit-learn、LightGBM 和 XGBoost 等经典机器学习库。 ONNX Runtime 兼容不同的硬件、驱动程序和操作系统,并利用使用的硬件加速器和图形优化与转换来提供最佳性能。
安装并检验库(最新版本失败,低版本成功)
这里下载当前最新的预编译包 onnxruntime-linux-x64-1.20.0.tgz,来源于 https://github.com/microsoft/onnxruntime/releases
下载适用于 linux-x64 平台的压缩包,并解压到如下目录:
ch009 目录下编译失败: 应该和 c++ 版本与编译有关。暂时不折腾了。
低版本编译成功
下载和作者一样的 onnxruntime-linux-x64-1.10.0.tgz ,解压到对应目录。
运行提示 Load model failed,符合书本上的描述。
zlib 库的编译和安装
zlib 的 github 链接 https://github.com/madler/zlib
编译
在 zlib 源码路径中新建 build-release 目录,进入,然后 cmake 配置并开始编译。
mkdir build-release
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . –config Release
安装
cmake --install . 失败,需要以管理员权限安装
sudo cmake --install . 安装成功
libpng 库的编译和安装
仓库地址:https://github.com/pnggroup/libpng
编译
在源码目录中新建一个 build-release 目录,在此目录中编译
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . –-config Release
安装
cmake --install . 安装失败,需要管理员权限
sudo cmake --install . 安装成功
手写库示例
此目录程序是一个调用手写数字识别库的应用程序,依赖上面三个库。
CMake 目录程序
设置工程属性
以上命令设置 CMake 目录程序的工程属性。
查找软件包 onnxruntime
这里指定 onnxruntime 版本为 1.10.0 用户可以根据下载的实际版本进行修改。
第17行查找 onnxruntime 包并指定版本号为 1.10.实际会调用 cmake/Findonnxruntime.cmake 文件。它的内容如下:
最终设置 onnxruntime_INCLUDE_DIR 、onnxruntime_LIBRARIES 两个变量。
查找软件包 libpng
在 CMakeLists.txt 的第18行。
它实际会调用 cmake/Findlibpng.cmake 文件,它的内容如下:
注意,它会继续在系统中找 libpng16.cmake 模块文件,即此文件是对 libpng16.cmake 文件的封装,导出了 libpng_LIBRARY 和 libpng_INCLUDE_DIR 两个变量。
注意,libpng16.cmake 文件路径在 /usr/local/lib/libpng/libpng16.cmake 。是上面libpng 安装的。
生成出错
出错,提示 png_shared 接口目标包含 ZLIB:ZLIB 没有找到。
ZLIB:ZLIB 解决办法
修改 /usr/local/lib/libpng/libpng16.cmake 文件
以管理员权限打开此文件,屏蔽包含 ZLIB:ZLIB 的两个语句,如下图所示:
cmake 配置并编译,成功
mkdir build-debug
cd build-debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build . --config Debug
运行结果—有对有错
命令行运行 ./recognize ../models/mnist.onnx ../2.png
分别识别 2.png/3.png/4.png 均识别成功。
这里的 2.png/3.png/4.png 均是作者提供的原始图片。
以下是我提供的图片 8.png/9.png/0.png,图片尺寸和2.png 相同,111x131 像素大小。
运行结果如下:0/8 识别正确,9 识别错误(识别为1)。
又提供了一张粗体的 9_bold.png 图片,识别结果还是出错,识别成了7.
-
发表了日志:
《CMake 构建实战-项目开发卷》实战分享4—基于onnxruntime的手写数字识别库
-
回复了主题帖:
瑞萨e2studio如何去除汉化
秦天qintian0303 发表于 2024-11-2 23:31
感觉中文界面也还可以啊,e2的汉化还是比较彻底的
我安装的,界面汉化不完整,中文、英文混搭。所以卸载了中文。
- 2024-11-02
-
回复了主题帖:
【得捷电子Follow me第2期】ESP32-S3之基于Clion+PlatformIO+Arduino环境搭建和使用
CoderX9527 发表于 2024-11-2 12:04
老兄,我的也是重启一直进入 DFU 模式,怎么办 啊?
我用 platformio 开发环境,下载程序失败呢。。。
...
终于在 adafruit 官网找到了资料:
先按住 boot 键再按下reset 键;再依次释放 boot 键、reset 键。这样就能进入 esp32 rom bootloader, platformio IDE 可以下载了。
注意下载串口和打印日志的串口不同。
-
回复了主题帖:
【得捷电子Follow me第2期】ESP32-S3之基于Clion+PlatformIO+Arduino环境搭建和使用
老兄,我的也是重启一直进入 DFU 模式,怎么办 啊?
我用 platformio 开发环境,下载程序失败呢。。。
第一次玩 esp32,网上没找到资料呢。
- 2024-11-01
-
回复了主题帖:
【2024 DigiKey创意大赛】基于ESP32 S3的智能骑行头盔
有意思,期待成品
-
回复了主题帖:
瑞萨e2studio如何去除汉化
问题是一开始安装选择了中文。安装后设置里没找到改语言的设置选项。
-
发表了主题帖:
瑞萨e2studio如何去除汉化
# 背景
安装e2 studio时选择了中文语言,但使用之后发现汉化不完全,而且某些地方汉化词不达意。想把汉化去掉,但是网络并没有多少资料,而且过时了,不生效。经过我一番摸索,终于找到了法门。
# 卸载汉化过程
## 卸载插件入口
从菜单栏 **Help** --> **About e2 studio** 进入。
## 进入安装细节
在弹出的界面点击 **Installation Details**
## 搜索中文插件
搜索 ch 开头的插件,找到三个,全部卸载。
## 卸载完成重启
三个都卸载完成后,再点击重启
# 英文界面
完美,现在是全英文的界面,除了这里有一个菜单栏是中文的。
- 2024-10-30
-
发表了主题帖:
《CMake 构建实战-项目开发卷》实战分享3—从零开始给MCU项目增加CMake支持
背景
我在芯片原厂做BSP开发,公司的项目原本只支持Keil MDK AC6编译器,领导让我增加个GCC编译器支持。当前我先增加了第一个版本的 CMake + GCC 编译支持,并且在 VS Code 中可以调用 J-Link 调试器进行调试,后续再完善 CMake 目录结构。
搭建嵌入式MCU 编译环境
安装软件清单
GCC 编译器,这里以 2021.10 版本为例;
CMake 工具,这里以 v3.28.1 为例;
Ninja 或者 Make 工具,这里安装 ninja 绿色版本;
JLink V752d,烧写程序、调试程序
安装 GCC 编译器
文件 gcc-arm-none-eabi-10.3-2021.10-win32.exe 可以从 ARM Developer 官网下载,地址如下:
https://developer.arm.com/downloads/-/gnu-rm/10-3-2021-10
下载后双击安装,一路 NEXT,安装到 “C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2021.10\bin” 目录下。安装结束打开一个新的命令行窗口输入 “arm-none-eabi-gcc.exe --version” 检查是否看到正确的版本信息。
如果没有,就把此目录添加到系统环境变量 PATH 中。(后续各个软件也需要把安装路径添加到 PATH 变量中)
安装 CMake 工具
从 CMake 官网下载最新的版本,我这里以 3.28.1 版本为例。
点击安装,一路 NEXT 即可。
安装 Ninja 工具
ninja 是一个绿色软件,github 官方释放地址为:https://github.com/ninja-build/ninja/releases
它的作用和 make 一样,区别是 make 读取 Makefile 文件调用编译器命令,而 ninja 读取 build.ninja 文件调用编译器命令,而且 ninja 没有隐含规则,编译速度更快。
解压 ninja 到某个磁盘,然后添加到系统 PATH 路径,打开新的命令行输入 “ninja --version” 检查版本。
安装 JLink V752d
从 Segger 官网下载,点击安装一路 NEXT 即可。
编写 CMake
编写 CMake 目录程序,围绕着以下几点:
编译器配置:设定编译工具链路径,二进制文件和库文件输出路径;
针对处理器的编译选项:即C编译选项,针对处理器的宏定义,调试选项,链接脚本路径;
二进制目标文件的规则,库文件的导入导出:一般要指定可执行文件依赖源文件、头文件、库文件的路径;
编译后的elf/bin文件处理:即 elf/axf 如何加工生成 bin 文件,如何生成反汇编文件,以及调用外部工具处理 bin 文件;
这里直接列出工程修改后的大致结构:
cmake 目录,存放 cmake 模块文件;
test 目录,有一个 CMakeLists.txt 文件,实际上它继续添加下面的 testcase 目录,指导包含可执行文件所在目录;
链接脚本,这里有两个链接脚本,区分运行在Flash和 RAM 版本;
CMakeLists.txt 主目录文件,工程入口
cmake 目录中的模块文件
简单介绍此目录中的4个文件。
functions.cmake
定义了一些 cmake 通用函数,例如:
gcc_compiler_flags.cmake
定义了编译选项,包括针对处理器的选项,通用选项、调试选项以及链接器选项。下图仅截取一部分:
gcc_custom_build.cmake
定义了一些自定义目标,用来处理 axf/elf 文件到 bin 文件的转换。
这个文件用到了生成器语法和 CMAKE 命令(跨平台),比写 Makefile 方便多了。
gcc_toolchain_setup.cmake
此文件定义了编译工具链路径。
主目录 CMakeLists.txt 文件
此文件太长了,就不截图了。大致可以分为以下几个部分:
导入 cmake/ 目录下的模块;
调用 add_executable() 新增一个二进制构建目标,但是还没有增加源文件路径;
调用 include_directories() 为工程设置全局的头文件搜索路径;
调用 add_subdirectory(test) 把子目录加进来;
调用 include(cmake/gcc_custom_build.cmake) 设定编译后的 elf/axf 文件处理规则;
可执行文件指定源文件
前面说了顶层目录的 CMakeLists.txt 文件仅添加了可执行文件目标,但是没有指定源文件。通过调用 add_subdirectory() 层层依赖,最终到了我们的示例工程,文件内容如下:
使用 file(GLOB_RECURSE) 命令搜索当前目录下的C源程序添加到 USER_APP_SRCS 变量中;
设置 APP_DEP_SRCS 变量,加入GCC 版本的启动文件、system 文件以及标准输入输出重定向文件;
调用 target_sources() 命令为最终的可执行目标设置源文件路径。
编译后的动作
见上面的 gcc_custom_build.cmake 文件,调用编译工具链中的命令把 elf/axf 文件转换为 hex/bin 文件,并生成反汇编文件。
调试支持
VS Code 安装 Cortex-Debug 插件。
然后先点击(1)处的 Run and Debug 按钮,在点击(2)处的齿轮,配置调试选项。
在打开的 launch.json 文件输入以下内容,配置调试文件为 RADAR_CHIPX.elf 文件,调试器类型为 jlink,调试器接口为 swd,并配置进入调试时要执行的 JLink 命令。
运行
JLink 链接电脑和开发板之后,按 F5 键开始调试。
刚进入调试模式会弹出 TERMINAL 窗口,打印 JLink 调试器加载信息
然后 DEBUG CONSOLE 窗口会打印 JLink 调试器执行命令的信息
最后成功进入 main() 函数并打印信息
总结
编写 CMake 程序,主要是指定源文件、头文件、库文件路径,设置编译器选项、链接器参数等。当然还需要注意链接脚本设置的启动文件。
这个项目是为了赶时间所以CMake程序写的潦草,后期可以参考我的第一个分享 QCC74x SDK 的写法虽然复杂,但是每个example 都可以独立进入编译,而我这个项目需要修改顶层目录中的 CMakeLists.txt 文件,修改一个全局变量,有点麻烦。
多学习其他SDK的CMake写法,从实战中收获新知识。
-
回复了主题帖:
【2024 DigiKey 创意大赛】teensy4.1开发板学习
学习了,多谢分享
- 2024-10-29
-
回复了主题帖:
【2024 DigiKey 创意大赛】基于Raspberry Pi 5的植物生长监管系统—4、功能&接线
点赞