上位机图像处理和嵌入式模块部署(mcu常见三种烧录方法)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        和单纯的windows上位机开发、嵌入式linux开发不一样,mcu的开发,是需要通过烧录器把编译好的镜像烧入到开发板里面的。这是很大的一个不同点。当然,除了烧录,一般它们还有仿真功能,可以用来进行debug调试使用。用类似keil的编译器编写代码、生成镜像文件,这一点都差不多,但是烧录这是mcu开发板特有的。因为像linux开发后期,基本就是ssh拷贝和粘贴了,没有烧录的流程了,windows qt开发就更不用说了。

        所以,我们购买开发板的时候一般都要购买一个烧录器。目前mcu的烧录器主要有三种,一种是st-link v2这种;一种是cmsis-dap这种,还有一种是jlink。实际的使用过程中应该如何来选择呢,我们简单聊一下。

1、下载电路

        这是实际mcu的下载电路,一般都是这个样子的。即电路中有四条线,一个是vcc 3.3,一个是gnd。这意味着,可以通过烧录器给开发板供电。另外两个就是dio和clk,一个是数据,一个是时钟,有点类似于iic。不管我们使用哪一种烧录器,连接的都是这四根线,各种烧录器的不同,本质上只是协议的不同而已。

2、sw-link v2烧录器

        sw-link v2是意法半导体公司推出来的烧录器。意法半导体可能大家不熟悉,但是它们家的stm32系列mcu,大家应该都用过。所以一般来说,只要是stm32系列的mcu,都可以使用这个烧录器进行版本烧录。而且,st-link v2现在某宝上面的价格非常便宜,十几块就可以买到。此外,st-link v2本身是需要额外安装驱动的,这一点稍微注意下。

3、cmsis-dap烧录器

        dap系列的烧录器,都是arm公司推出来的默认烧录器。这意味着,只要是arm系列的cpu,理论上都可以用这个烧录器进行版本烧录的,并且它是免驱动安装的。按照这个思路,相对于stm32而言,各路国产的arm系列mcu,比如说gd32,比如说普冉,比如说华大mcu系列,都可以使用这类烧录器进行版本烧录。电商网站上面的某火、某原子,推出来的大部分也是dap烧录器。

4、jlink烧录器

        jlink实现的是jtag协议,要说到jtag,那就非常悠久了,一般来说默认的soc、fpga、dsp等芯片都支持jtag,只要对应的jlink烧入相应的firmware固件即可。不仅如此,jlink还支持多种cpu,不仅是arm,还可以是mips、powerpc、riscv,所以jlink是使用范围最广的一类烧录器。就目前情况来说,国产的mcu大部分还是arm为主,只有某恒wch采用了risc-v cpu,所以理论上它也是可以通过jlink进行烧入的。mcu或者soc里面的jtag接口一般都是这样的,如下图所示,

        现在用的比较多的jlink,都是v9版本。如果正常走jtag接口,除了vcc、gnd之外,连接传统jtag的tck、tms、tdi、tdo四个pin即可。反之,jlink连接swd接口电路的时候,需要从20pin当中找出对应的swd接口,连接到开发板上。此外,有一个rst连线可接可不接。连接好之后,我们就可以把jlink转成swd,进行版本烧录了。当然,jlink也是需要进行驱动下载的。从arm烧录角度来说,dap能使用的地方,jlink也可以的。如果不是arm,像wch这种risc-v的情况,个人建议还是专门买一个官方的专业烧录器,或者用某原子的v-link烧录器,这样使用起来更方便一点。

        jlink转swd有现成的接法,主要就是3.3v、gnd、clk和dio。接好了之后,没有什么问题的话,就可以在keil里面看到jlink被识别到了,对应的arm cpu也被识别到了。

5、烧录算法

        烧录算法一般都是提前配置好的,在keil下面一般是依赖于某一个flm或者flx文件,目录在C:\Keil_v5\ARM\Flash下面。截图部分的话,就如下图所示,

6、总结

        大家实际使用mcu进行电路开发、固件开发的时候,如果只是使用stm32,那么买一个st-link v2就好了。如果是需要支持其他的国产arm mcu,这个时候可以再买一个cmsis-dap仿真器或者jlink仿真器即可。针对risc-v的mcu,单独买一个官方的或者第三方出品的仿真器就好了。

        当然不管是三种方法中的哪一种方法,最重要的是可以借助烧录模块识别到arm内核,这样才能进行后面的操作,不然后面的一起都无从谈起。

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

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

相关文章

STM32通用定时器的应用实例(基于STM32F103)

目录 概述 1 STM32Cube配置项目 1.1 准备环境 1.2 配置项目参数 1.3 生成Project 2 HAL函数 2.1 初始化函数:HAL_TIM_Base_Init 2.2 中断模式启动定时器函数:HAL_TIM_Base_Start 2.3 定时器回调函数: HAL_TIM_PeriodElapsedCallback…

ElasticSearch操作之重置密码脚本

ElasticSearch操作之重置密码脚本 #!/bin/bash # 使用样例 ./ES密码重置.sh 旧密码 新密码# 输入旧密码 es_old_password$1# 设置新的密码变量 es_password$2# 正确响应 es_reponse{"acknowledged":true}# 检查Elasticsearch是否在运行 if pgrep -f elasticsearch &g…

2024年5月计算机视觉论文推荐:包括扩散模型、视觉语言模型、图像编辑和生成、视频处理和生成以及图像识别等各个主题

我们今天总结下2024年5月发表的最重要的论文,重点介绍了计算机视觉领域的最新研究和进展,包括扩散模型、视觉语言模型、图像编辑和生成、视频处理和生成以及图像识别等各个主题。 Diffusion Models 1、Dual3D: Efficient and Consistent Text-to-3D Ge…

【C++题解】1697. 请输出n~1之间所有的整数

问题:1697. 请输出n~1之间所有的整数 类型:循环 题目描述: 从键盘读入一个整数 n ,请输出 n∼1 之间所有的整数,每行输出 1 个。 比如,假设读入 n5 ,输出结果如下: 5 4 3 2 1 输入&#xff1…

Java进阶学习笔记4——Static应用知识:代码块

代码块: 代码块是类的五大成员之一(成员变量、构造器、方法、代码块、内部类)。 Java类生命周期:加载、验证、准备、初始化、卸载。 代码块分为两种: 静态代码块: 格式:static {} 特点&…

SpringBoot 集成 Nebula

工作需求&#xff0c;开始了解图数据库&#xff0c;经过工具选型&#xff0c;最终选择nebula graph&#xff0c;并集成到springboot&#xff0c;java 环境下如何对 Nebula Graph 进行操作&#xff0c;本文整理下过程。 1、首先引入 pom 依赖 <dependency><groupId&g…

鸿蒙系统与OpenHarmony:中国科技行业的新动力与就业前景

背景 经历近年来的迅猛发展&#xff0c;鸿蒙原生应用数量已突破4000款&#xff0c;生态设备数量超过8亿台&#xff0c;开发者群体壮大至220万人。更为显著的是&#xff0c;鸿蒙系统在中国市场的份额已经超过了15%&#xff0c;稳居第三大操作系统&#xff0c;其生态之树已然枝繁…

探秘机器学习经典:K-近邻算法(KNN)全解析

在浩瀚的机器学习宇宙中,K-近邻算法(K-Nearest Neighbors,简称KNN)如同一颗璀璨的明星,以其简洁直观的原理和广泛的应用范围,赢得了众多数据科学家的喜爱。今天,让我们一起揭开KNN的神秘面纱,深入探讨它的运作机制、优缺点、应用场景,以及如何在实际项目中灵活运用。 …

23. 【Java教程】接口

本小节我们将学习 Java 接口&#xff08;interface&#xff09;&#xff0c;通过本小节的学习&#xff0c;你将了解到什么是接口、为什么需要接口、如何定义和实现接口&#xff0c;以及接口的特点等内容。最后我们也将对比抽象类和接口的区别。 1. 概念 Java 接口是一系列方法的…

PostgreSQL事务基础理解

PostgreSQL事务 事务是数据库管理系统执行过程中的一个逻辑单位&#xff0c;由一个有限的数据库操作序列构成。数据库事务通常包含一个序列对数据库的读和写操作&#xff0c;主要是包含以下两个目的&#xff1a; 为数据库操作序列提供一个从失败中恢复到正常状态的方法&#…

事务管理控制

文章目录 1. 事务的基本概念2. 数据库的并发控制2.1 事务调度2.2 并发操作带来的问题2.3 并发调度的可串行性2.4 并发控制技术2.5 两段锁协议2.6 多粒度封锁协议 3. 数据库的备份与恢复3.1 数据库系统故障3.2 数据库的备份3.3 数据库的恢复 4. 数据库的安全性与完整性4.1 数据库…

VMware虚拟机桥接无线网卡上网(WIFI)

一、打开VM点击【编辑】-【虚拟网络编辑器】 二、点击【桥接模式】- 点击【自动设置】- 选择自己的无线网适配器 - 【确定】 三、开机之后会弹出提示连接网络&#xff0c;就能看见网络已经连上了

网络变压器原理与维修视频

如果你在寻找网络变压器原理与维修方面的视频教程&#xff0c;可以在网上找一些优质的资料进行学习。一些国内外知名的教育和科技资源网站&#xff0c;如B站、优酷、YouTube等&#xff0c;都有涉及网络变压器原理和维修的视频教程&#xff0c;你可以在这些网站上进行搜索。 通常…

智慧之选:开源与闭源大模型的未来探索

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

淘宝订单系统ERP中如何接入平台订单信息?(订单API)

淘宝开放平台中有交易API&#xff0c;里面有各种关于交易的API接口。但是申报应用权限的审核流程严格又漫长。不少公司费时费力的申请后&#xff0c;结果还是没有审批下来。 调用淘宝自定义接口custom&#xff0c;可以实现淘宝开放平台API的调用。技术人员会根据您需要的接口做…

基于SpringBoot的网盘系统设计与实现

第1章 绪论... 1 1.1 研究背景与意义... 1 1.1.1 研究背景... 1 1.1.1 研究意义... 1 1.2 国内外研究现状... 2 1.2.1 国内研究现状... 2 1.2.2 国外研究现状... 3 1.3 论文组织架构... 4 第2章 关键技术介绍... 5 2.1 SpringBoot. 5 2.2 MySQL数据库... 5 2.3 MVC架…

Java进阶学习笔记2——static修饰成员变量

static&#xff1a; 叫静态&#xff0c;可以修饰成员变量、成员方法。 成员变量按照有无static修饰&#xff0c;分为两种&#xff1a; 类变量&#xff1a;有static修饰&#xff0c;属于类&#xff0c;在计算机中只有一份&#xff0c;会被类的全部对象共享。静态成员变量。 实…

【LeetCode】30.串联所有单词的子串

串联所有单词的子串 题目描述&#xff1a; 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如&#xff0c;如果 words ["ab","cd",&qu…

基金/证券项目如何进行非交易日数据补全(实战)

一些大数据开发的项目&#xff0c;特别是基金/证券公司的项目&#xff0c;都经常会涉及到交易日与非交易日的概念。 如果要让你对一张交易日跑批的主表&#xff0c;怎么去补全非交易日的数据呢&#xff1f; 在遇到这种情况的时候&#xff0c;我们要去怎么处理&#xff1f;来&…

webSocket+Node+Js实现在线聊天(包含所有代码)

这篇文章主要介绍了如何使用 webSocket、Node 和 Js 实现在线聊天功能。 重要亮点 &#x1f4bb; 技术选型&#xff1a;使用 Node.js 搭建服务器&#xff0c;利用 Express 框架和 Socket.io 库实现 WebSocket 通信。 &#x1f4c4; 实现思路&#xff1a;通过建立数组存储聊天…