Air001基于Keil环境开发,使用airisp串口命令行烧录

news2024/11/25 1:43:23

Air001基于Keil环境开发,使用airisp串口命令行烧录


  • 有人会有这样的疑惑,使用Keil平台开发,为什么不直接使用CMSIS-DAP直接烧录,还要使用串口方式来去单独烧录,不是我不想,目前使用合宙官方的Air103芯片版本的DAP-LINK v2烧录器对该Air001芯片烧录兼容性不如意,在使用DAP-LINK在烧录时,频繁出现烧录报错弹窗提示的情况。而使用airisp串口烧录不存在这个问题。
  • 📑AirISP 烧录工具下载和介绍:https://arduino.luatos.com/airisp/
.\AirISP -h
Description:
  AirISP 是一个flash烧录工具

Usage:
  AirISP [command] [options]

Options:
  -c, --chip <chip>                      目标芯片型号,auto/air001
  -p, --port <port>                      串口名称
  -b, --baud <baud>                      串口波特率
  -t, --trace                            启用trace日志输出 [default: False]
  --connect-attempts <connect-attempts>  最大重试次数,小于等于0表示无限次,默认为10[default: 10]
  --before <before>                      下载前要执行的操作 [default: default_reset]
  --after <after>                        下载后要执行的操作 [default: hard_reset]
  --version                              Show version information
  -?, -h, --help                         Show help and usage information

Commands:
  chip_id                           获取芯片ID
  get                               获取ISP版本和支持的命令列表
  get_version                       获取ISP版本和芯片读保护状态
  write_flash <address> <filename>  向flash刷入固件
  read_unprotect                    关闭读保护
  read_protect                      开启读保护

  • 📌具体的下载地址:https://github.com/Air-duino/AirISP/releases/tag/1.2.6.0

📋DAP-LINK烧录报错信息

在这里插入图片描述

Programming Failed!
Cannot access Memory (@ 0xe000edf0, Read, Acc Size: 4 Byte)
Error: Flash Download failed - "Cortex-M0+"

🔖具体的原因,不知道是芯片自身的问题还是烧录器固件的问题。

🛠在Keil中ASF转BIN文件实现方法

  • 🌿在Keil软件界面-target设置-User选项
    在这里插入图片描述
  • 🍁根据个人安装Keil软件路径,调整下面的命令行:
C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe  --bin -o  ./Objects/Serial_printf.bin  ./Objects/Serial_printf.axf
    • C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe这是要调用的程序位置
    • --bin -o ./Objects/Serial_printf.bin 这是需要生成的目标文件名以及文件位置。
    • ./Objects/Serial_printf.axf 这是要转换的原始目标文件名以及文件位置。
  • 🚩注意勾选对应的选项:
    在这里插入图片描述
  • 🔧添加好命令行后,程序编译即可生成所需的BIN文件。
    在这里插入图片描述
    在这里插入图片描述

📐HEX转BIN方法实现以及工具

  • 🌿HEX转BIN工具使用的是 安富莱电子开源项目中所提供的转换工具:https://gitee.com/armfly/H7-TOOL_STM32H7_App/tree/master/Project/MDK-ARM(uV5)
    在这里插入图片描述
  • 🌿下载下来就是这个工具:
    在这里插入图片描述
  • 🔨修改一下CopyHex_h7_tool.bat后缀的批处理文件内容就可以直接使用了
copy Objects\Serial_printf.hex ..\app0.hex

hex2bin ..\app0.hex

    • 🎋copy Objects\Serial_printf.hex拷贝相对路径下的.hex到hex2bin软件的上一层目录下并重新命名为app0.hex
    • 🎋 hex2bin ..\app0.hex 执行该文件转BIN文件。
  • 🌿双击执行.bat批处理即可生成。生成的为止在上一层目录,这个具体位置可以自己修改批处理内容来定。
    在这里插入图片描述

🏳‍🌈使用airisp串口命令行烧录

  • 📍工具下载地址:https://github.com/Air-duino/AirISP/releases/latest

  • 🌿个人调用的是Arduino安装的Air001固件自带的airisp进行烧录。

  • ⚡使用此方法,需要提前让Air001进入ISP模式。(https://wiki.luatos.com/chips/air001/mcu.html#id4
    在这里插入图片描述

  • 🌿新建一个批处理来执行对应的烧录命令。

cmd /k "C:\Users\Administrator\AppData\Local\Arduino15\packages\AirM2M\tools\AirISP\1.2.5.0/AirISP.exe --chip "auto" --port COM5 --baud 115200 --before default_reset --after hard_reset write_flash -e -p 0x08000000 "D:\HEZHOU\luatos-soc-air001-master\luatos-soc-air001-master\ModuleDemo\USARTx/app0.bin"
    • C:\Users\Administrator\AppData\Local\Arduino15\packages\AirM2M\tools\AirISP\1.2.5.0/AirISP.exe 所调用的程序位置。
  • --chip "auto" 自动识别目标芯片。
  • --port COM5 连接电脑的串口工具端口号。
  • --baud 115200 烧录时选择的波特率。
  • --after hard_reset write_flash -e -p 0x08000000 烧录地址。
  • D:\HEZHOU\luatos-soc-air001-master\luatos-soc-air001-master\ModuleDemo\USARTx/app0.bin 烧录目标文件位置
  • 🔖具体的命令行参考上面的源码文档相关信息。

在这里插入图片描述

  • 🌿执行批处理或者使用CMD直接调用命令行:
    在这里插入图片描述

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

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

相关文章

SAP采购订单“交货已完成”勾选后仍可收货的原因分析及解决方案

在SAP MM模块项目实施中&#xff0c;很多用户对采购订单中“交货已完成”这个字段&#xff08;如下图&#xff09;的功能用途存在困惑。 比如&#xff1a;上图采购订单100个&#xff0c;已收货50个&#xff0c;另外50个因为质量或其它原因不需要供应商再交货&#xff0c;很多用…

echarts 图表设置 滚动条

效果图&#xff1a; 代码实现&#xff1a; 第一种方式&#xff1a; 通过 dataZoom 属性缩放进行配置滚动条。 //给x轴设置滚动条 dataZoom: [{start:0,//默认为0end: 100-1500/31,//默认为100type: slider,show: true,xAxisIndex: [0],handleSize: 0,//滑动条的 左右2个滑…

途乐证券-最准确的KDJ改良指标?

KDJ目标是技术剖析的一种重要目标之一&#xff0c;它是利用随机目标&#xff08;%R&#xff09;发展而来的&#xff0c;是一种反映商场超买和超卖状况的买卖目标。KDJ目标由快线&#xff08;K线&#xff09;、慢线&#xff08;D线&#xff09;和随机值&#xff08;J线&#xff…

【UE4 RTS】10-RTS HUD Setup

前言 本篇博文主要制作了一个控件蓝图界面&#xff0c;用于显示当前的游戏时间 效果 步骤 1. 新建一个名为“Widgets”的文件夹 在该文件夹中新建一个控件蓝图&#xff0c;命名为“GameTime_HUD” 打开“GameTime_HUD”&#xff0c;添加如下控件 2. 打开玩家控制器“RTS_Pla…

c++雅兰亭库 (yalantinglibs) 介绍及使用(序列化、json和结构体转换、协程)

雅兰亭库(yalantinglibs)介绍 雅兰亭库&#xff0c;名字很优雅&#xff0c;也很强大。它是阿里开源的一个现代C基础工具库的集合, 现在包括 struct_pack, struct_json, struct_xml, struct_yaml, struct_pb, easylog, coro_rpc, coro_io, coro_http 和 async_simple等功能, 也…

斗象科技-2023攻防演练必修高危漏洞集合下载(2个版本)

高危风险漏洞一直是企业网络安全防护的薄弱点&#xff0c;也成为HW 攻防演练期间 红队的重要突破口&#xff1b;每年HW 期间爆发了大量的高危风险漏洞成为红队突破网络 边界防护的一把利器&#xff0c;很多企业因为这些高危漏洞而导致整个防御体系被突破、 甚至靶标失守而遗憾出…

TepeScript 问题记录

问题 对object的所有属性赋值或清空&#xff0c;提示类型错误不能赋值 type VoiceParams {_id?: string | undefined;name: string;sex: string;vc_id: string;model_url: string;preview_url: string;isPrivate: boolean;visible: boolean; }const formData reactive<V…

AI绘画网站都有哪些比较好用?

人工智能绘画网站是一种利用人工智能技术进行图像处理和创作的网站。这些绘画网站通常可以帮助艺术家以人工智能绘画的形式快速生成有趣、美丽和独特的绘画作品。无论你是专业的艺术家还是对人工智能绘画感兴趣的普通人&#xff0c;人工智能绘画网站都可以为你提供新的创作灵感…

痛点缠身的科沃斯!如何重回“扫地茅”?

一度被称为扫地机器人代名词的“扫地茅”科沃斯&#xff0c;尽管仍处于头部阵营的头部&#xff0c;但是从多个角度来看&#xff0c;科沃斯的现状却也称得上是痛点缠身。 而对于这个曾经将扫地机产品带入国内大众视野、完成了用户认知培养的领跑者&#xff0c;到底应该如何去直…

ddia(3)----Chapter3. Storage and Retrieval

However, first we’ll start this chapter by talking about storage engines that are used in the kinds of databases that you’re probably familiar with: traditional relational databases, and also most so-called NoSQL databases. We will examine two families o…

【C语言学习】函数原型

函数原型 代码一 #include<stdio.h> void sum(int begin, int end) {int i;int sum 0;for(ibegin; i<end; i){sum sum i;}printf("%d到%d的和是%d\n", begin, end, sum); }int main() {sum(1,10);sum(20,30);sum(40,50);return 0; }代码二&#xff08;函…

Camunda 7.x 系列【12】创建流程引擎

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. ProcessEngine2. 创建流程引擎2.1 Java API2.2 XML 配置2.3 Spring2.4 Spring Boot1. Pr…

大专非科班转码成功自白

大专非科班转码成功自白 文章目录 大专非科班转码成功自白初步学习进阶学习提供阶段面试阶段总结 2023年是博主从业18年以来找工作最难的一年。但程序员这个行业还是被很多毕业生青睐。就业相对比较好&#xff0c;收入相对比较高&#xff0c;虽然面临996&#xff0c;依然给很多…

外来jar包运行项目,更换部分文件重新压缩成jar包部署运行

跟公司一个外部支援同事合作开发&#xff0c;发包版本在他那里&#xff0c;功能开发工作我来做&#xff0c;可能是因为我是后来加入的&#xff0c;他不想把代码交到公司来&#xff0c;每次要发布新版本急于测试&#xff0c;联系他发包一直不回复消息&#xff0c;打电话也不接&a…

面试易考:多线程模式下的单例模式两种具体实现(饿汉,懒汉),两个的线程安全性,阻塞队列,生产者消费者模型

补充&#xff1a;synchron(锁对象&#xff09;&#xff1a;给对象里面做了一个标记&#xff0c;每个对象&#xff0c;除了代码中写的属性外&#xff0c;此外还有一部分空间&#xff0c;存储的是标志位&#xff0c;这个标志位相当于是加锁&#xff0c;当这一位被标记加锁之后&am…

项目实战 — 消息队列(7){虚拟主机设计(2)}

目录 一、消费消息的规则 二、消费消息的具体实现方法 &#x1f345; 1、编写消费者类&#xff08;ConsumerEnv&#xff09; &#x1f345; 2、编写Consumer函数式接口&#xff08;回调函数&#xff09; &#x1f345; 3、编写ConsumeerManager类 &#x1f384;定义成员变…

Linux系统下安装配置 Nginx 超详细图文教程

Linux系统下安装配置 Nginx 详细教程介绍 一、下载 Nginx 安装包 打开Nginx官网 &#xff1a;http://nginx.org/en/download.html 然后我们找到一个版本&#xff0c;把鼠标移动到上面&#xff0c;右键 - 复制链接地址 我们使用 wget 命令把Nginx安装包下载到/usr/local/目录中…

微信小程序实现当前页面更新上一个页面

日常项目中需要实现的一个价格脱敏功能&#xff1a;通过点击页面二中的查看完整信息 点击回退按钮实现页面一中的价格显露出来 通过查询了大量资料发现 大多数都是通过调用上一个接口的onload 或者onshow 实现视图更新 经测试后 发现 无法实现 只能更改数据 无法更新视图 实现…

shell脚本条件测试语句,if,case

shell脚本条件测试语句&#xff0c;if&#xff0c;case 一.条件测试1.1test命令1.2文件测试1.2.1文件测试常见选项 1.3数值比较1.4字符串比较1.5逻辑测试 二.if语句2.1单分支结构2.3多分支 三.case语句 一.条件测试 1.1test命令 测试特定的表达式是否成立&#xff0c;当条件成…

InVEST模型使用

第一天&#xff1a; 1. 生态系统服务理论联系实践案例讲解 2. InVEST模型的开发历程、不同版本的差异及对数据需求的讲解 3. InVEST所需数据的要求&#xff08;分辨率、格式、投影系统等&#xff09;、获取及标准化预处理讲解 4. InVEST运行常见问题及处理解决方法讲解 5.…