Window10下配置Maxim SDK

news2024/7/6 17:33:02

参考网址:

微信(中文):【嵌入式AI开发&Maxim篇一】美信Maxim78000Evaluation Kit AI部署流程初探

GitHub:MaximAI_Documentation/MAX78000_Feather at master · MaximIntegratedAI/MaximAI_Documentation

下载地址

Software Download | Analog Devices

挺多安装包的,要费一段时间。

安装完成

建立一个新项目

打开Eclipse MaximSDK,并新建一个Pro

输入你的项目名称

“选择示例类型”可以是您感兴趣的任何固件示例。请注意,此处未列出特定于 CNN 的示例。CNN 示例必须通过下面介绍的不同机制导入。

如果您使用的是 PICO 调试器,请将适配器类型设置为MAX32625_PICO。如果您使用的是 Olimax 调试器,请将适配器类型设置为 CMSIS-DAP。

咱们好像提供的是CMSIS-DAP,可以打开自己的设备管理器看一下。

单击“完成”,Eclipse 将打开您的项目,您可以编辑、编译和调试。

然后点击 完成,你就可以看到你打开的历程 hello world

配置一个CNN项目

File->Import

Existing Projects into Workspace

然后NEXT,需要在 SDK 树中提供 CNN 示例的路径,如下图所示。路径将取决于 SDK 的安装位置。

Maxim SDK附带了许多卷积神经网络演示,可以导入到Eclipse中。这些固件示例可在SDK中的示例\MAX78000\CNN中找到。选择“文件”->“导入”,然后选择“常规>将现有项目放入工作区”。使用后续对话框,导航至示例\MAX78000\CNN并导入您感兴趣的所有固件项目。您可以在“实施例\MAX78000”目录中找到MAX78000的外设应用示例。

所有CNN示例都可以在MAX78000EVKIT上运行,但MAX78000FTHR目前并不支持所有CNN示例。以下是MAX78000 FTHR支持的示例列表:

  • cifar-10
  • cifar-100
  • mnist
  • mnist-riscv
  • mnist-streaming
  • kws20_v3
  • kws20_demo
  • faceid
  • faceid_demo
  • faceid_evkit
  • cats-dogs_demo
  • rps
  • snake_game_demo

我这里选择了kws20_demo,别问为什么,问就是我准备训练语音模型,看大神们都是这个名字的框架。

看到没,这就是你打开的一个CNN项目,等你训练好模型之后,应用逻辑开发就在这里进行。

而且生怕咱们不会玩,人家直接给了一个readme,教你怎么配置。

请注意,默认情况下,所有示例都以 EVKIT 为目标。要将目标更改为 FTHR,您必须通过 BOARD=FTHR_RevA。这可以在每个项目的基础上在 Eclipse 中完成,如下所示:

但是只到这一步是不行的,以固件为中心的方法允许您快速编译、修改和调试现有的 CNN 示例,但如果要修改 ML 模型或重新训练 ML 网络,则需要使用下一节中介绍的以 ML 为中心的方法。

而完成这个项目,咱们必须要训练自己的模型。

在MINGW 命令行 中编译SDK例子

SDK包括多个示例,用于演示MAX78000的特性,并展示API中各种功能的使用。每个示例都包括一个已配置为与评估板配合使用的生成文件。要构建一个示例,只需切换到包含该示例的目录并运行“make”。构建时,每个示例都会生成一个 max78000.elf(对于同时涉及 RISC-V 和 ARM 内核的项目,则为 max78000 组合.elf)文件,该文件可在该示例的“构建”目录中找到。

在视窗上,MSYS 外壳程序(包含在开发工具包中)可用于生成示例。启动“msys.bat”以启动外壳程序。可以从 Windows 的“开始”菜单或下面显示的默认安装目录中访问外壳程序。

按照步骤打开视窗,并尝试构建一个hello world的示例。

lenovo@LAPTOP-73SAFNNK MINGW64 ~
$ cd /E/MAX78000/MAXSDK/Examples/MAX78000/Hello_World/

lenovo@LAPTOP-73SAFNNK MINGW64 /E/MAX78000/MAXSDK/Examples/MAX78000/Hello_World

然后make,就可以构建完成,好家伙,我的一下子编译了这么长,和例子给的可不一样啊!

不过好在,最后想要的.elf得到了。

在OpenOCD 上烧录、运行、Debug编译好的固件

应用程序是使用 OpenOCD 和地理数据库加载、调试和运行的。本节介绍如何专门在 Windows 上使用 MSYS 执行此操作,但可以在 Linux 下使用非常相似的方法。

MAX78000FTHR具有集成的闪联调试器。咱们这次还玩 hello world:

  • 1.使用 USB 电缆将 FTHR 连接到主机 PC。窗口将枚举一个 daplink 设备和拇指驱动器设备。
  • 2.切换到OpenOCD目录,并使用以下命令启动OpenOCD:
openocd -f interface/cmsis-dap.cfg -f target/max78000.cfg -s/c/MaximSDK/Tools/OpenOCD/scripts
  • 3.连接成功之后,你就会看到下面的信息

然后我就失败了:经查询是OpenOCD的位置搞错了

经过调整:MAGOD!还是报错

openocd -f interface/cmsis-dap.cfg -f target/max78000.cfg -s e/MAX78000/MAXSDK/Tools/OpenOCD/scripts

这时我突然想起来,是不是固件我没有更新,第一步我把它跳过去了,本想保留它自带的DEMO玩几天呢,失算失算

MAX78000FTHR集成了MAX32625PICO(“PICO”)调试适配器。在开发之前,应将此调试器的固件更新到最新版本。这些更新包含确保调试器正常运行所需的 bug 修复和改进。

SO,下面进行调试器的固件更新先。

调试器的固件更新

1.下载max32625_max78000fthr_if_crc_v1.0.2.bin 链接在这里:this

2.把你手里的 开发板 先和 那个配套的USB 连上,注意:先不要和电脑连接!!!

3.按这个按钮,不要松手

4.保持按着这个按钮,把USB的另一端和你的电脑连起来,然后一直按着,直到红色的LED闪烁,然后一直亮着

5.这个时候,就可以松手了,然后看你的电脑,就会发现一个MAINTENANC驱动出现

6.把你刚下载的驱动直接拖进去

7.然后就搞定了,又重新变成了DAPLINK

8.打开这个文件,如果咱们两个的号一样,那就是更新好了,可以进行PICO debugger了

然后我试了试,发现板子里面的DEMO一样可以玩,这个步骤只是更新了一下调试的驱动,不影响。

继续上面的步骤:

  • 2.切换到OpenOCD目录,并使用以下命令启动OpenOCD:
openocd -f interface/cmsis-dap.cfg -f target/max78000.cfg -s e/MAX78000/MAXSDK/Tools/OpenOCD/scripts

还是不行,难搞,MINGW32下没有OPENCD这个命令

MINGW64下还是老问题,绝了

服了,还是路径问题。。。。。。e前面要加 / 因为不是c目录

 openocd -f interface/cmsis-dap.cfg -f target/max78000.cfg -s /e/MAX78000/MAXSDK/Tools/OpenOCD/scripts

3.打开一个新的窗口

4.使用下面两个命令进行GDB调试

arm-none-eabi-gdb max78000.elf
arm-none-eabi-gdb max78000-combined.elf

5.连接GDB与OpenOCD 复位MAX78000

target remote localhost:3333
monitor reset halt

6.加载并验证程序

load
compare-sections

7.复位并运行程序

monitor reset halt
c

Command

Short Command

Description

monitor halt

Halt the microcontroller.

monitor reset halt

Reset the microcontroller and immediately halt.

monitor max32xxx mass_erase 0

Mass erase the flash.

continue

c

Continue execution.

break <arg>

b <arg>

Set a breakpoint. Argument can be function_name, file:line_number, or *address.

print <variable>

p

Print the value of a variable. Variable must be in current scope.

backtrace

bt

Print contents of the stack frame.

step

s

Execute the next instruction.

next

n

Execute the next line of code.

finish

f

Continue to the end of the current function.

info reg

Print the values of the ARM registers.

help

Print descriptions for available commands

help <cmd>

Print description for given command.

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

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

相关文章

【回答问题】ChatGPT上线了!如何安装python-ipopt?python-ipopt有哪些用法?

如何安装python-ipopt&#xff1f; 要安装 python-ipopt&#xff0c;你需要先安装 Ipopt 库。这个库是用 C 编写的&#xff0c;所以你还需要安装一些 C 编译器。 在 Linux 系统上&#xff0c;你可以使用下面的命令来安装 Ipopt 和相关的依赖项&#xff1a; 复制 sudo apt-g…

excel成本统计:如何进行区域筛选,多条件求和?

最近有位小伙伴被一个计算产品成本的问题难住了&#xff0c;要求是根据配件成本核算出成品的成本。这个问题看上去似乎有点复杂&#xff0c;感觉一下子想不出好的解决办法&#xff0c;实际上&#xff0c;却非常简单&#xff0c;而且仅用常见的求和函数&#xff0c;就能轻松解决…

Mybatis源码分析(四)Mapper文件的解析

目录一 Mapper的使用二 MapperElement的解析三 解析cache-ref节点四 解析Cache节点五 解析ParameterMap节点六 解析ResultMap节点七 解析Sql节点八 处理各个数据库操作语句官网&#xff1a;mybatis – MyBatis 3 | 简介 参考书籍&#xff1a;《通用源码阅读指导书&#xff1a;M…

【每日一题】【LeetCode】【第一天】三数之和

三数之和的解决之路 题干表述 测试案列&#xff08;部分&#xff09; 第一次思路 这种其实是最暴力的&#xff0c;也是我脑海里第一个想到的最简单的方法了。 思路就是三个循环&#xff0c;一个循环去一个数&#xff0c;然后当三个下标不同&#xff0c;且对应的三个数相加为…

FPGA设计CPU书籍

一直以来CPU内部是绝大多数IT工程师难以触及的领域。纵使学习过计算机架构相关课程&#xff0c;自己动手实现CPU也始终遥不可及&#xff0c;因为这涉及计算机系统的最底层——芯片设计。 而近年来FPGA芯片产品的发展与普及打破了这一阻碍&#xff0c;利用内部电路可重编程的FPG…

【C++进阶】IO流

&#x1f387;C学习历程&#xff1a;入门 博客主页&#xff1a;一起去看日落吗持续分享博主的C学习历程博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 也许你现在做的事情&#xff0c;暂时看不到成果&#xff0c;但不要忘记&…

Docker进阶(中)

docker 进阶&#xff08;中&#xff09;docker提交镜像等命令docker 镜像原理docker 私有库&推送到私有库容器数据卷docker 安装常规软件docker提交镜像等命令 再这个谈这个docker 提交这个镜像之前我们先补充一下上一篇博客没有谈到的命令。再这里说一下。我们之前谈到的…

代码随想录算法训练营第六天 java :242.有效的字母异位词 349. 两个数组的交集 ,1. 两数之和

文章目录哈希表理论基础哈希碰撞&#xff1a; 拉链法和线性探测法线性探测法Leetcode242.有效的字母异位词题目链接思路AC代码Leetcode349. 两个数组的交集题目链接思路AC代码Leetcode 1. 两数之和题目链接思路与难点AC代码收获今日收获哈希表理论基础 哈希函数如下图所示&…

【C++】string (上)(string类的常用接口 string类对象的容量操作 string类对象的访问及遍历操作 string类对象的修改操作)

文章目录string标准库中的string类string类的常用接口string类对象的容量操作string类对象的访问及遍历操作string类对象的修改操作string string是一个专门管理字符数组的类。 标准库中的string类 string是表示字符串的字符串类该类的接口与常规容器的接口基本相同&#xff0…

计算机二级python考前复习笔记

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言程序设计风格&#xff1a;清晰第一&#xff0c;效率第二。结构化程序设计原则&#xff1a;自顶向下&#xff0c;逐步求精&#xff0c;模块化&#xff0c;限制使用goto语句&#xff08;Python无 goto 语句&#xf…

【回答问题】ChatGPT上线了!SLAM有哪些模型实现代码/案例/github源码?推荐10个以上比较好的SLAM深度学习模型?

目录SLAM有哪些模型实现代码&#xff1f;SLAM有哪些模型实现案例&#xff1f;SLAM有哪些模型的github源码&#xff1f;推荐10个以上比较好的SLAM深度学习模型&#xff1f;推荐10个以上比较好的SLAM深度学习模型github源码&#xff1f;SLAM有哪些模型实现代码&#xff1f; SLAM…

阿里云云数据库RDS的基本使用(二十三)

文章目录1.查看RDS数据库的基本信息2.查看RDS数据库的连接地址3.创建数据库账号并配置白名单3.1.创建数据库连接账号3.2.将ECS服务器添加到RDS白名单3.3.在ECS中登陆RDS数据库4.查看RDS数据库的监控5.查看RDS服务可用性6.查看RDS数据库的日志在RDS实例列表中点击管理即可跳转到…

ubuntu20驱动双屏问题总结

一、环境 设备&#xff1a;拯救者R7000P 显卡&#xff1a;NVIDA GeForce RTX 2060 系统&#xff1a;windows10ubuntu20的双系统下 显示器&#xff1a;笔记本显示器arzopa便携式显示器&#xff08;使用的type-c接口&#xff09; 驱动&#xff1a;nvidia-driver-520 二、问题…

【GO】K8s 管理系统项目[API部分--Service]

K8s 管理系统项目[API部分–Service] 1. 接口实现 service/dataselector.go // service type serviceCell corev1.Servicefunc(s serviceCell) GetCreation() time.Time {return s.CreationTimestamp.Time }func(s serviceCell) GetName() string {return s.Name }2. servic…

【C++】-- 海量数据处理

目录 位图 位图概念的引入 位图的实现 实现功能 开辟bit空间 数据输入set 数据删除reset 数据确认test 代码汇总 容器位图的衍生使用 布隆过滤器 布隆过滤器提出 布隆过滤器概念 ​布隆过滤器的实现 布隆过滤器的删除 布隆过滤器的特点 ​布隆过滤器的误判率 …

【电动车】基于削峰填谷的电动汽车多目标优化调度策略研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

计算机组成原理复习:计算机系统概述

1. 计算机系统概述 1.1 计算机系统的层次结构 &#xff08;1&#xff09; 硬件上&#xff0c;计算机系统可以分为五大功能部件&#xff1a; 运算器、控制器、存储器、输入设备、输出设备 将围绕其工作原理、逻辑实现、设计方法以及相互连接构成整机的方法展开 在典型的冯诺…

Android metaRTC6.0 编译指南

概述 metaRTC新版本优化了安卓系统支持&#xff0c;demo将C和C生成lib库&#xff0c;在lib库上提供了纯Java的webRTC推拉流demo。 demo支持软硬编解码&#xff0c;软编码为openh264&#xff0c;软解码为yangh264decoder&#xff0c;gpu编解码为mediacodec。 metaRTC android…

全长扩增子医学版新增内容来啦(一)

随着全长扩增子报告内容的扩充&#xff0c;医学版报告单的呼声越来越高&#xff0c;今天就给大家介绍一下凌恩生物针对医学客户&#xff0c;变更/新增了哪些报告内容~ 首先我们来看一下变更的内容吧&#xff01; CCA/RDA分析、PICRUSt2功能预测、随机森林-biomarker鉴定、随机…

多线程之Thread类常见方法及线程的状态

Thread类常见方法&#xff1a; 创建、启动线程、终止线程、线程等待、获取线程实例、线程休眠 1.关于如何创建线程&#xff0c;在专栏的上一篇文章已经谈到了有5中创建线程的方式。 2.启动线程&#xff08;t.start&#xff09;&#xff1a;调用 start 方法, 才在操作系统的底…