搜索
bottom↓
回复: 35

下载算法写完!TKM32F499终于可以直接用JLINK下载了,附下载算法文件

  [复制链接]

出0入143汤圆

发表于 2020-11-18 14:34:37 | 显示全部楼层 |阅读模式
本帖最后由 tiky 于 2020-11-18 14:52 编辑

       TKM32F499在设计的时候,就不打算依赖任何下载器的,不过做出来以后,发现大家对JLINK、ST-LINK、ARM-OB、DAP下载仿真有无限的魔力,我们也逃不掉ST的的生态链。工程师本来想偷懒一下的,发现反而更麻烦。实在受不了,今天把这个下载算法弄好了,现发出来供大家选择。目前TK499已经支持两种下载方法:1、USB直接下载;2、用JLINK、ST-LINK、ARM-OB、DAP等各类仿真下载器来下载;
       两种方法各有优点:USB是TK499专用的下载方式,速度非常快,不依赖下载器,当你把东西寄给客户时,如果要改点什么东西,不用到处找串口,也不用打开什么上位机,直接一根USB搞定;JLINK下载的话,就是开发比较方便,下载仿真,一步到位,也不用来回按那个复位及上电等操作,JLINK有复位指令,直接一步到位,开发的时候比较方便。
        由于KEIL下载的时候,是一个包一个包地发送给单片机的,所以TK499是不知道要下载的程序长度,只能用笨办法,用累加法计算出程序长度。并且KEIL在擦除,编程及校验都复位一次MCU,所以全局变量不能用,本来有简单的方法就可以了,搞到最后还要靠用QSPI FLASH做临时内存,这个下载算法就变得有点复杂了。不知道大家有没有知道这个KEIL在下载的时候,哪里能获取这个下载程序长度的简单方法或者哪里可以弄个标志位,指示哪个包是最后一个包。
jlink下载.png

下载算法文件,解压后把它放到KEIL目录下\ARM\Flash里面,然后以后所有工程打开后都可以在下载设置里看到TKM32F499GT8的芯片下载算法了,
TKM32F499GT8.rar (67.56 KB)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出5入0汤圆

发表于 2020-11-18 14:41:11 来自手机 | 显示全部楼层
感谢分享

出0入0汤圆

发表于 2020-11-18 14:45:00 | 显示全部楼层
终于有了哈

出0入0汤圆

发表于 2020-11-18 14:58:17 | 显示全部楼层
int.png
直接强制在中断向量表后面加上固件信息呗

出0入143汤圆

 楼主| 发表于 2020-11-18 18:16:45 | 显示全部楼层
again 发表于 2020-11-18 14:58
直接强制在中断向量表后面加上固件信息呗

      看样子是个不错的方法,有参考文档吗?我尝试叫工程师试一下。
      现在搞编译器这一块发现资料还是比较少。目前KEIL给出的下载算法参考是以4KB为一个扇区,这么小的扇区已经不太合适大容量的TK499了,要改为64KB为一个扇区,同样也遇到问题,不知是JLINK缓冲太少了,还是编译器哪个文件没弄妥,暂时未能成功,如果成功了,下载速度应该还能加快一些。

出0入0汤圆

发表于 2020-11-18 20:11:08 | 显示全部楼层
关注一下

出0入0汤圆

发表于 2020-11-18 22:08:31 | 显示全部楼层
感谢分享

出0入0汤圆

发表于 2020-11-18 23:32:59 | 显示全部楼层
做一个芯片仿真都没有

出0入143汤圆

 楼主| 发表于 2020-11-19 01:28:28 | 显示全部楼层
wzbtp 发表于 2020-11-18 23:32
做一个芯片仿真都没有

仿真功能很早就有了;这个帖子发的是用JLINK下载功能,因为原生的USB下载速度快,所以一直没有很大的动力去开发JLINK下载功能。

出0入0汤圆

发表于 2020-11-19 08:15:54 | 显示全部楼层
好消息。。。。。

出0入0汤圆

发表于 2020-11-19 09:26:33 | 显示全部楼层
谢谢楼主分享~

出0入90汤圆

发表于 2020-11-19 09:37:52 | 显示全部楼层
挺好的资料,又可以更方便了。

出0入0汤圆

发表于 2020-11-22 03:19:11 | 显示全部楼层
支持............................!!!

出0入0汤圆

发表于 2020-11-22 10:15:18 | 显示全部楼层
tiky 发表于 2020-11-18 18:16
看样子是个不错的方法,有参考文档吗?我尝试叫工程师试一下。
      现在搞编译器这一块发现资料 ...

编译器都提供相应的符号,一个是直接导入符号填入指定地址。 一个是从MAP文件读取符号对应值后期修改BIN对应位置。  你翻开MAP文件,MDK是Image$$ER_IROM1$$Length  类似这样。

出0入0汤圆

发表于 2020-11-22 10:22:20 | 显示全部楼层
由于KEIL下载的时候,是一个包一个包地发送给单片机的,所以TK499是不知道要下载的程序长度,只能用笨办法,用累加法计算出程序长度。并且KEIL在擦除,编程及校验都复位一次MCU,所以全局变量不能用,本来有简单的方法就可以了,搞到最后还要靠用QSPI FLASH做临时内存,这个下载算法就变得有点复杂了。


你这个芯片是外挂SPI FLASH,  理论上跟H750或者一些外挂FLASH XIP的CM4/7应该没区别啊,那些芯片都有开源的下载算法文件,理论上应该修改下就行,不用特别考虑什么长度啊,扇区大小,复位之类的事情吧。       比如现在火热的H750,人家也是用的一样的SPI FLASH。

出0入143汤圆

 楼主| 发表于 2020-11-22 16:58:30 | 显示全部楼层
huangqi412 发表于 2020-11-22 10:22
由于KEIL下载的时候,是一个包一个包地发送给单片机的,所以TK499是不知道要下载的程序长度,只能用笨办法 ...

      看了H750的,也是找不到突破口,给函数参数来来回回无非就是:地址,一个包的size,及该包的buf (unsigned long adr, unsigned long sz, unsigned char *buf),KEIL肯定知道要下载程序的长度,但是你总得要KEIL告诉你才行,你下载的时候,是KEIL把数据传给JLINK的。发包的KEIL老大都不知道有没有分发这个长度。就不知道是否还有其它API
       4楼的again网友提供的思路也是一个方向,直接解释KEIL第一个传来的包,里面应该有长度信息。
      

出0入0汤圆

发表于 2020-11-23 15:23:15 | 显示全部楼层
这个关注一下

出0入0汤圆

发表于 2020-11-23 15:34:54 | 显示全部楼层
tiky 发表于 2020-11-22 16:58
看了H750的,也是找不到突破口,给函数参数来来回回无非就是:地址,一个包的size,及该包的buf (u ...

下载算法就是几个读写擦函数+一个参数表格。   你的芯片跟H750之类区别仅仅是SPI模块寄存器不同(理论上外挂FLASH可以完全相同  单片机内核原则上是一样的)。 没理由不能套用啊。

出140入115汤圆

发表于 2020-11-23 15:37:31 | 显示全部楼层
可以仿真吗?

出0入143汤圆

 楼主| 发表于 2020-11-23 23:15:30 | 显示全部楼层

怎么那么人问可不可以仿真啊,我跟你说,可以仿真可以仿真可以仿真,重要的事情说三次。看来要专门出一个仿真的广告贴才行了。

出0入143汤圆

 楼主| 发表于 2020-11-23 23:18:42 | 显示全部楼层
huangqi412 发表于 2020-11-23 15:34
下载算法就是几个读写擦函数+一个参数表格。   你的芯片跟H750之类区别仅仅是SPI模块寄存器不同(理论上外 ...

与H750下载算法是没太大差别,同样是ARM的。不过在MCU读取你下载到外部FLASH的程序的时候,大家的bootloader不同,我想差别应该就是这里了,我通知工程师有空再研究一下,做完善一点。

出0入42汤圆

发表于 2020-11-24 06:28:38 来自手机 | 显示全部楼层
真能做到 arm 内核芯片不依赖arm生态链那就太牛逼了

出0入143汤圆

 楼主| 发表于 2020-11-24 11:13:25 | 显示全部楼层
用RISC-V内核吧,全新的内核,全新构建生态链,后面做出来不知大家有没有兴趣

出90入4汤圆

发表于 2020-11-24 11:19:22 | 显示全部楼层
tiky 发表于 2020-11-24 11:13
用RISC-V内核吧,全新的内核,全新构建生态链,后面做出来不知大家有没有兴趣 ...

价格是关键

出0入0汤圆

发表于 2020-12-2 15:55:45 | 显示全部楼层
买了这个芯片的开发板,现在还不是很熟悉
想问一楼主,可以提供简化的BOOTLOADER源码吗?或者提供一份怎么自己定制BOOTLOADER的文档

出0入143汤圆

 楼主| 发表于 2020-12-2 18:16:59 | 显示全部楼层
v_8787 发表于 2020-12-2 15:55
买了这个芯片的开发板,现在还不是很熟悉
想问一楼主,可以提供简化的BOOTLOADER源码吗?或者提供一份怎么 ...

可以提供制作bootloader的例程及文档,这个也有助于大家做远程升级,我催催工程赶快点,近期推出。

出0入0汤圆

发表于 2020-12-2 21:00:21 | 显示全部楼层
tiky 发表于 2020-12-2 18:16
可以提供制作bootloader的例程及文档,这个也有助于大家做远程升级,我催催工程赶快点,近期推出。 ...

静待佳音

出0入0汤圆

发表于 2020-12-6 19:21:53 来自手机 | 显示全部楼层
这个好      

出0入0汤圆

发表于 2020-12-7 19:03:18 | 显示全部楼层
仿真的接口在什么地方?

出0入143汤圆

 楼主| 发表于 2020-12-7 22:50:48 | 显示全部楼层
跟ST的一样,接PA14与PA15

出0入0汤圆

发表于 2020-12-8 10:55:30 | 显示全部楼层
tiky 发表于 2020-12-7 22:50
跟ST的一样,接PA14与PA15

折腾半天没结果 微信图片_20201208105401.jpg

出0入143汤圆

 楼主| 发表于 2020-12-8 11:01:54 | 显示全部楼层
先不要折腾什么下载,看看能不能读到内核不;为确保仿真口没有设置为普通GPIO,可以到评估板的资料集帖子里任意下载一个简单的程序用USB先烧进去。如果你芯片上跑了禁用仿真口的程序,你是连接不上的。

出0入0汤圆

发表于 2021-1-4 09:56:04 | 显示全部楼层
这个下载算法好用吗?怎么我直接用JLINK下载之后不能运行呢?用的是Tiky的GPIO例程。USB下载之后灯闪的。

出0入143汤圆

 楼主| 发表于 2021-1-4 15:50:50 | 显示全部楼层
你是用这个帖子里的GPIO程序吗?目前用着这个下载算法,暂时没发现有什么问题

出0入0汤圆

发表于 2021-2-4 21:55:55 | 显示全部楼层
tiky 发表于 2020-11-18 18:16
看样子是个不错的方法,有参考文档吗?我尝试叫工程师试一下。
      现在搞编译器这一块发现资料 ...

我记得其他的芯片,都是写一个什么文件, 放算法目录下, keil 会先把这段程序 放到ram中去跑, 然后ram代码操作flash.

出0入0汤圆

发表于 2021-2-28 20:52:14 | 显示全部楼层
个人理解楼主有没有可能参考Jlink Open Flashloader格式呢,如果参考这个格式,则所有的编译器都可以支持了。
同时不用关注keil发送给Jlink的数据格式了。
参考网站:https://wiki.segger.com/Open_Flashloader
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 23:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表