Jlink下载固件到RAM区

news2024/10/6 16:25:51

Jlink下载固件到RAM区

  • 准备批处理
    • 搜索exe批处理
    • 调用jlink批处理
    • 准备jlink脚本
  • 调用执行

环境:J-Flash V7.96g
平台:arm cortex-m3

准备批处理

搜索exe批处理

find_file.bat

@echo off

:: 自动识别脚本名和路径
set "SCRIPT_DIR=%~dp0"
set "SCRIPT_NAME=%~nx0"

:: 检查是否提供了正确的参数
if "%~1"=="" (
    echo Usage: %SCRIPT_NAME% file_name
    exit /b 1
)

set FIND_EXE_NAME=%~1

echo Using common paths "C:\Program Files (x86)" to search for %FIND_EXE_NAME%...
for /f "tokens=*" %%i in ('dir /a/b/s/on "C:\Program Files (x86)\*%FIND_EXE_NAME%"') do (
   echo result: "%%i"
   SET FIND_EXE_NAME_PATH=%%i
   goto :found
)
 
echo Using common paths "C:\Program Files" to search for %FIND_EXE_NAME%...
for /f "tokens=*" %%i in ('dir /a/b/s/on "C:\Program Files\*%FIND_EXE_NAME%"') do (
   echo result:  "%%i"
   SET FIND_EXE_NAME_PATH=%%i
   goto :found
)


rem 搜索其他盘
for /F "Skip=2" %%d in ('Wmic Logicaldisk Where "DriveType=3" Get Name') do (
   echo Using common paths %%d to search for %FIND_EXE_NAME%

   for /f "tokens=*" %%i in ('dir /a/b/s/on "%%d\*%FIND_EXE_NAME%"') do (
      echo result: "%%i"
      SET FIND_EXE_NAME_PATH=%%i
	  goto :found
   )
)

:found
echo Found %FIND_EXE_NAME% at %FIND_EXE_NAME_PATH%
goto :eof

调用jlink批处理

autodownload.bat

@echo off
setlocal enabledelayedexpansion

:: 自动识别脚本名和路径
set "SCRIPT_DIR=%~dp0"
set "SCRIPT_NAME=%~nx0"

:: 检查是否提供了正确的参数
if "%~1"=="" (
    echo Usage: %SCRIPT_NAME% path_to_bin_file load_address
    exit /b 1
)

if "%~2"=="" (
    echo Usage: %SCRIPT_NAME% path_to_bin_file load_address
    exit /b 1
)

:: 设置一个标志,看看可选的目录
::set "JLINK_PATH=C:\Program Files\SEGGER\JLink\JLink.exe"
set "JLINK_PATH="

:: 检查用户是否提供了可选的路径
if not "%~3"=="" (
   if exist "%~3\JLink.exe" (
       set "JLINK_PATH=%~3\JLink.exe"
   )
)

:: 常用文件夹搜索路径
if "%JLINK_PATH%"=="" (
	:: 调用搜索JLink.exe的模块
	call find_file.bat JLink.exe

	:: 检查JLINK_PATH环境变量是否已设置
	if not defined FIND_EXE_NAME_PATH (
	    echo ==not found==
		goto :found
	) else (
		SET JLINK_PATH=!FIND_EXE_NAME_PATH!
		goto :found
	)
)

:found
if "%JLINK_PATH%"=="" (
    echo JLink.exe not found. Please make sure JLink is installed and the executable is in your PATH.
    exit /b 1
)
echo Using JLink.exe at: %JLINK_PATH%

:: 复制flash_ram.jlink模板并替换占位符
set "JLINK_SCRIPT=%SCRIPT_DIR%flash_ram_temp.jlink"
copy /Y "%SCRIPT_DIR%flash_ram.jlink" "%JLINK_SCRIPT%"
powershell -Command "(Get-Content '%JLINK_SCRIPT%') -replace 'BIN_FILE_PATH', '%~1' -replace 'LOAD_ADDRESS', '%~2' | Set-Content -Path '%JLINK_SCRIPT%'"

:: 运行JLink命令脚本
"%JLINK_PATH%" -CommanderScript "%JLINK_SCRIPT%"

:: 删除临时脚本
del "%JLINK_SCRIPT%"

:: 运行JLink命令脚本
::"%JLINK_PATH%" -CommanderScript "%SCRIPT_DIR%flash_ram.jlink" "%~1" "%~2"

::禁用延迟扩展
endlocal

准备jlink脚本

flash_ram.jlink

// 通用 Cortex-M3 设备
device Cortex-M3
speed 4000
if SWD
si 1 // 选择SWD接口
r
h

// 将 .bin 文件加载到 RAM 区
//loadbin %1 %2
loadbin BIN_FILE_PATH LOAD_ADDRESS

// 复位并运行
r
g

// 退出
q

调用执行

# 脚本名 bin文件地址 需烧录RAM区域起始地址
.\autodownload.bat "C:\Users\gs\Desktop\xxx.bin" 0x10000000

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

开发者黑板报#65

第65期 AI 谷歌Gemini 终于,GPT-4独霸时代终结了! 过去一个月里,四款大模型横空出世,在各项关键基准测试中与GPT-4相匹敌,甚至更胜一筹。 谷歌Gemini 1.5突破100万个tokens,是GPT-4的近8倍&#xff0c…

【Docker】——安装镜像和创建容器,详解镜像和Dockerfile

前言 在此记录一下docker的镜像和容器的相关注意事项 前提条件:已安装Docker、显卡驱动等基础配置 1. 安装镜像 网上有太多的教程,但是都没说如何下载官方的镜像,在这里记录一下,使用docker安装官方的镜像 Docker Hub的官方链…

易舟云财务软件:开启云记账新时代

在数字化浪潮的推动下,财务管理正经历着深刻的变革。易舟云财务软件,作为一款引领时代的云记账平台,以其卓越的功能和便捷的操作,为企业带来了全新的财务管理体验。 云记账,财务管理的未来趋势 云记账,即基…

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十一章)模拟波形实验例程说明

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com) 适用于板卡型号: 紫光同创PG2L50H_MBG324开发平台(盘古PGX-Nano) 一:…

Shopify 如何实现 Sticky 功能

Shopify 如何实现 Sticky 功能 介绍 在网页设计中,Sticky 功能是一种常见的技术,它使得网页上的元素在滚动时保持固定位置。这对于创建吸引人的用户体验和提高网站的可用性非常重要。Shopify 作为一个流行的电商平台,提供了丰富的功能和工具…

基于PHP的奶茶商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的奶茶商城系统 一 介绍 此奶茶商城系统基于原生PHP开发,数据库mysql,ajax实现数据交换。系统角色分为用户和管理员。系统在原有基础上添加了糖度的选择。 技术栈 phpmysqlajaxphpstudyvscode 二 功能 用户…

双层循环和循环语句

echo 打印 echo -n 表示不换行输出 echo -e 表示输出转义字符 echo \b 相当于退格键(backspace) echo \n 换行,相当于回车 echo \f 换行,换行后的新行的开头连着上一行的行尾 echo \t 相当于tab健 (…

回归洛伦兹变换

现在再回到洛伦兹变换, 将其写成上角标表示惯性系的形式(注意不是幂次), 并且认为洛伦兹变换中的两个方程的比例常数, 并不仅仅是因为虚数单位数量巨大导致的“误判”,虽然这也是说得通的。因为我们已经看到…

APP自动化测试-Appium常见操作之详讲

一、基本操作 1、点击操作 示例:element.click() 针对元素进行点击操作 2、初始化:输入中文的处理 说明:如果连接的是虚拟机(真机无需加这两个参数,加上可能会影响手工输入),在初始化配置中…

外汇天眼:盈透证券为客户提供更丰富的欧洲衍生品交易渠道

电子交易巨头盈透证券(纳斯达克代码:IBKR)今日宣布,通过Cboe欧洲期权交易所(CEDX)新增欧洲股票期权和欧洲指数期货及期权。这一新增功能使得盈透证券的客户可以在单一统一平台上,除了股票、期权…

vivado SITE

描述 SITE是一个设备对象,表示许多不同类型的逻辑资源之一 可在目标Xilinx FPGA上获得。 SITE包括SLICE/CLB,它们是基本逻辑元件(BEL)的集合,如 查找表(LUT)、触发器、多路复用器,携…

【课程系列05】某心科技AI大模型微调实战营-应用篇

网盘链接 链接: https://pan.baidu.com/s/1oARULXsXn8frkqq4ZKHBLA --来自百度网盘超级会员v6的分享 课程收获 课程内容涉及大模型的介绍、Transformer、Encoder、高级微调技术、Alpaca、AdaLoRA、QLoRA、Prefix Tuning和Quantization等主题 课程截图

http缓存及http2配置

http缓存及http2配置极大提高了网页加载得速度 1.1 nginx安装 首先是需要安装nginx 去官网下载windows版本的安装包 nginx 命令 nginx start //启动 nginx -s stop nginx -s reload // 重新运行 tasklist /fi "imagename eq nginx.exe" //进程 把打包好的文件copy…

机器学习课程复习——ANN

Q:ANN? 基本架构 由输入层、隐藏层、输出层等构建前馈/反馈传播 工作原理 先加权求和:每个神经元的输出是输入加权和的激活再送入激活函数:激活函数的存在使得其能够拟合各类非线性任务 联想:像adaboosting的加权求…

音视频入门基础:H.264专题(1)——H.264官方文档下载

音视频入门基础:H.264专题系列文章: 音视频入门基础:H.264专题(1)——H.264官方文档下载 音视频入门基础:H.264专题(2)——使用FFmpeg命令生成H.264裸流文件 音视频入门基础&…

【全网最全最详细】JavaSE基础面试题(下)

二十七、什么是BIO、NIO、AIO? BIO(Blocking I/O):同步阻塞I/O,是JDK1.4之前的传统IO模型。线程发起IO请求后,一直阻塞,直到缓冲区数据就绪后,再进入下一步操作。 NIO(Non-Blocking I/O):同步非阻塞I/O,线程发起I/O请求后,不需要阻塞,立即返回。用户线程不原地等…

springboot集成积木报表,怎么将平台用户信息传递到积木报表

springboot集成积木报表后怎么将平台用户信息传递到积木报表 起因是因为需要研究在积木报表做数据筛选的时候需要拿到系统当前登录用户信息做筛选新的模块 起因是因为需要研究在积木报表做数据筛选的时候需要拿到系统当前登录用户信息做筛选 官网有详细介绍怎么集成进去的&…

error: ‘LocalParameterization’ is not a member of ‘ceres

一、错误提示: 对于以下报错: error: ‘LocalParameterization’ is not a member of ‘ceres’ error: ‘quatParam’ was not declared in this scope error: expected type-specifier 二、背景: 我是在Ubuntu20.04下,运行…

【diffusers 极速入门(二)】如何得到扩散去噪的中间结果?Pipeline callbacks 管道回调函数

本文是对 Hugging Face Diffusers 文档中关于回调函数的翻译与总结,: 管道回调函数 在管道的去噪循环中,可以使用callback_on_step_end参数添加自定义回调函数。该回调函数在每一步结束时执行,并修改管道属性和变量,以…

小米SU7遇冷,下一代全新车型被官方意外曝光

不知道大伙儿有没有发现,最近小米 SU7 热度好像突然之间就淡了不少? 作为小米首款车型,SU7 自上市以来一直承载着新能源轿车领域流量标杆这样一个存在。 发售 24 小时订单量破 8 万,2 个月后累计交付破 2 万台。 看得出来限制它…