硬汉嵌入式论坛

 找回密码
 立即注册
查看: 9828|回复: 8
收起左侧

[客户分享] 升级armfly-v5,x3的开发板的CMSIS和F4固件库方法

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2013-11-8 11:30:54 | 显示全部楼层 |阅读模式
说明:CMSIS和F4固件库的最新版本下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=2069
          下面以V5和X3开发板的 F4-001_按键检测和LED控制例程这里例程为例子做一下升级。
           更新后同时支持X3和V5开发板,IAR和MDK都做了更新,在FLASH和RAM运行也做了
           跟新。


1. 第一步:直接将最新版的CMSIS和F4固件库覆盖原有的
2. 第二步:覆盖后更新三个地方,以MDK为例
1.png

把这两个文件重新的更新一下,然后就是添加一个新的宏定义,因为开发板用的是STM32F407IGT6和STM32F407VGT6,所以这里选择
STM32F40_41xxx。

#if !defined (STM32F40_41xxx) && !defined (STM32F427_437xx) && !defined (STM32F429_439xx) && !defined (STM32F401xx)
  /* #define STM32F40_41xxx */   /*!< STM32F405RG, STM32F405VG, STM32F405ZG, STM32F415RG, STM32F415VG, STM32F415ZG,  
                                     STM32F407VG, STM32F407VE, STM32F407ZG, STM32F407ZE, STM32F407IG, STM32F407IE,
                                     STM32F417VG, STM32F417VE, STM32F417ZG, STM32F417ZE, STM32F417IG and STM32F417IE Devices */


  /* #define STM32F427_437xx */   /*!< STM32F427VG, STM32F427VI, STM32F427ZG, STM32F427ZI, STM32F427IG, STM32F427II,  
                                       STM32F437VG, STM32F437VI, STM32F437ZG, STM32F437ZI, STM32F437IG, STM32F437II Devices */
                                    
  /* #define STM32F429_439xx */   /*!< STM32F429VG, STM32F429VI, STM32F429ZG, STM32F429ZI, STM32F429BG, STM32F429BI,  
                                       STM32F429NG, STM32F439NI, STM32F429IG, STM32F429II, STM32F439VG, STM32F439VI,
                                       STM32F439ZG, STM32F439ZI, STM32F439BG, STM32F439BI, STM32F439NG, STM32F439NI,
                                       STM32F439IG and STM32F439II Devices */     
                        
  /* #define STM32F401xx */     /*!< STM32F401CB, STM32F401CC,  STM32F401RB,  STM32F401RC, STM32F401VB and STM32F401VC Devices */  
#endif
我这里直接将这个宏定义添加到这里
2.png

这三个地方改完以后基本在armfly-V5开发板上面运行就没有问题了,如果要在armfly-X3开发板上面运行的话,
更改下bsp.h文件里面的宏定义:
========================================================
//#define STM32_V5
#define STM32_X3

/* 检查是否定义了开发板型号 */
#if !defined (STM32_V5) && !defined (STM32_X3)
    #error &quotlease define the board model : STM32_X3 or STM32_V5"
#endif
========================================================
还有一个地方要注意改一下,由于V5开发板的驱动在X3上面使用,有些地方没有升级,大部分都升级了
,这里需要更改一下bsp_uart_fifo.h
========================================================
#ifdef STM32_X3    /* 安富莱 STM32-X4 开发板 */    /* 安富莱STM32-X3开发板串口分配:
        PA9/USART1_TX      --- 打印调试口        PA10/USART1_RX
    */    #define    UART1_FIFO_EN    1
    #define    UART2_FIFO_EN    0    #define    UART3_FIFO_EN    0
    #define    UART4_FIFO_EN    0    #define    UART5_FIFO_EN    0
    #define    UART6_FIFO_EN    0   
    /* 为了防止用X3开发板上面使用UART的时候有警告,这里添加下面的定义 */   

    #define RCC_RS485_TXEN      RCC_AHB1Periph_GPIOB
    #define PORT_RS485_TXEN  GPIOB    #define PIN_RS485_TXEN     GPIO_Pin_2

    #define RS485_RX_EN()    PORT_RS485_TXEN->BSRRH = PIN_RS485_TXEN   

    #define RS485_TX_EN()    PORT_RS485_TXEN->BSRRL = PIN_RS485_TXEN
#else
=======================================================
如果在内部RAM里面调试的话,添加上STM32F40_41xxx就可以了。
第三步:如果使用IAR的话,按照MDK的修改方法修改三个地方就可以的。

修改好的工程下载:
升级工程.zip (3.32 MB, 下载次数: 268)
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2013-11-11 08:41:19 | 显示全部楼层
新库里面不包含DSP库的吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
 楼主| 发表于 2013-11-11 09:32:44 | 显示全部楼层
忘了往里面放了,你装MDK5.0没有,装了的话,在这个路径下就有C:\\Keil5.0\\ARM\\Pack\\ARM\\CMSIS\\3.20.3\\CMSIS
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2013-11-11 09:40:32 | 显示全部楼层
我把原来的DSP库拷过来了,但是这样更新后发现我的ucos有问题 了,编译后RAM占用少 了一半,ucos在开始启动时就挂掉了,工程是在你们基础上移植的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
 楼主| 发表于 2013-11-11 09:46:08 | 显示全部楼层

回 jcx0324 的帖子

jcx0324:我把原来的DSP库拷过来了,但是这样更新后发现我的ucos有问题 了,编译后RAM占用少 了一半,ucos在开始启动时就挂掉了,工程是在你们基础上移植的 (2013-11-11 09:40) 
不要用原来的,全部用最新版本的,要不,不匹配
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2013-11-11 09:58:20 | 显示全部楼层
5.0里面的dsp库有好多个文件,不知道该包含哪一个?而且我随便包含了一个M4的库,结果还是一样.应该库的覆盖不会影响到ucos的移植吧,这里也就是更改启动文件和 system_stm32f4xx.c,外加dsp的库文件
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2013-11-11 10:11:43 | 显示全部楼层
我记得你们例程中ucos移植的时候这两个文件都采用官方的,我用你们的例程这样移植也是出现同样的问题,进入OSStartHighRdy(); 时就死在里面
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2013-11-12 08:06:59 | 显示全部楼层
修改过启动文件后ucos能够正常运行,但是发现RAM占用率比原来减少15K左右,试过裸机程序也是差不多,请问这是正常的吗?是库有进行优化?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
 楼主| 发表于 2013-11-12 09:21:47 | 显示全部楼层

回 jcx0324 的帖子

jcx0324:修改过启动文件后ucos能够正常运行,但是发现RAM占用率比原来减少15K左右,试过裸机程序也是差不多,请问这是正常的吗?是库有进行优化? (2013-11-12 08:06) 
有可能,后面我这边也测试下看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 07:31 , Processed in 0.382599 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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