STM32F407开发环境说明

  1. CPU内部资源

    CPU型号            : STM32F407 / LQFP-176 / ARM 32-bit Cortex-M4
    主频                    : 168MHz
    内部Flash容量    : 1MB
    内部SRAM容量   : 128KB SRAM+64KB CCM  = 192RAM
    定时器                 : 17个
    UART                  : 6个
    SPI                      : 3个 (2个可复用为I2S)
    I2C                      : 3个
    ADC                    : 3个独立的12位ADC
    DAC                    : 2路独立12位DAC
    CAN                    : 2个 CAN 2.0B
    SDIO                   : 1个
    USB                    : USB2.0全速(集成内部PHY) 从设备/主设备/OTG功能
                                 USB2.0高速/全速 从设备/主设备/OTG功能
    GPIO                  : 140个
    ETH                    : 10/100M以太网

  2. FSMC存储器地址分配

    CPU内部 FLASH                【0x0800 0000 - 0x080F FFFF】,容量1M(0x100000)字节
    CPU内部 SRAM1               【0x2000 0000 - 0x2001 FFFF】,容量128K(0x20000)字节
    CPU内部 CCM data RAM  【0x1000 0000 - 0x1000 FFFF】,容量64K(0x10000)字节  
    TFT LCD地址                     【0x6C00 0000,  0x6C00 0002】, 仅占用1个端口地址

  3. 开发工具

    【仿真器】 --- 非标配,单独选购
        虽然STM32支持串口ISP下载程序,但是不支持在线调试。使用串口下载,开发效率极低,因此强烈推荐购买一个仿真
        器,提高开发效率。
        - ST-LINK V2 仿真器: ST公司开发的仿真器,可以下载程序和调试跟踪程序。支持STM8和STM32。
        - J-LINK V8,V9仿真器 : Segger公司开发的仿真器,可以下载程序和调试跟踪程序。支持所有ARM系列。
        - CMSIS-DAP仿真器:ARM开源仿真器,可以下载程序和调试跟踪程序。支持所有ARM-M系列。                                                                                                                                                                                         
    【Mini USB线】--- 开发板配送
        - 开发板预留一个Mini USB接口,一个通过CH340G芯片通过跳线帽选择接在stm32芯片USART1接口上,可用于大部分
      程序打印调试信息。

    【开发软件】
        - 编译环境: KEIL 的 MDK uVision5.17      IAR  的 ARM工具 v7.50.2  

  4. 编译和调试方法

    【Keil MDK】V5.17
            - 执行菜单 Project -> Open project                                  打开 \MDK-ARM\Project.uvprojx (这是工程文件)
            - 执行菜单 Project -> Rebuild all target files                    重新编译所有的文件:
            - 执行菜单 Flash -> Download (F8)                                 下载程序到开发板运行
     【IAR】V7.50.2
            - 执行菜单 File -> Open -> Workspace                            打开 \EWARM\Project.eww (这是工程工作平台文件)
            - 执行菜单 Project -> Rebuild all                                      重新编译所有的文件:
            - 执行菜单 Project -> Download and Debug(Ctrl+D)        装载程序并启动调试

  5. 例程文件夹说明

    ├─Drivers :   存放第3方提供的库或其源代码,这些代码一般是成熟的并经过验证的代码。
    │  ├─CMSIS :  CMSIS是ARM公司与多家不同的芯片和软件供应商一起紧密合作定义的,提供了内核与外设、实时操作系统和中间设备之间的通用接口。
    │  └─STM32F4xx_HAL_Driver : STM32F4xx系列MCU的硬件抽象层(HAL)库源代码

    ├─EWARM    :  IAR编译器工程文件夹

    ├─Inc      :  这里存放用户任务程序相关头文件
    │  └─bsp  :  外设模块底层驱动头文件

    ├─MDK-ARM  :  Keil编译器工程文件夹

    ├─Readme   :  工程相关说明

    └─Src      :  这里存放用户任务程序C语音源文件
        └─bsp  :  外设模块底层驱动源文件

  6. 工程中源代码分组说明

    IAR编译环境
    └─XXX_Project                  : 工程名称
       ├─Application                  : 应用程序
       │    ├─EWARM                : 启动文件(汇编源程序)
       │    └─User                      : 存放 main.c 以及用户用用程序
       │
       ├─bsp                          : 板级支持包,存放模块底层驱动函数 
       │
       ├─Drivers                      : 驱动程序
       │    ├─CMSIS                   : 仅存放CMSIS接口文件 system_stm32f4xx.c)
       │    └─STM32F4xx_HAL_Driver  : 存放STM32F4xx系列MCU的HAL库源代码
       │
       ├─Readme                    : 工程说明文档,仅限txt文件
       └─Output                       : 工程编译输出文件
       
    Keil编译环境
    └─XXX_Project                          : Target名称
       ├─Application/MDK-ARM        : 启动文件(汇编源程序)
       ├─Application/User             : 存放 main.c 以及用户用用程序
       ├─Drivers/STM32F4xx_HAL_Driver : 存放STM32F4xx系列MCU的HAL库源代码
       ├─Drivers/CMSIS                : 仅存放CMSISI接口文件 system_stm32f4xx.c   
       ├─bsp                          : 板级支持包,存放模块底层驱动函数  
       └─Readme                       : 工程说明文档,仅限txt文件

  7. 公共源代码文件说明

    - main.c              : 用户主程序,存放main()函数的文件
    - stm32f4xx_it.c  : 集中存放中断服务程序

  8. C编译器中的预定义宏 (在工程设置中更改)

    USE_HAL_DRIVER   - 增加这个符号表示使用ST公司的HAL库外设驱动
    VECT_TAB_SRAM    - 增加这个符号表示中断向量表定位在CPU内部RAM (针对在CPU内部RAM运行的工程才需要添加,一般都不用)
    STM32F407xx           - 增加这个符号表示使用STM32F407xx系列芯片

  9. 调整堆和栈的容量

    对于IAR EWARM, 直接在工程设置中进行修改即可
            - 菜单 project -> options -> 选择Linker -> Config页 -> 点Edit按钮 -> 切换到Stack/Heap Size
            比如:
                CSTACK = 0x1000
                HEAP     = 0x400        
            
    对于KEIL MDK, 设置堆和栈的大小是通过修改启动文件start_stm32f407xx.s 文件实现的,比如:
            Stack_Size      EQU     0x00001000
            Heap_Size       EQU     0x00000200

  10. 输出目标文件

    对于IAR EWARM:
        \EWARM\Project\Exe\Project.hex  - 采用IAR EWARM编译好的文件    
        
    对于KEIL MDK:
        \MDK-ARM\Project\Project.hex   - 采用KEIL MDK编译好的文件,定位在CPU 内部Flash    
        \MDK-ARM\Project\Project.map  - 这是编译链接文件,文本格式,可以查看每个函数、变量的地址和空间分配情况。

猜你喜欢

转载自blog.csdn.net/qq1291917670/article/details/114997290