<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 9G-STM32 EWARM開(kāi)發(fā)過(guò)程簡(jiǎn)介之三

          9G-STM32 EWARM開(kāi)發(fā)過(guò)程簡(jiǎn)介之三

          作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò) 收藏

          9G-STM32 EWARM開(kāi)發(fā)過(guò)程簡(jiǎn)介之三--移植UCOS-II 2.86 操作系統(tǒng)

          本文引用地址:http://www.ex-cimer.com/article/201611/323211.htm

          一,準(zhǔn)備UCOSII+JLINK+STM32開(kāi)發(fā)板

          1,在http://www.mcu123.com/上聯(lián)系購(gòu)買(mǎi)支持SWD的JLINK
          JLINK ARM仿真器全功能版
          http://www.mcu123.com/www/prodshow.asp?ProdId=NO060
          一定要購(gòu)買(mǎi)全功能支持SWD調(diào)試的版本。

          2,在http://www.manley.com.cn/web/product_1.asp?lei_big=仿真學(xué)習(xí)套件&lei_small=STM3210系列&lan=4上聯(lián)系購(gòu)買(mǎi)
          EK-STM3210E系列仿真學(xué)習(xí)套件
          http://www.manley.com.cn/web/product_neirong_01.asp?pro=280
          把開(kāi)發(fā)板上的左下角的CN8旁邊的R37,R38焊掉,去掉板上ST-LINK對(duì)外加JLINK的SWD接口的干擾。

          3,在http://www.micrium.com/st/STM32.html上注冊(cè)下載UCOSII
          uCOSII-ST-STM32F103ZE-SK.exe
          http://www.micrium.com/secure/uCOSII-ST-STM32F103ZE-SK.exe
          解壓后得到“Software”文件包

          二,建立EK-STM3210E-UCOSII工程

          1,依照以下網(wǎng)頁(yè)在D:worksEK-STM3210E-UCOSII建立EWARM的開(kāi)發(fā)工程
          EK-STM3210E-UCOSII及項(xiàng)目名稱(chēng)stm32_ucos
          http://blog.163.com/yuan_xihua/blog/static/30740544200932931856676/
          2,在D:worksEK-STM3210E-UCOSIIUcsoftware下建立以下文件夾目錄
          “uCOS-IIPorts”“uCOS-IISource”“uC-CPU”“uC-LIB”“uC-BSP”
          3,在IDE工程中建立“UCSW”文件組,并在此文件夾中再建立
          “UCOS-II->Ports”“UCOS-II->Source”“UCOS-CPU”“UCOS-LIB”“UCOS-BSp”
          4,在左面“Category:”中選擇上“C/C++ Complier”,在“Preprocessor”->“Additional include directories:”中添加以下預(yù)處理頭文件路徑
          $PROJ_DIR$....UcsoftwareuCOS-IIPorts
          $PROJ_DIR$....UcsoftwareuCOS-IISource
          $PROJ_DIR$....UcsoftwareuC-CPU
          $PROJ_DIR$....UcsoftwareuC-LIB
          $PROJ_DIR$....UcsoftwareuC-BSP

          5,復(fù)制源文件

          A,復(fù)制SoftwareEvalBoardsSTSTM32F103ZE-SKIAROS-Probe-LCDapp.c到
          D:worksEK-STM3210E-UCOSIISourceapp.c
          把主函數(shù)改為:int os_main (void)
          在文件前添加:
          #include "stm32f10x.h"
          #include "stdio.h"
          #include "platform_config.h"
          在D:worksEK-STM3210E-UCOSIISourcemain.c中有while(1)前加上:
          /* System Clocks Configuration */
          RCC_Configuration();

          /* Configure the GPIO ports */
          GPIO_Configuration();

          /* Configure the UART ports */
          UART_Configuration();

          /* Setup SysTick Timer for 1 msec interrupts */
          if (SysTick_Config(SystemFrequency / 1000))
          {
          /* Capture error */
          while (1);
          }

          /* ADC1 Configuration */
          ADC_Configuration();

          /* Output a message on Hyperterminal using printf function */
          printf("");
          printf("*** STM32_UCOS2 V2.86 Build byyuanxihua@21cn.comon ("__DATE__ " - " __TIME__ ")");
          printf("*** STM32_UCOS2 V2.86 Rebooting ...");

          os_main();
          并在文件頭前加上:
          extern int os_main (void);

          B,復(fù)制SoftwareEvalBoardsSTSTM32F103ZE-SKIARBSP下的源文件到
          D:worksEK-STM3210E-UCOSIIUcsoftwareuC-BSP
          復(fù)制SoftwareuC-CPUARM-Cortex-M3IAR 下的源文件到
          D:worksEK-STM3210E-UCOSIIUcsoftwareuC-CPU
          復(fù)制SoftwareuC-LIB文件夾到
          D:worksEK-STM3210E-UCOSIIUcsoftwareuC-LIB
          復(fù)制SoftwareuCOS-IIPortsarm-cortex-m3GenericIAR下的源文件到
          D:worksEK-STM3210E-UCOSIIUcsoftwareuCOS-IIPorts
          復(fù)制SoftwareuCOS-IISource下的源文件到
          D:worksEK-STM3210E-UCOSIIUcsoftwareuCOS-IISource

          6,復(fù)制頭文件

          A,復(fù)制SoftwareEvalBoardsSTSTM32F103ZE-SKIAROS-Probe-LCDapp_cfg.h到
          D:worksEK-STM3210E-UCOSIIIncludeapp_cfg.h
          去掉文件中下面幾行:
          //#define APP_CFG_PROBE_OS_PLUGIN_EN DEF_ENABLED /* DEF_ENABLED = Present, DEF_DISABLED = Not Present */
          //#define APP_CFG_PROBE_COM_EN DEF_ENABLED
          //#define APP_CFG_LCD_EN DEF_ENABLED
          //#define APP_CFG_KSD_EN DEF_ENABLED

          B,復(fù)制SoftwareEvalBoardsSTSTM32F103ZE-SKIAROS-Probe-LCDos_cfg.h 到
          D:worksEK-STM3210E-UCOSIIIncludeos_cfg.h
          復(fù)制SoftwareEvalBoardsSTSTM32F103ZE-SKIAROS-Probe-LCDincludes.h到
          D:worksEK-STM3210E-UCOSIIIncludeincludes.h
          復(fù)制SoftwareuC-CPUcpu_def.h到
          D:worksEK-STM3210E-UCOSIIIncludecpu_def.h

          7,去掉編譯中出現(xiàn)的找不到stm32f10x_lib.h頭文件錯(cuò)誤
          注釋掉所有引用到stm32f10x_lib.h的源文件的這行://#include

          在D:worksEK-STM3210E-UCOSIIUcsoftwareuC-BSPsp.c中注釋掉:
          // FLASH_SetLatency(FLASH_Latency_2);
          // FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

          // FLASH_SetLatency(FLASH_Latency_2); /* Embedded Flash Configuration */
          // FLASH_HalfCycleAccessCmd(FLASH_HalfCycleAccess_Disable);
          // FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);


          8,修改中斷向量
          把D:worksEK-STM3210E-UCOSIILibrariesCMSISCoreCM3startupiarstartup_stm32f10x_md.s
          中的:
          PendSV_Handler 改為:OS_CPU_PendSVHandler
          SysTick_Handler改為:OS_CPU_SysTickHandler
          并在文件前添加:
          EXTERN OS_CPU_PendSVHandler
          EXTERN OS_CPU_SysTickHandler

          三,移植修改EK-STM3210E-UCOSII工程
          1,在D:worksEK-STM3210E-UCOSIIUcsoftwareuC-BSPsp.c中
          修改鍵盤(pán)宏定義,鍵盤(pán)初始化及鍵盤(pán)狀態(tài)讀取,使之與EK-STM3210E板硬件相一致;
          2,在D:worksEK-STM3210E-UCOSIISourceapp.c中
          修改接收到按鍵信息做相應(yīng)的處理;

          四,編譯調(diào)試EK-STM3210E-UCOSII工程

          按常規(guī)編譯下載調(diào)試即可。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();