STM32F103移植到AT32F403A 调试环境配置

章   移植环境jlink/atlink配置

前言

        前面有提到过,AT32的仿真工具支持ATLINK、JLINK等,下面分别介绍在stm32f103的工程上面使用这两种工具,以及遇到问题的解决办法。

硬件

      硬件方面使用的是雅特力官方发布的AT32F403A开发板,开发板上面还板载了一个ATLINK_EZ的仿真器,ATLINK_EZ还有一个串口的功能,硬件上是接到了MCU的串口1上。这个ATLINK_EZ可以掰下来使用。

如下图是开发板pcb图(左边的就是ATLINK_EZ):

        如果仿真工具使用的是jlink的,那可以使用jtag或者swd接口都可以,根据开发板的电路接好线即可。        

工程环境

        测试使用的软件stm32f103的工程代码。想快速验证的可以下正点、野火等的代码回来,再根据自己外设的硬件的设计稍微修改就可以进行测试,就是库要的是stm32F103的3.5标准库的。下面分别是两种工具的使用。(使用swd口)

ATLINK:

        1. 硬件通过usb线(必须使用可以传输数据的usb线)接到pc上,atlink是免驱的cmsis dap,pc没有问题的情况下都可以直接识别到,然后先使用ICP工具,看是否可以连接到芯片,不行的基本是硬件的问题,检查usb线;如果是掰下来的那还要检查swd的接线。

     

        2.Atlink在keil里面会限制型号,要选择AT32的型号才能正常下载。要能选择AT32的型号,则需要安装AT32的keil的补丁pack包。

       3.在stm32f103的工程中重新选择对应的AT32的型号。选完型号再配置debug选项,选择CMSIS_DAP,最后选择对应的flash烧写算法。下图改为了AT32F403AVGT7。

      

        4.重新选完型号以及flash算法后,必须把keil的fpu的选项取消掉,因为stm32f103以及库是不支持fpu的,不关掉就会进入到hardfaul里面。

JLINK:

  1. 硬件确定连接好之后先使用ICP工具连接下芯片,看是否正常识别到芯片;如果jlink驱动版本过低,ICP会弹出提示的,此时需要安装高点的版本驱动了。测试使用的是6.30d的版本,一直在正常使用。

     2. 在keil里面使用的就和stm32f103的一样了。

                 

   3. jlink同时支持jflash的烧录,只有安装了对应的补丁pack包即可。

烧录下载:

在批量的时候总会需要对芯片进行烧录,AT32的芯片支持swd,jtag,串口的的烧录方式。

Swd/jtag:可以通过jflash来下载也可以通过官方的ICP工具来下载。ATLINK配合ICP,可以做脱机下载,也可以配合机台烧录。

串口:串口的烧录需要boot的配合,硬件上拉高boot0;拉低boot1进入芯片内部的BootLoader程序,然后是硬件上接串口1即可,AT的也可以支持串口2,最后使用isp工具下载,串口选择偶校验,ISP工具下载包中有对应的使用文档。

测试结果

        测试通过,烧录代码后串口的输出:

  

总结

从测试来看,AT32F403A是可以完全可以支持jlink的。

本文仅供于学习、测试使用,有问题可以加qq群,技术交流。

资源:

ISP工具下载地址

ICP工具下载地址

keil5 pack包

jflash pack 包
 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: STM32F103AT32F403A都是麒麟芯片的一种,但它们有一些不同的特性和架构,因此需要进行移植。 首先,在移植之前,我们需要了解STM32F103AT32F403A之间的差异。STM32F103基于ARM Cortex-M3内核,而AT32F403A基于ARM Cortex-M4内核。Cortex-M4内核相比Cortex-M3内核增加了浮点单元(FPU),这意味着AT32F403A可以更有效地处理浮点数。此外,AT32F403A还具有更快的时钟速度和更大的片上存储器(SRAM和Flash),这使得它更适合处理更复杂的应用程序。 其次,移植过程本质上就是将现有的STM32F103代码适应到AT32F403A上。这需要做一些修改,包括但不限于以下几个方面: - 芯片的引脚分配:由于不同芯片引脚定义不同,因此需要重新分配芯片引脚。 - 外设寄存器的地址:AT32F403A的外设寄存器的地址和STM32F103不同,因此需要修改它们的地址。 - 定时器:AT32F403A中硬件定时器的数量和类型不同于STM32F103,应对不同的芯片特性做出相应的改动。 - 代码编译:AT32F403A使用的编译器和STM32F103可能不同,因此需要对其进行更改以适应新的编译器。 最后,移植完成后需要进行测试,以确保代码能够正确工作。测试的目标应该是检查芯片的外设是否按照预期工作,确认代码在不同的运行模式下是否稳定,并确保代码正确适应不同的片上资源配置。 总之,将STM32F103移植AT32F403A需要一些技术积累和耐心,需要深入了解两个芯片的差异并进行适当的代码修改才能成功移植。 ### 回答2: 首先,STM32F103AT32F403A是两种不同的芯片,它们的架构、引脚分配、外设等都不尽相同。因此,将STM32F103移植AT32F403A需要进行一系列的修改和适配。 第一步,需要对AT32F403A进行硬件连接,包括外设驱动、定时器等。需要对原有的STM32F103的硬件驱动进行修改和适配,以适应AT32F403A的架构和特性。 第二步,需要进行基于AT32F403A的操作系统(OS)适配,包括底层驱动,Kernel(I/O 子系统、存储子系统)和FS(文件系统)等。需要调整原有应用程序的系统级别的API调用。 第三步,需要进行代码层面的移植。需要将原有的STM32F103的代码逐步迁移到AT32F403A的代码平台上,确保程序的正确性和稳定性。需要对原有代码进行修改和适配,以符合AT32F403A的特性和限制。 总结来说,STM32F103移植AT32F403A需要进行一系列低层次的修改和适配,需要对底层硬件进行重新定义和适配,同时对系统级别和应用程序进行调整和迁移。这是一个较为复杂的技术工作,需要耐心和技术储备。 ### 回答3: 将STM32F103移植AT32F403A是一项重要而复杂的任务,需要进行周密的计划和准备。 首先,需要了解这两种芯片的架构、指令集、外设以及寄存器等特性的差异和相似点。然后,根据这些差异和相似点,针对AT32F403A芯片特性,重新编写GPIO、UART、SPI、I2C等外设的驱动程序。 其次,需要根据AT32F403A的硬件资源和外设的接口特性,对原有的中断系统、时钟系统、存储器系统、DMA系统等多个模块,进行调整和修改,以适应移植的需求。 最后,需要进行严格的测试和验证,确保移植后的AT32F403A芯片在各方面都能够与STM32F103芯片达到相同的性能和稳定性,并且保证各种外设功能同样正常运行。 总之,将STM32F103移植AT32F403A芯片,需要具有一定的芯片架构设计和底层软件开发经验,同时需要进行仔细的规划和测试,才能够实现一次成功的移植
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值