电子工程应用记录

文章目录

  • 0. 一些不错的学习平台&工具
  • 1. keil MDK - 单片机开发软件
    • 1.1 安装与配置
    • 1.2 新建工程
      • 1.2.1 在keil中新建工程
      • 1.2.2 配置工程文件夹
      • 1.2.3 在Keil中配置工程文件
      • 1.2.4 其他配置
      • *(H7) 创建工程文件夹
      • *(H7) 创建新工程
      • *(H7) 添加工程文件
    • 1.3 常用设置
      • 1.3.1 多核并行编译
      • 1.3.2 字体设置
      • 1.3.3 语法提示
      • 1.3.4 护眼主题
    • 1.4 Configuration选项卡简介
      • 1.4.1 解决中文乱码
    • 1.5 驱动安装、配置、程序烧录下载与常见问题
      • 1.5.1 JLNK一般配置与常见问题
      • 1.5.2 JLINK 驱动安装
      • 1.5.3 CH340驱动安装(RS232转USB芯片)
      • 1.5.4 【异常】芯片被锁程序不能烧录
      • 1.5.5 【异常】开发板例程下载后程序不能烧录
      • 1.5.6 使用J-Flash ARM 软件下载程序
      • 1.5.7 `.bin` 文件生成
    • 1.6 Bootloader程序设置
    • 1.7 其他异常记录与解决方案
      • 1.7.1 烧录程序时缺少MCU 的flash 算法
      • 1.7.2 注释输入中文变问号
      • 1.7.3 ⚠常见编译 Warning & Error
      • 1.7.4 工程打开卡死
      • 1.7.5 程序下找报错 "Flash Download failed"
      • 1.7.6 error: #268:declaration may not appear after executable statement in block
      • 1.7.7 退出调试报错
    • 1.8 在特定格式文件内搜索全部关键字内容
    • 1.9 Option for Target选项卡简介
      • 1.9.1 Target
      • 1.9.2 Output
      • 1.9.3 Listing
        • 1.9.3.1 MAP文件
      • 1.9.4 User
        • 1.9.4.1 生成 `.bin`文件
      • 1.9.5 C/C++
      • 1.9.6 Debug
      • 1.9.7 Utilities
    • 1.10 仿真/调试模式
      • 1.10.1 调试界面
      • 1.10.2 参数监控界面
      • 1.10.3 调试时间监控
    • 1.11 ARM开发工具指南 - help
  • 2. STC-ISP - STC芯片烧录/代码编写工具
    • 2.1 hex文件烧录
    • 2.2 向Keil中添加STC51芯片包(Device)
  • 3. SecureCRT - 串口终端仿真软件
    • 3.1 在设备管理器中更改串口号
  • 4. MProg - EEPROM编程器
    • 4.1 给FT232R芯片烧录串口号
  • 5. RS485(Modbus协议)调试软件
  • 6. SEGGER J-Flash ARM - J-Link程序烧录工具
  • 7. CAD
    • 7.1 综合
      • 7.1.1 图层管理
      • 7.1.2 英制公制转换(单位设置)
      • 7.1.3 对象捕捉
    • 7.2 打印
      • 7.2.1 选中打印
    • 7.3 标注(量尺寸)
  • 8. STM32芯片Hex文件烧录器(脱机)
    • 8.1 Hex文件下载到脱机
    • 8.2 程序下载到MCU
  • 9. CAM350 —— Gerber 软件
    • 9.1 Gerber导出CAD DXF格式文件
    • 9.2 修改显示单位
  • 10. PCB特征阻抗计算工具 —— Polar si9000
  • 11. FPGA开发工具——Quartus II
    • 11.1 USB烧录器——USB-Blaser安装
  • 12. 串口调试助手 - SSCOM
    • 12.1 保存窗口参数到本地
    • 12.2 利用SSCOM 做循环测试Loop
  • 13. 电子元器件规格书相关
    • 13.1 术语详解
    • 13.2 规格书&Demo下载&参考
  • 14. 嘉立创EDA
    • 14.0 综述
        • 14.0.1 工程添加成员
    • 14.1 设计
      • 14.1.1 图纸预设
    • 14.2 放置
      • 14.2.1 敷铜
      • 14.2.2 挖槽
    • 14.3 编辑
      • 14.3.1 吸附/捕捉
    • 14.4 视图
      • 14.4.1 翻转板子
    • 14.5 文件
      • 14.5.1 导入AD 导出的封装库
      • 14.5.2 导入CAD
  • 15. 汇总常用的各种硬件接口/端口及各个引脚代表的含义
  • 16. 芯片丝印反查
  • 17. 正点原子手持数字示波器DS100
  • 18. Gitcode
    • 18.1 新建一个代码项目并上传代码
  • 19. 虚拟机 - VMware
    • 19.1 下载与安装
    • 19.2 安装ubuntu
    • 19.3 把VMware 虚拟机从一台电脑复制到另一台电脑
    • 19.4 建立主机与虚拟机之间的共享文件夹
    • 19.5 给虚拟机扩展磁盘空间
    • 19.6 linux 系统连接主机无线接收器(wifi)
  • 20. 树莓派安装Ubuntu 系统
  • *. 参考&收藏

0. 一些不错的学习平台&工具

  1. 中国大学MOOC
  2. 万能的B 站
  3. STM32 MCU开发者社区
  4. CSDN 极术社区
  5. CSDN 社区
  6. STC 官网
  7. Digi-Key 得捷电子论坛
  8. 原子哥平台
  9. PCB 联盟网
  10. 凡亿PCB
  11. 在线仿真网站
  12. 单位转换在线网站
  13. 公式编辑器Mathtype 中文站

1. keil MDK - 单片机开发软件


1.1 安装与配置

参考:https://blog.csdn.net/ChenGuiGan/article/details/80218875
pj software

  1. 到keil 官网或官网下载链接下载MDK 版本 keil 并安装(需要账号登陆);

安装时的几个注意事项:

  1. 安装路径要是全英文
  2. 多个Keil 版本(如MDK、C51) 不要安装在同一个路径上
  1. 百度下载keil zhucheji(见上 pj software 链接);
  2. 右击管理员身份打开安装好的 keil - File - LicenseManagement - 复制 CID 序列号;
    电子工程应用记录_第1张图片
  3. 打开keil zhucheji,把复制的序列号粘贴到CID 中,Target 选 ARM,下拉选择MDK Professional,点Generate,复制生成的序列号;

若出现报错..\OBJ\RS485.axf: error: L6047U: The size of this image (33920 bytes) exceeds the maximum allowed for this version of the linker是没pj 成功,换个对应版本的pj 软件试一试;

电子工程应用记录_第2张图片
5. 回到keil,把复制的序列号粘贴到LIC 区域,点Add LIC;
电子工程应用记录_第3张图片
6. 芯片对应支持包的安装(芯片包):

  • 方法一:回到keil 界面,点击pack installer,直接安装对应的STM32 芯片包;
    在这里插入图片描述
  • 方法二:若上部没显示STM32 的包或连不上网络,可到官网 https://www.keil.com/dd2/ - Software Packs 下载;
    找到对应芯片包下载安装,如STM32F103ZE;
    电子工程应用记录_第4张图片
    点击Download;
    电子工程应用记录_第5张图片

以上建议复制下载链接到迅雷下载

双击安装,或在keil的Pack Installer中点击File - Import进行包导入;
电子工程应用记录_第6张图片
安装完成后,返回keil5 MDK中的device页面查看是否安装成功;
电子工程应用记录_第7张图片

这里提供STM32H7系列的 Pack包,如果网络不佳的伙伴可以借道获取:Keil STM32H7系列芯片Pack 包

1.2 新建工程

参考:使用MDK5创建Cortex-M应用指南-中文版
详见开发指南:新建基于固件库的 RVMDK 工程模板一节。

1.2.1 在keil中新建工程

在Keil中新建一个工程,选择STM32芯片
电子工程应用记录_第8张图片
电子工程应用记录_第9张图片

1.2.2 配置工程文件夹

当然,可以直接复制开发板附送的工程模板进行使用。
电子工程应用记录_第10张图片

  • 在工程目录下面,新建 3 个文件夹 CORE, OBJ、STM32F10x_FWLib. 其中:

    • CORE 用来存放核心文件和启动文件。
    • OBJ 是用来存放编译过程文件以及 hex 文件。
    • STM32F10x_FWLib 文件夹用来存放 ST 官方提供的库函数源码文件。
    • 已有的 USER 目录除了用来放工程文件外,还用来存放主函数文件 main.c,以及其他包括 system_stm32f10x.c 等等。
  • 将官方的固件库包里的源码文件复制到工程目录文件夹下面。打开官方固件库包,定位到之前准备好的固件库包的目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面,将目录下面的 src,inc 文件夹复制到刚才建立的 STM32F10x_FWLib 文件夹下面。其中src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件。

  • 将固件库包里面相关的启动文件复制到工程目录 CORE文件夹下。打开官方固件库包,定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 中,将文件 core_cm3.c和文件 core_cm3.h 复制到 CORE 文件夹中 。 然 后 定 位 到 目 录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 下面,将里面的startup_stm32f10x_hd.s (根据不同芯片选择)文件复制到 CORE 文件夹中。

不同容量的芯片使用不同的启动文件,比如芯片 STM32F103ZET6 是大容量芯片,所以选择启动文件startup_stm32f10x_hd.s。

  • 定位到目录:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下面将里面的三个文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的 USER目录之下。然后将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下面的 4 个 文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 复制到 USER 目录下面。

1.2.3 在Keil中配置工程文件

  • 新建Keil工程后,点击菜单栏上的品字图标(Manage Components),Project Targets 一栏,将 Target 名字修改为项目名,然后在 Groups 一栏删掉一个 Source Group1,分别建立USER,CORE,FWLIB. 点击 OK. 电子工程应用记录_第11张图片
  • 往 Group 里面添加需要的文件。 选择需要添加文件的 Group,这里第一步选 择 FWLIB , 然 后 点 击 右 边 的 Add Files, 定位到刚才建立的目录STM32F10x_FWLib/src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close. 可以看到 Files 列表下面包含已添加的文件。

注:对于工程代码,如果只用到了其中的某个外设,可以不用添加没有用到的外设的库文件。比如只用 GPIO,可以只用添加 stm32f10x_gpio.c 而其他的可以不用添加。否则工程太大,编译起来速度慢。

  • 用同样的方法,将 Groups 定位到 CORE 和 USER 下面,添加需要的文件。这里 CORE 下面需要添加的文件为 core_cm3.c,startup_stm32f10x_hd.s,USER 目录下面需要添加的文件为 main.c,stm32f10x_it.c,system_stm32f10x.c.

  • 配置头文件文件夹路径。点击菜单栏的魔术棒(Option for target),选择c/c++选项,点击 Include Paths右边的…按钮。弹出一个添加 path 的对话框,然后我们将头文件目录添加进去。

注意,keil 只会在一级目录查找,所以如果你的目录下面还有子目录,记得 path 一定要定位到最后一级子目录。
电子工程应用记录_第12张图片

1.2.4 其他配置

  • 在编译之前首先要选择编译中间文件编译后的存放目录。点击魔术棒,选择“Output”选项下面的“Select folder for objects…”,选择目录为上面新建的 OBJ 目录。
    电子工程应用记录_第13张图片
  • 库函数在配置和选择外设的时候通过宏定义来选择的,所以需要配置一个全局的宏定义变量。同样点击魔术棒,定位到 c/c++界面,然后填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”(视芯片而定)到 Define 输入框里。
    电子工程应用记录_第14张图片

注:如果用的是中容量芯片那么 STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD.

*(H7) 创建工程文件夹

工程文件夹内的内容可参考下图创建,其中User-bsp文件夹中是开发板各个外设的驱动,segger文件夹是硬件异常分析代码。
电子工程应用记录_第15张图片

*(H7) 创建新工程

打开MDK,选择 Project ->New uVision Project-选择工程路径-填写工程名-保存
电子工程应用记录_第16张图片
选择芯片
电子工程应用记录_第17张图片
设置工程名和工程分组:Project-Manage-Project Items
电子工程应用记录_第18张图片
创建工程分组
电子工程应用记录_第19张图片

*(H7) 添加工程文件

其中最左边Project Targets为工程分组,修改其内容即可修改工程名字。

工程–>功能代码分组–>代码源文件。
电子工程应用记录_第20张图片
如在各工程分组中添加以下代码文件
电子工程应用记录_第21张图片
bsp.c 位于路径\User\bsp,主要用于 MPU、Cache、时钟和外设初始化。
bsp.h 位于路径\User\bsp,此文件是各种头文件的集中汇总贴,方便管理。
bsp_led.c 位于路径\User\bsp\src,用于 LED 驱动。
bsp_key.c 位于路径\User\bsp\src,用于按键驱动。
bsp_timer.c 位于路径\User\bsp\src,用于软件定时器组和微妙级单次延迟。
bsp_fmc_io.c 位于路径\User\bsp\src,用于 IO 扩展,这里 LED 要用到。
bsp_uart_fifo.c 位于路径\User\bsp\src,用于 8 串口 FIFO 驱动。
stm32h7xx_it.c 位于路径 User\bsp,用于部分系统中断服务程序。

电子工程应用记录_第22张图片
startup_stm32h743xx.s 位于路径\Libraries\CMSIS\Device\ST\STM32H7xx\Source\Templates\arm,主要用于堆和栈空间设置,中断向量表也在这个文件。

电子工程应用记录_第23张图片
stm32h7xx_hal_conf.h 位于路径\User\bsp,主要用于 HAL 库的配置。
其它文件路径:\Libraries\STM32H7xx_HAL_Driver\Src,用到什么外设添加什么驱动文件即可,有些外设驱动跟 DMA 也有关联,直接添加进来即可。

电子工程应用记录_第24张图片
system_stm32h7xx.c 位于路径\Libraries\CMSIS\Device\ST\STM32H7xx\Source\Templates,主要用于复位 RCC 相关寄存器和中断向量表位置设置。
电子工程应用记录_第25张图片
这两个文件位于路径:\User\segger\HardFaultHandlerMDK,主要用于硬件异常分析。

1.3 常用设置

1.3.1 多核并行编译

Edit --> Configuration --> Other
电子工程应用记录_第26张图片

1.3.2 字体设置

安装微软雅黑混合字体,字体效果很棒,解决显示中文的BUG

Edit --> Configuration --> Editor --> 选择简体中文
电子工程应用记录_第27张图片
Colors & Fonts中可选择对应的字体。
电子工程应用记录_第28张图片

1.3.3 语法提示

Edit --> Configuration --> Text Completion --> 勾选 Symbols after 3 characters

注意:需要在工程(Project)中才能实现代码补全功能,要对工程先编译一遍;

电子工程应用记录_第29张图片

1.3.4 护眼主题

Edit --> Configuration --> color&fonts —> 左边Windows 中选择C/C++ Editor files 一项 --> 右边Element 中选择Text --> 再右边选择background --> 将除 Matching Braces 和 Incomplete String 以外的色调设置为84 饱和度设置为91 亮度为205;
电子工程应用记录_第30张图片

1.4 Configuration选项卡简介

1.4.1 解决中文乱码

Edit - Configuration - Editor - Encoding,选择Chinese GB2312
电子工程应用记录_第31张图片

1.5 驱动安装、配置、程序烧录下载与常见问题

STM32的3种烧录模式:
电子工程应用记录_第32张图片

1.5.1 JLNK一般配置与常见问题

  • project --> option for target --> Debug
    • 其中图三中的程序算法选择芯片对应的算法;
    • 图二HW为J-Link版本号

图2中SW Devices需要Jlink连接单片机方可搜索得到

  • 配置使用Jlink 作为下载器:
    电子工程应用记录_第33张图片

  • JLINK JTAG 转SWD 接口介绍:
    电子工程应用记录_第34张图片

JLINK固件,JLINK驱动和JLINK硬件版本之间的关系,以及固件升级方法
JLINK 无法下载解决思路以及常见问题整理

1.5.2 JLINK 驱动安装

对于新型芯片,务必使用JLINK V9、V10;

登录SEGGER官网JLINK驱动下载页面下载最新JLINK驱动并进行安装;
电子工程应用记录_第35张图片

安装完成后,插上JLINK并打开电脑的设备管理器,查看电脑端是否能识别出JLINK,若JLINK灯一直闪,表示驱动没有安装成功,若不闪表示安装成功;
在这里插入图片描述

1.5.3 CH340驱动安装(RS232转USB芯片)

CH340/CH341的USB转串口WINDOWS驱动程序的安装包,支持32/64位 Windows 10/8.1/8/7

安装成功后,插上RS232转USB线到电脑并打开电脑的设备管理器,查看电脑端是否能识别出来;
电子工程应用记录_第36张图片

1.5.4 【异常】芯片被锁程序不能烧录

芯片被锁的现象是下载器/仿真器搜索不到芯片,程序不能正常烧录到MCU中:
电子工程应用记录_第37张图片
解决方法:单片机上电,按住MCU的复位按钮,在Keil中点击程序下载按钮,弹出下面提示框提示说检测到被读/写保护的芯片,点No,然后松开复位按钮
电子工程应用记录_第38张图片

1.5.5 【异常】开发板例程下载后程序不能烧录

电子工程应用记录_第39张图片
对于一些开发板附送的例程,在烧录后会导致其他程序不能继续烧录到单片机中(异常如上图所述),这时只需重新解压例程,在 Utilities 中选择Jlink 作为烧录器,
电子工程应用记录_第40张图片
选择Jlink 烧录器,点击setting 进入
电子工程应用记录_第41张图片
然后会弹出以下选项,点ok
电子工程应用记录_第42张图片
搜索你的单片机型号,点ok即可
电子工程应用记录_第43张图片
此时单片机即可与Jlink 通信成功
电子工程应用记录_第44张图片

1.5.6 使用J-Flash ARM 软件下载程序

安装JLink 驱动后, 在左下角windows 图标找到 SEGGER - J-Flash ARM 软件打开

电子工程应用记录_第45张图片
电脑连接上JLink 和MCU 芯片,点击Target - Connect,连接电脑与MCU

电子工程应用记录_第46张图片
点击File - Open data file,加载需要烧录的烧录文件(如 .hex 格式文件)后,会弹出一个解析烧录文件的窗口
电子工程应用记录_第47张图片
点击Target - Program 将烧录软件烧录到MCU,直到弹出以下窗口表示烧录成功

电子工程应用记录_第48张图片

1.5.7 .bin 文件生成

如下图,进入设置;
在这里插入图片描述
选中User 选项卡,如下图输入代码,点ok,重新编译即可生成.bin 文件

fromelf.exe --bin -o "$L@L.bin" "#L"

电子工程应用记录_第49张图片

1.6 Bootloader程序设置

  1. 配置程序的ROM起始地址和占用ROM的大小,这个地址将会在程序擦除和下载时被参考到;这个IROM1也叫做中断向量表的起始地址。如果程序在 Flash 运行,则中断向量表的默认起始地址是 0x08000000 ,此时需要将其改为程序的起始地址,如0x8005000 .
    电子工程应用记录_第50张图片
    2.在代码初始化处添加程序对应的ROM起始地址,其应与步骤1中设置的程序起始地址一致: NVIC_SetVectorTable(NVIC_VectTab_FLASH,(0x08005000));

  2. 程序下载时,选择部分擦除,擦除的起始地址会参考步骤1中设置的地址;
    电子工程应用记录_第51张图片

包括其他程序烧录(如脱机烧录器)在配置时也需要选择擦除扇区来更新代码,在需要填写擦除扇区的起始地址时,填入程序的起始地址,如0x8005000 .

1.7 其他异常记录与解决方案

1.7.1 烧录程序时缺少MCU 的flash 算法

一般在 1.5.4 添加芯片包Device Pack 节中,下载并安装对应的芯片支持包后,在Keil MDK 中会自动加载出芯片对应的flash 文件。
如果不行,可以在网上把flash 文件放到文件目录:keil安装路径/ARM/Flash,以.flm后缀结尾的文件即为 flash 算法文件;

  • 下载链接:
    Keil STM32H7系列芯片Pack 包

1.7.2 注释输入中文变问号

Edit --> Configuration --> Editor
电子工程应用记录_第52张图片

1.7.3 ⚠常见编译 Warning & Error

  • warning: #69-D: integer conversion resulted in truncation:变量赋值超出了变量所定义类型的最大值;

u8定义的变量为8位无符号整型unsign char,最大值为255,负值超出255则报警告;

  • main.c(18): warning: #1-D: last line of file ends without a newline

main函数花括号最一行没加回车

  • error:#29: expected an expression

在下图地方添加 --c99 ;
电子工程应用记录_第53张图片

  • warning: function declared implicitly
    函数没在对应头文件中进行声明

1.7.4 工程打开卡死

删除DebugConfig文件夹,在重新打开工程。
电子工程应用记录_第54张图片

1.7.5 程序下找报错 “Flash Download failed”

电子工程应用记录_第55张图片

  • 解决方法
  1. 检查J-link 接线是否接错;
  2. 检查芯片对应的启动算法文件是否正确:

电子工程应用记录_第56张图片

1.7.6 error: #268:declaration may not appear after executable statement in block

将报错的变量或其他部分放在函数开头。
电子工程应用记录_第57张图片
放在函数开头。
电子工程应用记录_第58张图片

1.7.7 退出调试报错

若在退出调试Debug 时,遇到如下报错并卡死:
电子工程应用记录_第59张图片
解决方法:

  1. 先到任务管理器结束当前卡死的keil 进程;
  2. 再次进入程序进入调试;
  3. 结束调试前,先清除所有断电,再退出调试;
    在这里插入图片描述

TODO :

  • 为什么KEIL编译按钮是灰色的
  • 如何在keil官网下载想要的固件pack

1.8 在特定格式文件内搜索全部关键字内容

选中关键字 - Ctrl+F - 见下图;
电子工程应用记录_第60张图片

1.9 Option for Target选项卡简介

Project-Option for Target

1.9.1 Target

电子工程应用记录_第61张图片

  1. 软件仿真时用到的晶振频率(软件仿真问题多);
  2. 选择编译器;
  3. 微库 MicroLib,这个库针对嵌入式应用,MicroLIB 做了深度优化,比使用 C 标准库所需的 RAM 和 FLASH 空间都大大减小。比如调用:

ARM官网的MicroLib介绍
电子工程应用记录_第62张图片

  1. 硬件浮点,根据芯片支持而选择;
  2. Flash的首地址,根据芯片而顶,一般首地址都是 0x0800 0000,如STM32H743XIH的FLASH大小为 0x200000,即 2MB;
  3. 默认的 RAM 空间选择 DTCM,首地址 0x2000 0000,大小 0x20000,即 128KB。地址 0x2400 0000,大小 0x80000,即 512KB 是 AXI SRAM 的空间。

1.9.2 Output

电子工程应用记录_第63张图片

  1. 用于存放 MDK 编译过程中生成的 obj 临时文件路径,MDK 在创建的时候已经帮我们创建好文件夹Objects,这里无需修改,使用默认即可;
  2. Debug Information:调试信息;
  3. Create HEX File:是否生成 hex 文件;(生成的hex文件在工程的 Flash - obj文件夹中)
  4. Browse Information:是否需要 go to def 的支持,使用 HAL 库话,推荐先不要选上,因为 MDK5使用 AC5 编译 HAL 库时间比较长.

1.9.3 Listing

电子工程应用记录_第64张图片

  1. 用于存放 MDK 编译过程中生成的 list 临时文件路径,MDK 在创建的时候已经帮我们创建好文件夹Listings,这里无需修改,使用默认即可;
  2. 是否生成*.lst 文件;
  3. 查看 MAP 文件的话,就全勾上;
1.9.3.1 MAP文件

如1.9.3 节所说,将生成MAP文件的配置全勾上后,点ok,然后全编译一遍,双击工程文件夹,即可查看map文件。
其中map中的一些概念如下:

  1. 段(section) :描述映像文件的代码和数据块。
  2. RO: Read-Only 的缩写,包括 RO-data(只读数据)和 RO-code(代码)。
  3. RW:Read-Write 的缩写,主要是 RW-data,RW-data 由程序初始化初始值。
  4. ZI: Zero-initialized 的缩写,主要是 ZI-data,由编译器初始化为 0。
  5. .text:与 RO-code 同义。
  6. .constdata:与 RO-data 同义。
  7. .bss: 与 ZI-data 同义。
  8. .data:与 RW-data 同义

电子工程应用记录_第65张图片

下面简介map文件中的内容:

  1. Section Cross References:主要是不同文件中函数的调用关系。
    在这里插入图片描述

如:main.o(i.main) refers to main.o(i.PrintfLogo) for PrintfLogo 表示 main.c 文件中的 main函数调用了 PrintfLogo .

  1. Removing Unused input sections from the image:主要是被删除的冗余函数,也就是添加到工程里面,但是没有调用到的那部分。
    电子工程应用记录_第66张图片

  2. Image Symbol Table:Image Symbol Table 主要分为两类,分别是 Local Symbols 和 Global Symbols .

    • Local Symbols:记录了用 static 声明的全局变量地址和大小,C 文件中函数的地址和用 static 声明的函数代码大小,汇编文件中的标号地址(作用域限本文件)
    • Global Symbols:Global Symbols 记录了全局变量的地址和大小,C 文件中函数的地址及其代码大小,汇编文件中的
      标号地址(作用域全工程)
  3. Memory Map of the image:映像文件可以分为加载域(Load Region)和运行域(Execution Region)。加载域就是程序在 Flash 中的实际存储,而运行域是芯片上电后的运行状态

    • 加载域(Load Region):反映了 ARM 可执行映像文件的各个段存放在存储器中的位置关系。另外映像中的入口点就是程序开始执行的位置。
    • 运行域(Execution Region):反映了 ARM 可执行映像文件各个段真正执行时在存储器中的位置关系。
  4. Image component sizes:显示组件的大小。
    电子工程应用记录_第67张图片

    • Code (inc. Data) :显示代码占用了多少字节。 在此映像中,有 19442 字节的代码, 其中包括 1832
      字节的内联数据 (inc. data),例如文字池和短字符串。
    • RO Data :显示只读数据占用了多少字节(比如 const char buf[] = “123456”)。这是除 Code (inc. data) 列中包括的内联数据之外的数据。
    • RW Data :显示读写数据占用了多少字节。
    • ZI Data :显示零初始化的数据占用了多少字节。
    • Debug :显示调试数据占用了多少字节,例如,调试输入节以及符号和字符串。
    • Object Totals :显示链接到一起以生成映像的对象占用了多少字节。
    • (incl. Generated):链接器会生成的映像内容,例如,交互操作中间代码。 如果 Object Totals 行包含此类型的数据,则会显示在该行中。本例中共有 1016 字节的 RO 数据,其中 32 字节是链接器生成的 RO 数据。
    • (incl. Padding) :链接器根据需要插入填充,以强制字节对齐。

1.9.4 User

基本用不到,主要用来指定编译之前和编译之后执行的用户程序,如下图中表示在编译之后自动执行一个批处理功能用来实现 Objects 文件夹里面的 hex 文件复制到路径Project\MDK-ARM(uV5)里,方便查找。
电子工程应用记录_第68张图片

1.9.4.1 生成 .bin文件

再After Build/Rebuild 处勾选一个Run选项,在后面User Command处填入fromelf.exe --bin -o "[email protected]" "#L"即可。生成的.bin文件与.hex文件同路径。
电子工程应用记录_第69张图片

1.9.5 C/C++

电子工程应用记录_第70张图片

  1. 预定义宏
    USE_HAL_DRIVER 表示使用 HAL 库。
    STM32H743xx 表示使用 H743 系列。
  2. 代码优化级别,优化等级低,方便调试,选项 One ELF Section per Function 用于删除工程中没有用到的冗余函数;

专题:如何做MDK编译器的代码最小优化和性能最佳优化

  1. 使用 C99 规范;
  2. 添加路径,把用到的头文件路径包含进来;

1.9.6 Debug

电子工程应用记录_第71张图片

  1. 软件仿真;
  2. 硬件仿真,选择仿真调试器;

1.9.7 Utilities

电子工程应用记录_第72张图片
主要用于编程工具选择,Update Target before Debugging 表示调试前更新芯片的程序。

1.10 仿真/调试模式

  1. 在工程设置里设置好芯片型号和晶振频率(软件仿真)。
    电子工程应用记录_第73张图片

电子工程应用记录_第74张图片

  1. 点击魔术棒,在Debug页面选择仿真器仿真(硬件仿真),选择并设置好对应的仿真器。设置好下面的CPU DDL等参数,以设置支持对应芯片的软/硬件仿真。
    电子工程应用记录_第75张图片

  2. 代码编译通过并连接好仿真器后,点击调试按钮,程序下载并进入调试模式。
    在这里插入图片描述

1.10.1 调试界面

在这里插入图片描述
上图图标自左到右分别为:

  1. Reset:CPU复位,程序回到初始状态
  2. Run:自动运行代码,直到遇到断点后停止
  3. Stop:停止运行代码
  4. Step:单步运行代码
  5. Step Over:单行运行代码
  6. Step Out:运行完当前函数
  7. Run to cursor line:运行到光标处
  8. Show next statement:界面跳到当前运行的代码(不运行代码)

在这里插入图片描述
上图红框图标自左到右分别为:

  1. Disassembly Window:汇编窗口,查看汇编代码。
  2. Call Stack Window:堆栈局部变量窗口,通过该按钮可以显示Call Stack+Locals窗口,显示当前函数的局部变量及其值。
  3. Watch Windows:监控窗口,将特定变量添加到该窗口,对其进行全程监控。
  4. Memory Windows:内存窗口,在里面输入要查看的内存地址或对某变量右击将其添加到该窗口,然后观察这一片内存的变化情况。
  5. Serial Windows:串口串口,类似串口调试助手,用来显示从串口打印出来的内容。
  6. System Analyzer Windows:逻辑分析窗口,有多个功能(如下图),一般使用第一个Logic Analyzer。通过Setup按钮添加IO口,可以观察这些IO口的电平变化情况。

注意:有说法所,要在硬件调试中使用逻辑分析窗口,需要在仿真器设置中使能 Trace Setting (如下图) 。

电子工程应用记录_第76张图片
电子工程应用记录_第77张图片
7. System Viewer Windows:系统查看窗口,提供各种外设寄存器的查看窗口(通过下拉选择,如下图),选择对应外设即可调出该外设的相关寄存器表,并显示这些寄存器的值。

电子工程应用记录_第78张图片

1.10.2 参数监控界面

  • 局部变量监控:该页面可查看当前运行函数的所有局部变量数值,默认以十六进制显示,右击可选择十进制显示。直接点击参数值,还可对其进行修改。
    电子工程应用记录_第79张图片

  • 监控特定参数值:对某参数右击选择添加其到Watch窗口,即可对改参数进行全程监控。同样,参数值默认以十六进制显示,右击可选择十进制显示。直接点击参数值,还可对其进行修改。
    电子工程应用记录_第80张图片
    电子工程应用记录_第81张图片

1.10.3 调试时间监控

  1. 选择使用 仿真器 仿真,点击 Settings 进入设置界面,选择 Trace - Enable,在Core Clock中输入当前使用单片机的工作频率,然后取消勾选 Enable ,一路点击确认退出;
    电子工程应用记录_第82张图片
    电子工程应用记录_第83张图片

  2. 进入 debug 进入仿真,如下图,在运行延时500ms函数前时间为7.29319356秒,运行后为7.79319658秒,时间差为0.50000302秒
    电子工程应用记录_第84张图片

其他方法:单片机测量代码运行时间方法-STM32

1.11 ARM开发工具指南 - help

电子工程应用记录_第85张图片
在搜索选项处,搜索关于Keil的使用问题,即可得到响应解决方案。
电子工程应用记录_第86张图片

2. STC-ISP - STC芯片烧录/代码编写工具


软件可在STC官方网站中下载安装。

2.1 hex文件烧录

该软件可把hex文件烧录到STC相关芯片单片机,如果只有hex文件而缺少程序或者程序配置有故障,该软件是很好的选择;

硬件连接

PC —[1]— UART 小板(不是J-Link!) —[2]— 单片机(PCB)

[1]USB线
[2]四脚:3.3V、TMS、TCK、GND
若PC报电流过载之类的警告,改用带供电的 USBHUB 转接可解决

软件配置

选择对应单片机型号、串口号,载入hex文件,确定连接好硬件,然后点击下载程序;

电子工程应用记录_第87张图片

  • 找到串口号:PC – 设备管理器 – 端口(COM 和 LPT) – USB Serial Port(COMxx)
    其中 COMxx 就是串口号
  • 如果没有出现 USB Serial Port(COMxx) ,那就是串口没有连接成功
  • 若下载过程中出现更新版本之类的错误,可能是接触不良导致,可尝试重新烧录

2.2 向Keil中添加STC51芯片包(Device)

  1. 关闭Keil,打开STC-ISP软件 - 选中Keil仿真设置 - 点击图中按钮
    电子工程应用记录_第88张图片
  2. 选择Keil的安装目录,点确定
    电子工程应用记录_第89张图片
  3. 打开Keil,到Device页面,下拉选择STC MCU Database,可见芯片包已完成加载
    电子工程应用记录_第90张图片

3. SecureCRT - 串口终端仿真软件


ecureCRT6.2.0汉化绿色版

SecureCRT是一款支持SSH和串口的终端仿真程序,启动SecureCRT软件,弹出“快速连接”窗口,协议选择Serial,其他根据需要配置,然后点击连接;
电子工程应用记录_第91张图片
电子工程应用记录_第92张图片

3.1 在设备管理器中更改串口号

电子工程应用记录_第93张图片

4. MProg - EEPROM编程器

4.1 给FT232R芯片烧录串口号

使用串口线连接FT232R芯片,打开软件,新建一个配置文件,配置如下,然后保存配置文件(保存后才能烧录,保存的模板配置文件后缀名为.ept)),点击放大镜搜索串口设备(FT232R),点击闪电按钮烧录串口号;下次烧录同样的串口号,直接打开该模板配置文件即可;

若信息框显示:Number Of Programmed Devices =1,表示找到串口设备;

电子工程应用记录_第94张图片

5. RS485(Modbus协议)调试软件


PC端须安装串口驱动CH340。
PC通过485转换器与控制单元设备连接。

如下图;

  • 读单个寄存器时,填入相应的485地址(设备地址)、寄存器地址、所读寄存器个数后,点击读取,即可在寄存器值这一栏显示该寄存器地址的值。
  • 写单个寄存器时,填入相应的485地址(设备地址)、寄存器地址、所写寄存器值后,点击发送,即可向设备发送相应指令。
    电子工程应用记录_第95张图片

6. SEGGER J-Flash ARM - J-Link程序烧录工具

  1. 完成硬件连接。PC - J-Link - 单片机。
  2. 打开.hex程序文件。
    电子工程应用记录_第96张图片
  3. 配置参数,Options,主要是Target Interface中J-Link连接方式和CPU中芯片内核配置。
    电子工程应用记录_第97张图片
    电子工程应用记录_第98张图片
  4. 连接单片机。Target - Connect.
  5. 擦除单片机与烧录程序。Target - Auto.

7. CAD

版本:AutoCAD 2007、ZWCAD 2023专业版


7.1 综合

7.1.1 图层管理

  • AutoCAD 2007:如下图,前面的小灯泡点亮表示显示该图层,反之表示隐藏该图层;
    电子工程应用记录_第99张图片
  • ZWCAD 2023专业版:格式 - 图层;
    电子工程应用记录_第100张图片

7.1.2 英制公制转换(单位设置)

工具 - 选项 - 用户系统配置 - 插入比例,将源内容和目标图形内容单位改为目标单位。

7.1.3 对象捕捉

快捷键F3 开启/关闭捕捉功能,右击下图图标可选择捕捉的对象;
在这里插入图片描述

7.2 打印

7.2.1 选中打印

文件 - 打印(Ctrl + P) - 选定打印机 - 打印区域选窗口,点击窗口 - 画选打印区域 - 保存或打印
电子工程应用记录_第101张图片

7.3 标注(量尺寸)

菜单栏 - 标注 - 选择对应标注功能。(快捷键:DLI)
电子工程应用记录_第102张图片

8. STM32芯片Hex文件烧录器(脱机)


脱机实物如下图。
电子工程应用记录_第103张图片

8.1 Hex文件下载到脱机

打开软件DownLoader
在这里插入图片描述
脱机通过USB线连上电脑,软件设备处显示Downloader表示脱机与电脑连接成功,然后选择对应的STM32芯片,打开要下载到脱机的HEX文件,选择好配置参数,点击编程。

注:设置中注意选择擦除全片还是擦除扇区,前者将MCU中原有的所有程序进行擦除,后者将保留MCU中原有的bootloader程序。

电子工程应用记录_第104张图片

8.2 程序下载到MCU

使用杜邦线连接到MCU下载端口(引脚顺序依次为:3.3V,SWDIO,SWCLK,GND),此时脱机上红灯和蓝灯同时闪烁,点击脱机上的下载按钮,脱机开始下载程序(常亮红灯),程序下载完成后,常亮蓝灯。
电子工程应用记录_第105张图片

9. CAM350 —— Gerber 软件

9.1 Gerber导出CAD DXF格式文件

  1. 使用CAM350打开Gerber文件,Setting - Unit 设置尺寸到毫米(mm)
  2. File - Export - DXF - 选择保存路径

9.2 修改显示单位

菜单栏 - setting - Unit
电子工程应用记录_第106张图片

10. PCB特征阻抗计算工具 —— Polar si9000

11. FPGA开发工具——Quartus II


11.1 USB烧录器——USB-Blaser安装

到网上下载USB Blaster drivers压缩包并解压保存,插上USB烧录器,到电脑设备管理器,在“通用串行软件控制器”中找到USB Blaster,右击选择“更新驱动程序”,选择“浏览我的计算机以查找驱动程序软件”,选择USB Blaster drivers存放的路径,安装即可。
在这里插入图片描述

12. 串口调试助手 - SSCOM

12.1 保存窗口参数到本地

电子工程应用记录_第107张图片

保存路径是SSCOM 所在路径,有.txt 格式

12.2 利用SSCOM 做循环测试Loop

如下图:

  1. 在SSCOM 的"字符串"一栏内输入要发送的指令;
  2. 双击"字符串"空白处可对指令名称/注释进行修改;
  3. 输入指令发送对顺序,0表示不发送;
  4. 设置好指令发送后对延时时间;
  5. 勾选循环发送即可;
    在这里插入图片描述

13. 电子元器件规格书相关


13.1 术语详解

  1. NU:Not Use,实际应用中一般不需要,当某引脚功能需要时,根据实际情况决定其实际参数

如下图是LM5117 的广泛应用图,DEMB引脚中的R12为 NU,即不用该引脚功能时,该电阻不需要,即引脚浮空,使用时根据实际情况,使用0
Ω电阻
电子工程应用记录_第108张图片

  1. left floating:浮空
  2. oscillation:振荡

13.2 规格书&Demo下载&参考

规格书:

  1. 立创商城

Demo:
2. TI参考设计库

参考:
3. 罗姆半导体 - 电源小课堂

14. 嘉立创EDA

版本:嘉立创EDA 专业版 V1.8.28.355930

使用教程官方页面:https://prodocs.lceda.cn/cn/faq/editor/index.html

14.0 综述

14.0.1 工程添加成员
  1. 在工程处右击选择成员;
    电子工程应用记录_第109张图片
  2. 添加成员;
    电子工程应用记录_第110张图片
  3. 编辑该成员的角色;
    电子工程应用记录_第111张图片

14.1 设计

14.1.1 图纸预设

  • 设计 - 图纸预设:
    电子工程应用记录_第112张图片

14.2 放置

14.2.1 敷铜

  • 放置 - 敷铜区域:选择敷铜区域,选定敷铜网络;
    电子工程应用记录_第113张图片

14.2.2 挖槽

  1. PCB 便捷页面,放置 - 挖槽区域;

在如下图地方可选择连接处的线段;
电子工程应用记录_第114张图片

14.3 编辑

14.3.1 吸附/捕捉

官方教程

  • 顶部菜单 - 编辑 - 吸附
  • 鼠标右键 - 吸附
  • 快捷键Alt + S

14.4 视图

14.4.1 翻转板子

官方教程
电子工程应用记录_第115张图片

14.5 文件

14.5.1 导入AD 导出的封装库

  1. 以ASCII File 格式另存AD 的PCB 文件;
    电子工程应用记录_第116张图片
  2. 到立创EDA 导入该文件;
    在这里插入图片描述
  3. 选择提取库文件;
    电子工程应用记录_第117张图片
    以上,封装库导入完成;
  4. 在原理图中选中一个元器件,在其属性中选择封装;
    电子工程应用记录_第118张图片
  5. 如下图,绑定封装;
    电子工程应用记录_第119张图片

14.5.2 导入CAD

目前立创EDA 只支持导入.dxf 格式,.dwg 格式需要经过CAD 转换一下;
电子工程应用记录_第120张图片

  1. PCB 编辑页面,文件 - 导入 - dxf,导入dxf 文档;
  2. 选择要导入的层和导入到PCB 的哪一层;
    电子工程应用记录_第121张图片
  3. 最后检查一下导入图档与CAD 的尺寸是否匹配;

15. 汇总常用的各种硬件接口/端口及各个引脚代表的含义

链接

16. 芯片丝印反查

文章参考
芯查查官网

17. 正点原子手持数字示波器DS100

产品官网页面

18. Gitcode

18.1 新建一个代码项目并上传代码

  1. 点击新建项目:
    电子工程应用记录_第122张图片
  2. 按需填写项目信息和选择项目是否公开;
  3. 新建文件;
    电子工程应用记录_第123张图片
  4. 点击上传文件,上传代码文件;

电子工程应用记录_第124张图片

19. 虚拟机 - VMware

安装虚拟机参考:https://blog.csdn.net/weixin_44480178/article/details/127548351…

19.1 下载与安装

  1. 下载vmware:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html

PJ:https://www.itmemo.cn/html/1204.html#:~:text=v…F

  1. 安装;
    电子工程应用记录_第125张图片

19.2 安装ubuntu

  1. 到ubuntu 官网下载镜像文件

也可以到阿里巴巴开源镜像站下载:https://developer.aliyun.com/mirror/

  1. 创建一个新的虚拟机,选择典型安装;
    电子工程应用记录_第126张图片
  2. 选稍后安装操作系统;
    电子工程应用记录_第127张图片
  3. 如下图;
    电子工程应用记录_第128张图片
  4. 如下图,推荐创建到C 盘;
    电子工程应用记录_第129张图片
  5. 按需分配资源,推荐选择“将虚拟磁盘拆分成多个文件”;
    电子工程应用记录_第130张图片
  6. 创建完成后,点"CD/DVD",加载镜像,然后启动该镜像,在ubuntu 安装过程中按默认安装即可;
    电子工程应用记录_第131张图片
    电子工程应用记录_第132张图片

19.3 把VMware 虚拟机从一台电脑复制到另一台电脑

参考:https://blog.csdn.net/zsxy2019/article/details/120859129

19.4 建立主机与虚拟机之间的共享文件夹

  1. 打开虚拟机系统,安装VMware tool;
  2. 虚拟机 - 设置 - 选项 - 共享文件夹 - 启用共享文件夹 - 添加共享文件夹在主机的路径(共享文件夹的名字最好是不含中文);
    电子工程应用记录_第133张图片
  3. 在虚拟机中挂在共享文件夹…
  4. 打开终端,获取管理员权限sudo su,跳转到共享文件夹路径cd /mnt/hgfs/共享文件夹名,查看共享文件夹内容ls -a

由上面步骤知,共享文件夹在Linux 系统中的路径为/mnt/hgfs/共享文件夹名,其具体可视化文件夹在如下位置可以找到:
电子工程应用记录_第134张图片
拖动共享文件夹到侧边栏的New bookmarks,即可快捷访问共享文件夹;

电子工程应用记录_第135张图片
电子工程应用记录_第136张图片

19.5 给虚拟机扩展磁盘空间

在虚拟机关机情况下,点击:
电子工程应用记录_第137张图片
电子工程应用记录_第138张图片
电子工程应用记录_第139张图片电子工程应用记录_第140张图片

19.6 linux 系统连接主机无线接收器(wifi)

  1. 配置网络适配器,使用桥接模式;
    电子工程应用记录_第141张图片
    电子工程应用记录_第142张图片
  2. 连接无线网络接收器;
    电子工程应用记录_第143张图片
  3. 使用wifi;
    电子工程应用记录_第144张图片

20. 树莓派安装Ubuntu 系统

  1. 硬件准备:
    1. 树莓派(内存最好是4G 以上)
    2. type-c 插头的电源(5V3A以上)
    3. SD卡(16G以上)
    4. micro-HDMI 转HDMI 线
    5. 支持HDMI 输入的显示器;

  1. 下载Ubuntu 树梅派桌面系统镜像:
    清华源:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/ubuntu/releases/22.04.1/release/
    官方地址:https://cn.ubuntu.com/download/raspberry-pi

在这里插入图片描述

  1. 下载树莓派镜像工具(Raspberry Pi Imager):
    下载地址:https://www.raspberrypi.com/software/,如果是Windows 系统就下载Windows 系统的app,是Linux 的就下载对应app,然后安装;

  2. 打开Raspberry Pi Imager,选择存储卡(SD 卡通过读卡器连接电脑),然后按下图擦除SD 卡;
    电子工程应用记录_第145张图片
    电子工程应用记录_第146张图片

  3. 选择已经下载好的镜像系统:
    电子工程应用记录_第147张图片

  4. 点击设置进入开启SSH服务、配置用户名密码等

  5. 点击开始烧录

*. 参考&收藏

信号完整性
8位MCU项目例程
TI在线培训网站
电子和电器工程工具
在线仿真网站


TI (德州仪器)官网
罗姆半导体官网

你可能感兴趣的:(Electronic,stm32,电子)