STM32
直播中

张鑫

8年用户 933经验值
私信 关注
[问答]

请问Ministm32如何新建MDK5工程?

请问MiniSTM32如何新建MDK5工程?

回帖(1)

秦玫

2021-11-29 10:15:58
步骤一:

打开 MDK (以下将 MDK5 简称为 MDK )软件。然后点击 Project New uVision Project
如图 3.2.1 所示

   
  

  


步骤二:

在桌面新建一个 TEST 的文件夹,然后在 TEST 文件夹里面新建 USER 文件夹,将工程名字设为 test ,保存在这个 USER 文件夹里面,之后,弹出选择器件的对话框,如图 3.2.3 所示

  

  

  
步骤三
因为 ALIENTEK MiniSTM32 开发板所使用的 STM32 型号为 STM32F103RCT6 ,所以在这里我们选择 STMicroelectronics → STM32F1 Series → STM32F103 → STM32F103RCT6 (如果使用的是 其他系列的芯片,选择相应的型号就可以了
特别注意: 一定要安装对应的器件 pack 才会显 示这些内容,如果没得选择,请关闭 MDK ,然后安装 光盘: 6 ,软件资料 1 ,软件 MDK5 Keil.STM32F1xx_DFP.2.2.0.pack 这个安装包)。


   
  

  

  步骤四

    点击   OK  ,  MDK   会弹出   Manage Run-Time Environment   对话框,如图   3.2.4   所示:  
   
  

  

        这是    MDK5    新增的一个功能,在这个界面,我们可以添加自己需要的组件,从而方便构建   
      开发环境,不过这里我们不做介绍。所以在图    3.2.4    所示界面,我们直接点击    Cancel   ,即可,   
      得到如图    3.2.5    所示界面:  
  
  步骤五

  
  

  

  步骤六

    到这里,我们还只是建了一个框架,还需要添加启动代码,以及  .c   文件等。这里我们先介  
    绍一下启动代码:启动代码是一段和硬件相关的汇编代码。是必不可少的!这代码主要作用如  
    下:
    1  、堆栈(  SP  )的初始化
    2  、初始化程序计数器(  PC  
    3  、设置向量表异常事件的入口地  址;
    4  、调用   main   函数。感兴趣的朋友可以自己去分析这部分代码。  
    ST   公司提供了   3   个启动文件给我们,分别用于不同容量的   STM32   芯片,这三个文件是:  
    startup_stm32f10x_ld.s
    startup_stm32f10x_md.s
    startup_stm32f10x_hd.s
    其中,  ld.s   适用于小容量 产品;  md.s   适用于中等容量产品;  hd   适用于大容量产品;  
    这里的容量是指   FLASH   的大小  .  判断方法如下:  
    小容量:  FLASH  ≤  32K  
    中容量:  64K  ≤  FLASH  ≤  128K  
    大容量:  256K  ≤  FLASH  
    我们开发板使用的是   STM32F103RCT6  ,  FLASH   容量为   256KB  ,属于大容量产品,所以我们选择   startup_stm32f10x_hd.s   作为我们的启动文件。   这三个启动文件在开发板光盘  →  4  ,程序源码  →  STM32   启动文件 文件夹里面(也可以从我  们的论坛 下载到, 下载地 址:   http://www.openedv.com/posts/list/313.htm  ), 这里我 们把   startup_stm32f10x_hd.s   拷贝到刚刚新建的   USER   文件夹里面。   不过这个启动文件,我们做了一点点修改,具体是   Reset_Handler   函数,该函数修改后代码  
    如下:  
   
  

  


  

  

        这段代码,我们屏蔽了复位中断服务函数(   Reset_Handler   )对函数    SystemInit    的调用,如果是库函数版本,可以取消这个函数的注释,并在外部实现    SystemInit    函数。   
   步骤七:

      在图    3.2.5    中,我们找到    Target1   →   Source Group1   →   双击   →   设置打开文件类型为    Asm Sourcefile   →   选择    startup_stm32f10x_hd.s   →   点击    Add   ,如图    3.2.6    所示:   
      
  

  

   步骤八:

      这里看到的    2    个文件夹:   Listings    和    Objects   ,是    MDK5    自行创建的,用于保存编译过程中生成的一些文件,后续会介绍。添加完后,我们得到如图    3.2.7    所示的界面:  
   
  

  

   步骤九:

      至此,我们就可以开始编写自己的代码了。不过,在此之前,我们先来做两件事:第一件,    先编译一下,看看什么情况   ?   编译后如图    3.2.8    所示:   
      
  

  

   步骤十:

      图    3.2.8    中    1    处为编译当前目标按钮;   2    处为全部重新编译按钮(工程大的时候,编译耗时   
      较久,建议少用)。出错和警告信息在下面的    Bulilt Output    对话框中提示出来了。因为工程中没   
      有    main    函数,所以报错了。   
      接下来,第二件事,让我们看看存放工程的文件夹有什么变化?打开我们刚刚建立的   
      TESTUSER    文件夹,可以看到里面多了    3    个文件夹:   DebugConfig   、   Listings    和    Objects   ,如图   
      3.2.9    所示:  
      
  

  

   步骤十一:

      在    USER    文件夹下,   startup_stm32f10x_hd.s   (启动文件)和    test.uvprojx   (   MDK5    工程文件)   
      是我们必须用到的    2    个文件,然后    DebugConfig    、   Listings    和    Objects    文件夹是    MDK5    自动生   
      成的,   DebugConfig    文件夹用于存储一些调试配置文件,   Listings    和    Objects    文件夹用来存储    MDK   
      编译过程的一些中间文件。   
      MDK5.21A    已经默认将这些文件生成在了    Listings    和    Objects    文件夹里面,但是    MDK5.11A   
      及之前版本是不会自动生成这两个文件夹的,所有中间文件都是生成在工程同面目录下,也就   
      是    USER    文件夹下,这样会显得比较混乱。   
      这里,我们不用    MDK5    自己生成的    Listings    和    Objects    文件夹来存放中间文件,而是在    TEST   
      目录下新建一个新的    OBJ    文件夹来存放这些中间文件。这样,   USER    文件夹专门用来存放启动   
      文件(   startup_stm32f10x_hd.s   )、工程文件(   test.uvprojx   )等不可缺少的文件,而    OBJ    则用来存   
      放这些编译过程中产生的中间文件   (   包括   .hex    文件也将存放在这个文件夹里面   )   。然后把    Listings   
      和    Objects    文件夹里面的东西全部移到    OBJ    文件夹下(当然要先关闭    MDK    软件),并删除这两   
      个文件夹(   DebugConfig    文件夹不用删除)。整理后效果如图    3.2.10    所示:   
      
  

  

         
       步骤十二:

   
           由于上面我们还没有任何代码在工程里面,这里我们把系统代码     COPY     过来(即     SYSTEM   
              文件夹,该文件夹由      ALIENTEK      提供,可以在光盘任何一个实例的工程目录下找到,不过不要     
          拷贝错了!     不要把库函数代码的系统文件夹拷贝到寄存器代码里面用,反之亦然!     这些代码在     
          任何      STM32F10x      的芯片上都是通用的,可以用于快速构建自己的工程,后面会有详细介绍)。     
          完了之后,     TEST      文件夹下的文件如图      3.2.11      所示:     
   
        
  

  
  
    步骤十三:

        
  

  
  
              在上面对话框的中间栏,点新建(用红圈标出)按钮(也可以通过双击下面的空白处实现),     
          新建      USER      和      SYSTEM      两个组。然后点击      Add Files      按钮,把      SYSTEM      文件夹三个子文件夹里     
          面的:     sys.c     、     usart.c     、     delay.c      加入到      SYSTEM      组中。注意:此时      USER      组下还是没有任何文件,     
          得到如图      3.2.13      所示的界面:   
         
  

  
   
              
     步骤十四:

                 点击       OK      ,退出该界面返回       IDE      。这时,我们在       Target1       树下发现多了       2       个组名,就是我们      
            刚刚新建的       2       个组。如图       3.2.14       所示:      
            
  

  
   
      步骤十五:

                    接着,我们新建一个        test.c        文件,并保存在        USER        文件夹下。然后双击        USER        组,会弹出      
              加载文件的对话框,此时我们在        USER        目录下选择        test.c        文件,加入到        USER        组下。得到如图      
              3.2.15        所示的界面      
              
  

  
     
                       至此,我们就可以开始编写我们自己的代码了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分