如何使用JLINK向stm32烧写程序

如何使用JLINK向stm32烧写程序,第1张

1先打开的keil软件,点击options for target(魔法棒标志),在d出的窗口中device选项中选择你要用的stm32芯片型号,然后在debug选项中点上右面的use(硬件调试),下拉栏选择j-link,

2点击下拉栏右侧的settings,d出的窗口中flash down,添加你所有芯片对应的地址区到这keil5的配置完事了,一路确定

3用你的j-link调试工具把开发板和计算机连接好(一般j-link的驱动插上自己就安装了),当j-link上灯为稳定绿色不闪时,点击keil中的下载按键即可如果驱动没有安装好百度j-link驱动安装

何使用JLINK向stm32烧写程序1、安装JLINK驱动程序SEGGERV40版本,下载直接下载安装就可以了2、安装好以后打开如下:3、点击进入,则出现如下:4、此时,需要进行设置芯片的型号,如下所示:点击OPTIONS,则在下图中点击:5、然后进入界面,6、点击CPU,则会出现:此时,我们在device里面选择好我们目标板上的芯片就可以了,然后点击确认。7、我们现在将JLINK和目标板进行连接8、此时我们就看到了MCU的型号已经是我们设置的了,表示目标板和仿真器已经连接好。网上有JLINK向stm32烧写的程序,直接下载一个就行了。关键看你的IDE是不是支持STM32,如果不支持,可以安装最新的IAREWARM442。或者请安装了442的朋友把那几个补丁copy给你,放在IAR对应的目录下即可支持STM32。

1首先要安装libusb: sudo aptitude install libusb-dev
JLink要求64位系统要由32位的libusb,官方提示后续版本会修正此问题(很多系统默认已安装)。
2下载并安装
(1)到segger官网下载JLink for Linux 驱动:>板子上有release 和rst两个需要短接的地方,定义release为A,rst为B,上图
步骤一:
使用USB线连接JLINK与PC机,以提供JLINK工作电源。
短接图中A的两个手指约1分30秒。断开A位置的两个手指短接。然后拔掉JLINK与P C间的USB线(注意先后顺序)。
短接图中,B处的两个手指。
使用USB线连接JLINK与PC机,至少超过1分30秒后,拔掉USB线,停止给JLINK供电(说明:请确保此过程中,图中B处一直处于可靠的端接状态)。
断开图中B处的短接。
两次短接时间一定要足够长,否则不容易成功,容易出现erase不完全的情况,这个时候在后面“步骤二”就识别不出新设备来,只能认为是无效的usb设备。
步骤二:
用USB线连接JLINK与PC机,这个时候会跳出找到新设备的对话框,要求安装驱动,选择自动安装驱动,因为文档里没有写要安装驱动,我以我没执行这一步,导致后面用SAM-PROG烧录的时候,总是不能识别设备,Write Flash 这个button总是不能enable,只要装了驱动,Write Flash这个button就变过来了,就可以开始烧录了,很快就烧好了,烧好之后,active connection会从0变成1,这个时候板子上的灯已经变红了,拔出usb,再插上,马上就变绿了,jlink复活了。
如果步骤二在连好设备后,没有跳出找到新设备的对话框,那说明步骤一没有执行成功,可以再执行第一步,加长步骤一中两部的短接时

你需要使用JLink的配套软件J-Flash for ARM,安装后打开J-Flash for arm工具,打开hex文件,选择芯片,连好jlink和STM32,最后下载即可。
PS:Jflash for arm软件不要使用太高的版本,不然有可能会识别你的Jlink为盗版导致无法下载程序。

很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor Flash中很简单,大部分NOR Flash都已经被JLink的软件SEGGER所支持,而新手在学习的时候经常会实验各种各样的命令,最悲剧的莫过于将NAND Flash中原有的bootloader给删除了,这时候开发板上电后由于没有bootloader,硬件没有被初始化,在NAND Flash中的 *** 作系统也就无法被加载,开发板成“砖”了,这时候笔记本又无法利用JTag烧写程序进Nand Flash。起始这些可以利用JLink通过两种方法解决:
一、方法一,利用NOR Flash。
这种方法是利用JLink能够烧写程序到NOR Flash来完成的,首先利用J-FLASH ARM将u-bootbin烧写进NOR Flash(记得烧写到NOR Flash的0x0起始地址处),然后设置开发板从NOR Flash启动,这时候系统进入U-boot命令行模式,这时候打开J-Link commander,输入命令:r 看JLink是否能识别开发板的信息(也就是判断JLink是否连接正常)。
以下是在J-Link commander里的命令,先假设u-bootbin在你电脑的D盘根目录下。
1 speed 12000 //设置TCK为12M,下载程序时会很快
2 loadbin d:\u-bootbin 0x30000000
注意:0x30000000是你想要下载u-bootbin到开发板的内存地址,内存地址根据不同的开发板设定不同,因为本文中使用的是FL2440,片上系统是S3C2440,内存挂载的地址区域是0x30000000~0x33ffffff,我们只需要把u-bootbin下载到这片区域即可,
然后我们在U-boot命令行模式输入NAND Flash擦除和写入命令即可:
nand erase 0 40000
// 擦除从0地址开始的大小为0x40000的Nnad Flash扇区,0x40000是待写入的U-bootbin的大致长度,长度必须为NAND Flash页大小的整数倍,通常会需要比u-bootbin实际长度长。
nand write 30000000 0 40000 // 把前面下载到0x30000000的u-bootbin烧写到Nand去
然后我们再设置开发板从NAND Flash启动即可。
二、方法二,直接通过JLink
假如你的开发板没有NOR Flash或者是你使用的NOR Flash还未被J-FLASH ARM所支持,这时上面的方法你就无法使用了,这时候你需要一个初始化内存SDRAM的程序,这个程序完成的功能也就是配置好SDRAM的寄存器,使它能正常工作,fl2440的内存初始化程序下载地址:“2440initbin”。你还需要准备一个特殊的u-boot_SDRAMbin,它与你要烧写到NAND Flash的u-bootbin有区别,u-boot_SDRAMbin编译时需要在include/configs/开发板配置文件h文件中添加:
#define CONFIG_SKIP_LOWLEVEL_INIT 1 //用来支持uboot在内存中直接运行
添加这个宏定义之后,U-boot就跳过了内存初始化的部分,因为此时我们的内存已经先由“2440initbin“初始化好了,再次初始化会出现内存数据的丢失。
做好上面的准备工作之后,首先将开发板设为从NAND Flash启动,启动J-Link commander,先假设“u-bootbin”和“2440initbin”在电脑的D盘根目录下。
loadbin d:\2440initbin 0
setpc 0
g
为什么需要把"2440initbin"复制到0x0地址是因为S3C2440有4K的SRAM,它不需要初始化就可以直接执行程序,从NAND Flash启动时,这个SRAM的地址会挂载到0x0~0x1000的地址空间,我们先把"2440initbin"复制到SRAM中运行,执行这部分后S3C2440的SDRAM内存就初始化好了(地址空间0x30000000~0x33ffffff)。也许有人会说为什么不一开始就把u-boot_SDRAMbin放在SRAM中运行啊?SRAM只有4K的大小,而U-boot通常在100~300K,SRAM的空间显然不够,而"2440initbin"的大小只有不到2K,它可以在SRAM中运行。
内存初始化成功后,下载特制的u-boot_SDRAMbin:
h
loadbin e:\u-boot_SDRAMbin 0x33f80000
setpc 0x33f80000
g

哒 啦
自 知 道 哪
没 问 题
gftbaidu/
string类顾名思意,管理字符串(般指ASCII见字符及\r\n\t等字符)我尝试管理GBKUTF文字符除字符串外,管理其数据
于C++言,字符串管理确实移交给string,意味着再C函数调用用于C环境,完全用string替换char于效率面,我测试,差空间要求相些嵌入系统用
另两种情况管理二进制数据内存种情况必须使用unsigned char/char/unsigned char[]/char[]于二进制数据言,0并代表结束用string管理现预知问题
内存管理,完全指针功能,比线程编程经用void;进行信息传输其类型数据转char传传目再转;网络编程int等其类型转char转换高低位等等


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13211712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-21
下一篇 2023-06-21

发表评论

登录后才能评论

评论列表(0条)

保存