0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用国民技术的N32替换STM32的操作流程

STM32嵌入式开发 来源:STM32嵌入式开发 作者:STM32嵌入式开发 2022-04-25 11:21 次阅读

前言

目前大形势影响,芯片价格日益上涨,采购周期变长,导致国产芯片替代进口芯片成为大趋势,该文章记录了使用国民技术的N32替换STM32的操作流程。

话不多说,上步骤。

一、工程配置

1.安装硬件

硬件库为厂家提供的资料,如下图所示,双击安装,使得keil能够找到该芯片。

82505ce6-c446-11ec-bce3-dac502259ad0.png

2.更改J-Flash配置

由于Keil官方没有对该芯片的支持,所以J-Link下载时也无法找到该芯片,所以需要手动添加芯片。更改步骤官方提供有说明文档。

826062d0-c446-11ec-bce3-dac502259ad0.png

主要步骤是:

修改JLinkDevices配置文档

添加Nationstech的下载算法文件

添加Nationstech的JFlash 工程文件

添加解锁Nationstech芯片读保护L1 等级的应用程序

进行如上步骤后,启动J-Flash就能够扫描并连接到芯片,但是有可能keil链接的J-Flash和安装的J-Flash不是一个路径,所以将配置好的J-Flash文件替换keil下Keil5ARMSegger目录文件,就能够正常下载调试。

3.更改芯片

826d54ea-c446-11ec-bce3-dac502259ad0.png

4.添加驱动文件

将N32的底层驱动库拷贝到工程目录下,并将include路径添加进去。

827ab0ea-c446-11ec-bce3-dac502259ad0.png

828ba616-c446-11ec-bce3-dac502259ad0.png

5.更改全局变量

829a4176-c446-11ec-bce3-dac502259ad0.png

6.将启动文件和驱动文件替换为N32库文件

82a5ee40-c446-11ec-bce3-dac502259ad0.png

7.将所有的stm32l1xx替换为n32g45x

二、底层驱动函数接口对照表

更改代码,将STM32的驱动函数替换为N32的驱动函数,这部分比较繁琐,需要慢慢替换,下面是我整理的替换对照表。

82bde5d6-c446-11ec-bce3-dac502259ad0.png

82d6e93c-c446-11ec-bce3-dac502259ad0.png

82eb5c28-c446-11ec-bce3-dac502259ad0.png

三、踩坑记录

经过上面的替换,应该可以编译过去了,但是这指示开始,后面悲剧的踩坑大战才刚刚开始。

1.仿真卡死

程序仿真卡死,单步调试发现卡死在OSInit()函数里面,这个函数是OS的初始化函数,所以应该是OS配置的问题,排查下来发现是启动文件里面的OS启动项没有更改,更改如下:

82f76d9c-c446-11ec-bce3-dac502259ad0.png

2.DMA配置出错

程序能够进入到任务中后,调试发现无法进入到串口接收中断,但是示波器中有数据,而且中断都没有进入,应该是卡死在优先级高的中断中,排查发现,是DMA发送中断的配置有问题,导致一直卡死在DMA中断中。下面是DMA部分的配置。

8304fcb4-c446-11ec-bce3-dac502259ad0.png

8311bfee-c446-11ec-bce3-dac502259ad0.png

3.Flash配置

由于国民芯片和STM32芯片的FLASH划分有区别,所以FLASH的替换是比较费事的部分,先对比一下两个片子的区别:

STM32L151的flash部分:

832479ea-c446-11ec-bce3-dac502259ad0.png

N32G455芯片的flash部分:

8331e5c6-c446-11ec-bce3-dac502259ad0.png

可以看出STM32单独有EEPROM的划分,而N32是没有的,只有flash部分。所以要注意两点:

Flash空间的问题,STM32可用空间要比N32的空间大;

底层接口函数,STM32有操作EEPROM的函数,而N32没有,只能使用flash操作函数。

下面是flash部分的操作:

834548b4-c446-11ec-bce3-dac502259ad0.png

4.bootloader移植

由于本项目采用bootloader引导主程序的方式,因此要注意烧写空间的配置,配置点在下面位置:

8356fa64-c446-11ec-bce3-dac502259ad0.png

当单独调试其中的程序时,烧写程序需要将整个flash擦除,要不运行不正常。

5.OS初始化卡死

又遇到程序卡死问题,这次是主程序,而且主程序起始地址为0x8000000时单独运行良好,但是改成0x8007000用bootloader跳转过去就卡死,也是卡死在OS的初始化中。因为单独运行良好,所以排查起来困难些。最终定位是堆栈和堆的空间设置太大了,设置小了后就可以运行。更改该空间的位置如下:

8363fdd6-c446-11ec-bce3-dac502259ad0.png

而且问题还不是堆栈的空间不够用,是空间设置太大了。有点无语。

6.程序跳转后运行不正常

这是最后的问题,程序能够从bootloader跳转,但是运行不正常,咨询了厂家技术人员,技术人员反馈可以采用分散加载的方式进行排查,也就是让芯片直接在主程序烧录的位置启动,分散加载的教程网上比较多,主要需要设置烧录域和启动域地址,还有VTOR寄存器

配置如下所示:

8379a4ce-c446-11ec-bce3-dac502259ad0.png

需要编写*.ini文件更改VTOR,ini文件编写如下:

838639d2-c446-11ec-bce3-dac502259ad0.png

在keil中加载,使得软件启动后先配置单片机

8390a552-c446-11ec-bce3-dac502259ad0.png

配置好后可以实现分散加载,能够是程序在烧录位置启动,发现程序分散加载可以运行正常,但是bootloader跳转不正常,因此需要排查跳转部分的问题。最终定位STM32在主程序启动时不会重启向量表,而N32会重启向量表,在主程序启动位置更改如下:

83a6a50a-c446-11ec-bce3-dac502259ad0.png

跳转部分代码如下:

83b78492-c446-11ec-bce3-dac502259ad0.png

CSDN德玛西亚吴彦祖

原文链接:https://blog.csdn.net/zhang421412170/article/details/116779169

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    446

    文章

    47758

    浏览量

    409050
  • STM32
    +关注

    关注

    2239

    文章

    10670

    浏览量

    348712

原文标题:国产芯片N32替换STM32的步骤

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    国民技术N32 MCU怎么选型 2024年版选型导读

    N32系列MCU是国民技术基于安全SoC技术平台架构,采用32位Arm Cortex-M处理器内核,创新打造的以高性能、高集成度、安全、低功耗、高可靠性为特色的MCU产品。产品内置嵌入
    的头像 发表于 04-01 17:22 753次阅读
    <b class='flag-5'>国民</b><b class='flag-5'>技术</b><b class='flag-5'>N32</b> MCU怎么选型 2024年版选型导读

    2024年版国民技术N32 MCU选型导读

    N32系列MCU是国民技术基于安全SoC技术平台架构,采用32位ArmCortex-M处理器内核,创新打造的以高性能、高集成度、安全、低功耗、高可靠性为特色的MCU产品。产品内置嵌入式
    的头像 发表于 03-30 08:24 204次阅读
    2024年版<b class='flag-5'>国民</b><b class='flag-5'>技术</b><b class='flag-5'>N32</b> MCU选型导读

    STM32开发中的位运算以及位带操作

    STM32开发中的位运算以及位带操作  位运算是计算机中常用的一种操作方式,特别适用于对数据的单个或多个位进行操作。在STM32开发中,位运
    的头像 发表于 02-02 14:38 288次阅读

    stm32位带操作有什么用

    STM32位带操作是一种在ARM Cortex-M微控制器中使用的特殊技术,它允许同时处理多个位,并且可以提高代码效率和性能。在这篇文章中,我将详细介绍STM32位带
    的头像 发表于 12-22 16:02 447次阅读

    冷热冲击试验机操作流程五步详解

    冷热冲击试验机在使用过程中具有一定的规格,用户在使用时需要知道冷热冲击试验机的操作流程。冷热冲击试验室分为预处理、初始检测、实验、恢复等监测5步。我们来看看具体的操作流程。冷热冲击试验
    的头像 发表于 12-22 10:08 334次阅读
    冷热冲击试验机<b class='flag-5'>操作</b><b class='flag-5'>流程</b>五步详解

    GD32和STM32有何区别?GD32如何替换STM32呢?

    GD32和STM32有何区别?GD32如何替换STM32呢? GD32和STM32是两种不同的微控制器系列,一般被用于嵌入式系统开发。GD32是中国华大基因(Gigadevice)公司
    的头像 发表于 11-22 18:18 3283次阅读

    “芯”动价来袭|国民技术天猫旗舰店11.11全场8.8折

    11.11特惠全场8.8折 通用MCU 车规MCU 蓝牙芯片 开发评估板 活动时间:11月11日 至 11月30日 国民技术旗舰店@天猫商城 保存图片,打开手机淘宝/天猫扫一扫以上图片,即可访问
    的头像 发表于 11-11 09:10 418次阅读
    “芯”动价来袭|<b class='flag-5'>国民</b><b class='flag-5'>技术</b>天猫旗舰店11.11全场8.8折

    STM32的完整启动流程分析

    STM32的完整启动流程分析
    的头像 发表于 10-25 16:00 766次阅读
    <b class='flag-5'>STM32</b>的完整启动<b class='flag-5'>流程</b>分析

    国民技术N32系列开发板资料合集

    本专题为国民技术N32系列开源移植挑战赛配套资料,包含了N32G45x开发板、N32G43x开发板和N32G430开发板等7款开发板的详细资料
    发表于 10-08 14:21
    <b class='flag-5'>国民</b><b class='flag-5'>技术</b><b class='flag-5'>N32</b>系列开发板资料合集

    GD32如何替换STM32

    GD32如何替换STM32
    的头像 发表于 09-18 10:58 1485次阅读
    GD32如何<b class='flag-5'>替换</b><b class='flag-5'>STM32</b>?

    ch32f103c8t6替换stm32可以吗

    ch32f103c8t6替换stm32可以吗 我很乐意为您提供一份详尽、详实、细致的1500字以上的文章,关于是否可以使用ch32f103c8t6替换stm32的问题。 首先,让我们来
    的头像 发表于 08-22 16:06 1218次阅读

    2023全球MCU生态发展大会|国民技术电控技术专家:基于N32 MCU打造通用电控平台

    基于N32系列产品的典型应用案例亮相活动现场。在MCU大会久负盛名的“电机驱动与控制论坛”上,国民技术电控技术总监舒晓华作了题为“ 基于N32
    的头像 发表于 07-24 15:15 707次阅读
    2023全球MCU生态发展大会|<b class='flag-5'>国民</b><b class='flag-5'>技术</b>电控<b class='flag-5'>技术</b>专家:基于<b class='flag-5'>N32</b> MCU打造通用电控平台

    国民技术与IAR展开生态合作,IAR集成开发环境全面支持N32系列MCU

    IAR Embedded Workbench for Arm集成开发环境现已全面支持基于国民技术N32 G/L/WB/A等工业与车规MCU的应用开发 中国上海——2023年6月13日——嵌入式开发
    的头像 发表于 06-13 12:05 727次阅读

    详解STM32中的位带操作

    STM32中,位带操作是一种非常有用的技术,它可以让你直接访问一个单一的位,而不必去读取或者写入整个寄存器。这种技术可以用于提高代码的执行效率和减少代码的大小。
    发表于 06-07 15:33 1007次阅读

    国民技术N32WB031墨水屏驱动# #从单片机到SOC,系统硬件该如何设计

    单片机N32国民技术
    华仔stm32
    发布于 :2023年04月29日 21:07:56