首页
游戏
影视
直播
广播
听书
音乐
图片
更多
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的硬盘
我的搜索
我的记录
我的文件
我的图书
我的笔记
我的书签
我的微博
Search
1
在IC617中进行xa+vcs数模混仿
81 阅读
2
科普:Memory Compiler生成的Register file和SRAM有何区别?
73 阅读
3
virtuoso和empyrean alps模拟仿真和混仿教程
73 阅读
4
后仿中$setup,$hold与$setuphold
44 阅读
5
文档内容搜索哪家强? 15款文件搜索软件横向评测
35 阅读
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
登录
Search
标签搜索
python
Docker
vscode
linux
systemverilog
vcs
STM32
PyQT
EDA
FPGA
gvim
cadence
Alist
xilinx
UVM
uos
macos
package
MCU
risc-v
bennyhe
累计撰写
378
篇文章
累计收到
31
条评论
首页
栏目
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
页面
游戏
影视
直播
广播
听书
音乐
图片
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的硬盘
我的搜索
我的记录
我的文件
我的图书
我的笔记
我的书签
我的微博
搜索到
3
篇与
的结果
2025-12-31
STM32MCU量产工具:STM32 Batch Programmer
写在最前面由于本人从事嵌入式开发(STM32方向),公司产品多数都为STM32芯片,面对批量芯片烧录工作实在麻烦(未送寄焊厂烧录),于是本人根据公司、同事及自己的想法,利用工作之余编写了STM32 Batch Programmer用于STM32的批量烧录管理软件。软件已经过一段时间的使用验证,其对芯片量产或者批量更改程序帮助非常大,故分享出Demo版本给大家使用(由于版权关系不得不发布Demo版),由于本人水平有限,其中bug在所难免,希望大家包涵,如有BUG或想法可以在评论中提出。STM32 Batch Programmer简介STM32 Batch Programmer是一款非常强大的STM32量产烧录软件,支持传统ISP(UART)与STLink(SWD模式)批量烧录。烧录功能除了程序烧录、全片擦除、读取验证、跳转运行这些最基本的功能之外,还支持多Hex程序拼接(如:APP程序段与IAP程序段拼接)、设置/关闭芯片读保护、芯片数据读取导出(仅限STLink)、STM32系列芯片Flash信息查询(查看Flash扇区分布、分析程序占用区)等拓展功能。操作系统支持:Windows 7 x64、Windows 10 x64;Windows XP\Windows 7 x86\Windows 10 x86(部分功能无法使用)。显示屏幕DPI支持: 低分辨率DPI:100%(1x) 125%(1x) ;高分辨率DPI:150%(2x) 175%(2x)。启动界面STM32 Batch Programmer的使用STLink烧录拖动HEX文件至HEX文件路径编辑框,点击所需的烧录参数,选择完成后单机装载参数,提示装载成功后,单击开始全部任务即开始烧录,窗口中显示各个设备的烧录进度信息,最多支持10个设备同时烧录(Demo版本最多支持2设备)。ISP(UART)烧录拖动HEX文件至HEX文件路径编辑框,点击所需的烧录参数,选择完成后单机装载参数,提示装载成功后,选择要进行烧录的端口,单击开始全部任务即开始烧录,窗口中显示各个设备的烧录进度信息,最多支持10个设备同时烧录(Demo版本最多支持2设备、限制波特率为57600)。MCU FLASH读取单击“读取FLSH”按钮即可读取STM32芯片FLASH(前提是FLASH未开启读保护),之后单击“保存文件”保存为HEX或BIN文件。查询MCU的FLASH信息设定MCU列表排序类型,选择查看到MCU系列,选择FLASH配置模式(STM32的FLASH部分型号拥有DUAL BANK配置模式),拖入HEX文件查看占用扇区,可多类型程序文件拼接。软件下载2020-09-25 V2.0.0.1 更新日志 修复BUG: 修复无法读取大于419430Byte(409KB)的文件,并提升最大读取文件大小为8MB 感谢尊重原创的你!V2.0.0.1 蓝奏云下载链接 (压缩包默认解压密码:SundayRX)V2.0.0.1 百度云下载链接提取码:7w6g (压缩包默认解压密码:SundayRX)————————————————版权声明:本文为CSDN博主「SundayRX」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_33212020/article/details/103422711
2025年12月31日
9 阅读
0 评论
0 点赞
2025-07-18
单片机中有FLASH为啥还需要EEPROM?
作者:无际单片机链接:https://www.zhihu.com/question/379251731/answer/2909256661来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。在网上搜了一些资料,看完以后还是不能理解透彻,直到项目做多了,才彻底搞懂。Flash和EEPROM都是非易失性存储器,就是你设备掉电重启后,数据还会保留,如果是RAM的话掉电数据直接就丢了。下面从几个方面去介绍下Flash和EEPROM的区别:1.读取方式Flash和EEPROM都采用随机读取,可以通过地址直接访问存储器中的数据。2.写入方式Flash和EEPROM的写入方式不一样,EEPROM可以按字节进行写入,而Flash通常需要按块进行写入。还有就是,在Flash中,要写入一个数据,需要先擦除一整个块,然后再将新数据写入该块。3.擦除方式Flash和EEPROM的擦除方式不一样,EEPROM可以按字节进行擦除,而Flash一般需要按块进行擦除。也就是说,在Flash中,要擦除一个数据,通常需要先擦除一整个块,然后再将该块中需要保留的数据重新写入,比EEPROM操作麻烦一些。4.擦写速度EEPROM的擦写速度比Flash慢得多,擦写速度会受到许多因素的影响,包括使用的存储器型号、使用的接口类型、写入和擦除的数据量、芯片温度等等。5.存储密度Flash比EEPROM的存储密度更高,可以存储更多的数据。6.寿命Flash和EEPROM的寿命长短取决使用方式、应用场景等等。一般来说,EEPROM的寿命可能会更长一些,因为它可以进行单独的字节单位的写入和擦除,而Flash需要进行整个页面或扇区的擦除。这意味着EEPROM可以更灵活地管理存储器,并减少对存储单元的擦写次数。但是,这并不意味着所有情况下EEPROM的寿命都会更长。7.价格Flash比EEPROM更便宜。8.通讯接口不同Flash很多是用SPI协议接口、EEPROM很多是IIC协议接口9.数据保护方式Flash具有硬件和软件保护功能,而EEPROM只有软件保护功能。10.总结Flash更适合存储代码和常量,就是不需要频繁更新、数据量大的场景,比如说音频数据、图片数据、程序等等。EEPROM适合存储需要频繁更新数据、数据量小的场景,比如系统参数配置等等。作者:无际单片机链接:https://www.zhihu.com/question/379251731/answer/2909256661来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2025年07月18日
1 阅读
0 评论
0 点赞
2025-07-04
CMSIS 到底是什么?
CMSIS 到底是什么?先来看看ARM公司对CMSIS的定义:ARM® Cortex™ 微控制器软件接口标准 (CMSIS) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。CMSIS 可实现与处理器和外设之间的一致且简单的软件接口,从而简化软件的重用,缩短微控制器开发人员新手的学习过程,并缩短新设备的上市时间。软件的创建是嵌入式产品行业的一个主要成本因素。通过跨所有 Cortex-M 芯片供应商产品将软件接口标准化(尤其是在创建新项目或将现有软件迁移到新设备时),可以大大降低成本。我们知道,不同厂家,比如FSL,ST,Energy Micro等不同厂家的内核都是使用Cortex M,但是这些MCU的外设却大相径庭,外设的设计、接口、寄存器等都不一样,因此,一个能够非常熟练使用STM32软件编程的工程师很难快速地上手开发一款他不熟悉的,尽管是Cortex M内核的芯片。而CMSIS的目的是让不同厂家的Cortex M的MCU至少在内核层次上能够做到一定的一致性,提高软件移植的效率。CMSIS的结构:CMSIS 包含以下组件:CMSIS-CORE:提供与 Cortex-M0、Cortex-M3、Cortex-M4、SC000 和 SC300 处理器与外围寄存器之间的接口CMSIS-DSP:包含以定点(分数 q7、q15、q31)和单精度浮点(32 位)实现的 60 多种函数的 DSP 库CMSIS-RTOS API:用于线程控制、资源和时间管理的实时操作系统的标准化编程接口CMSIS-SVD:包含完整微控制器系统(包括外设)的程序员视图的系统视图描述 XML 文件此标准可进行全面扩展,以确保适用于所有 Cortex-M 处理器系列微控制器。其中包括所有设备:从最小的 8 KB 设备,直至带有精密通信外设(例如以太网或 USB)的设备。(内核外设功能的内存要求小于 1 KB 代码,低于 10 字节 RAM)。框架看上去CMSIS-Core和CMSIS-DSP很好理解,但是CMSIS-RTOS不好理解,这玩意是干嘛的再看一张图吧:看了这张图的含义更清楚些,CMSIS-RTOS在用户的应用代码和第三方的RTOS Kernel直接架起一道桥梁,一个设计在不同的RTOS之间移植,或者在不同Cortex MCU直接移植的时候,如果两个RTOS都实现了CMSIS-RTOS,那么用户的应用程序代码完全可以不做修改。已经支持的MCU和工具链: 完整的CMSIS文档可以从ARM公司网站下载,大小有100多M字节。 如何使用CMSIS,需要哪些文件,以Freescale Kinetis L系列举例。独立于编译器的文件:● Cortex-M3内核及其设备文件(core_cm0.h + core_cm0.c)─ 访问Cortex-M0内核及其设备:NVIC等─ 访问Cortex-M0的CPU寄存器和内核外设的函数● 微控制器专用头文件(device.h) - MKL25Z4.h─ 指定中断号码(与启动文件一致)─ 外设寄存器定义(寄存器的基地址和布局)─ 控制微控制器其他特有的功能的函数(可选)● 微控制器专用系统文件(system_device.c) -- system_MKL25Z4.h + system_MKL25Z4 .c ─ 函数SystemInit,用来初始化微控制器--函数 void SystemCoreClockUpdate (void); 用于获取内核时钟频率─SystemCoreClock,该值代表系统时钟频率─ 微控制器的其他功能(可选)● 编译器启动代码(汇编或者C)(startup_device.s) - startup_MKL25Z4.s for Keil─ 微控制器专用的中断处理程序列表(与头文件一致)─ 弱定义(Weak)的中断处理程序默认函数(可以被用户代码覆盖)一、前言二、CMSIS标准三、CMSIS文件1、Include文件2、Source文件四、总结一、前言使用过ARM单片机的朋友肯定听说过CMSIS,可以说CMSIS是开启ARM单片机的金钥匙,是不是想到单片机的启动文件了呢,对的,启动文件只是CMSIS的一部分,你是不是跟我一样对它感到既熟悉又陌生呢?二、CMSIS标准CMSIS ( Cortex Microcontroller Software Interface Standard ),翻译过来是ARM Cortex™ 微控制器软件接口标准 。这个标准是谁提的呢?提的这个标准是用来干什么的呢?这里不得不说说ARM和STM32、TI这些公司的关系了,ARM 是一个做芯片标准的公司,它负责的是芯片内核的架构设计,而TI、ST这样的公司,他们并不做标准,他们是芯片公司,他们是根据 ARM 公司提供的芯片内核标准设计自己的芯片。所以,任何一个做 Cortex M3 芯 片 ,他们的内核结构都是一样的,不同的是他们的存储器容量, 片上外设 IO 以及其他模块的区别。标准是谁提的呢?ARM跟芯片厂商共同提出的,目的就是为了不同芯片厂商生产的Cortex-M3芯片能在软件上基本兼容,各芯片厂商就得按照这个标准去编写自己芯片内核的驱动程序,比如系统函数的命名、芯片初始化启动流程等;STM32的官方库(标准库、HAL库、LL库)就是按照这个标准写的。这个标准是用来干什么的呢?如下图它向下负责与内核和各个外设直接打交道,向上提供实时操作系统用户程序调用的函数接口。分为 3 个基本功能层:核内外设访问层:ARM 公司提供的访问,定义处理器内部寄存器地址以及功能函数。中间件访问层:定义访问中间件的通用 API, 也是 ARM 公司提供。外设访问层:定义硬件寄存器的地址以及外设的访问函数。三、CMSIS文件看完上面的介绍是不是已经晕菜了,看完跟没看一样没看到实际的代码。下面就打开任意一工程下的CMSIS,我以STM32F4xx为例,在路径 \CMSIS\Device\ST\STM32F4xx 下,有Include、Source两个文件,我们主要用到了这两个文件下的微控制器专用头文件、启动代码 。1、Include文件在该文件中主要使用了stm32f4xx.h 和 stm32f429xx.h(不同的芯片这个文件不同),如下图(1)在stm32f429xx.h 头文件包含了该芯片所有外设的寄存器定义和封装内存操作,直接操作这些寄存器就可以控制外设了,使用STM32任何型号的芯片都需要包含这个头文件。(2)在stm32f4xx.h中会根据芯片型号宏标识符(我这里是STM32F429xx )选择对应的头文件(stm32f429xx.h),如果定义了USE_HAL_DRIVER宏标识符,还会将HAL库外设驱动包含进来,具体包含关系为:2、Source文件在该文件中主要用到了 system_stm32f4xx.c、startup_stm32f429xx.s、stm32f429xx_flash.icf。如下图:startup_stm32f429xx.s启动文件的作用主要是进行堆栈的初始化,中断向量表以及中断函数定义等。会设置系统复位后,直接调用 SystemInit函数进行系统初始化。还有一个很重要的作用就是系统复位后引导进入 main函数。system_stm32f4xx.c主要是声明和定义了系统初始化函数 SystemInit 以及系统时钟更新函数 SystemCoreClockUpdate。SystemInit函数的作用是进行时钟系统的一些初始化操作以及中断向量表偏移地址设置,但它并没有设置具体的时钟值stm32f429xx_flash.icf定义了芯片的FLASH和RAM的起始和结束地址、以及大小STM32单片机的启动流程:四、总结CMSIS就是定义了一套芯片外设控制及编写规范的标准。我们在移植一个新的工程时,只需要修改添加:1、添加system_stm32f4xx.c、startup_stm32f429xx.s、stm32f429xx_flash.icf2、添加stm32f4xx.h3、修改全局宏标识 STM32F429xx
2025年07月04日
5 阅读
0 评论
0 点赞