前言 上一篇Jlink系列文章介绍了如何使用J-Flash来下载Hex或Bin文件到单片机,具体可参考Jlink使用技巧之单独下载HEX文件到单片机,本篇文章介绍,如何使用JFlash来读取单片机的程序,学习单片机程序文件的读取,不是为了破解别人的程序,而是学习破解的原理,从而更好保护自己的程序不被破解,希望大家也能尊重他人的劳动成果. JFlash的下载和安装 首先,安装JFlash软件,安装完成后,会默认安装JLink驱动程序,主要包含以下几个工具: JFlash,主要用于程序下载和读取.…
前言 上一篇文章介绍了使用Keil下载单独的Hex文件到单片机内,本篇文章介绍,如何使用SEGGER官方软件JFlash来进行程序的下载,支持Hex和Bin文件. JFlash的下载和安装 首先,安装JFlash软件,安装完成后,会默认安装JLink驱动程序,主要包含以下几个工具: JFlash,主要用于程序下载和读取. JFlashLite,JFlash的Mini版 JFlashSPI,用于给SPI存储器下载程序,如W25Q128. JLinkGDBServer,用于第三方软件的调试器,如使用…
J-Link简介 J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器.简单地说,是给一个JTAG协议转换盒.其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议.它完成了一个从软件到硬件转换的工作.配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,与IAR,Keil等编译环境无缝连接,操作方便.连接…
前言 IAP(In-application-programming),即在应用中编程.当产品发布之后,可以通过网络方便的升级固件程序,而不需要拆机下载程序.IAP系统的固件一般由两部分组成,即BootLoader Code和Application Code,并存储在不同起始地址的空间里: 系统运行时,先运行Bootloader程序,检测状态,判断是执行应用程序还是升级固件.在实际开发过程中,这两段程序一般是单独编写,然后生成两个Bin文件,为了方便下载程序,可以把两个文件合并为一个文件,这样会节…
前言 大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPI Flash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPI Flash存储器,JLink软件包含的工具中,有一个是JFlashSPI工具,这就是一个烧写和读取SPI存储器的工具了. 准备 要烧写程序或读取程序的的Flash芯片:SPI协议的Flash都可以,如W25Q128. JFlashSPI软件工具:在Jlink系列软件的安装目录下 JLink V9仿真器 要烧写的文件:…
前言 串口调试是单片机开发过程必不可少的一个功能,一般是使用一个UART-TTL的串口模块来实现串口的功能,其实下载调试使用的Jlink仿真器也可以实现串口调试的功能,本篇文章将介绍如何使用Jlink实现虚拟串口功能. ITM简介 ITM是ARM Cortex-M系列内核芯片中的一种全新的调试功能,可以方便的通过调试器来实现printf调试功能.来自STM32中文参考手册的介绍: ITM ( 指令跟踪微单元 instrumentation trace macrocell):ITM是一应用驱动的跟…
近两个月,写写停停,总算完成了这个系列的教程,不容易啊! Jlink使用技巧系列文章: 以下是各文章的链接,直接点击即可进入阅读. Jlink使用技巧之合并烧写文件 Jlink使用技巧之烧写SPI Flash存储芯片 Jlink使用技巧之虚拟串口功能 Jlink使用技巧之读取STM32内部的程序 Jlink使用技巧之单独下载HEX文件到单片机 Jlink使用技巧之J-Scope虚拟示波器功能 文章概括 Jlink使用技巧之合并烧写文件 介绍使用JFlash软件,合并Bootloader程序和AP…
今天在进行STM32内部falsh存储的时候,发现固件库历程的函数原型是这样的: 第一个是地址,在我的STM32中是2K一页的,第二个是要写入的数据. 问题就来了,存储一个小数该怎么办呢?固件库给的是整形数据啊! 三种解决办法: 第一:最具大众性的 把小数乘以系数放大,当做整数存储,然后再除以放大系数得到小数本身.例如 float  a=1.23; int b=a*100;把b存进去,取出来的时候再除以100,就可以得到小数a了.这是最简单可能也是最好想到的了,但同时,这也是最麻烦的了.稍有C语…
STM32内部含有硬核,对于一些协议(例如:UART,SPI,IIC,CRC等)我们只要调用硬核就可以了,同时我们也可以自己写通信协议. 这些硬核最终肯定是要有引脚输出的,这就是为什么STM32的引脚有复用功能的原因. 以SPI通信协议硬核为例,其硬核连接的引脚是PA4,PA5,PA6,PA7,那么我们如果使用内部硬核就必须使用这几个引脚作为通信引脚 也可以自己编写SPI通信协议,此时的引脚就可以随意定义了. 通常一个引脚有好几种复用功能,在使用硬核时需要我们设置好引脚的寄存器,同时又不影响寄存…
原文出处: http://blog.csdn.net/embbnux/article/details/17619621 之前建立stm32开发环境,程序也已经编译好生成main.bin,接下来就是要把该文件烧录到stm32上.在linux下给arm烧录程序主要使用openocd,这个软件开源,而且支持众多芯片,从ARM9到A8都可以,当然STM32也可以.支持的JTAG工具也很多,JLINK ST-LINK OSBDM都可以,我这正好有一个openjtag基于FT2232C的,也是被支持的.  …