keil5.24創建uCOSIII工程實現stm32實時作業系統(環境配置)

2021-01-08 電子工程世界

自從ARM keil升級到keil5系列版本後,Keil工具對作業系統,以及各種庫文件的移植大大簡化了

只需要動動手指,勾選一些庫文件就能實現移植工作了。

1:假設你安裝了keil 5.24(稍早點版本支持的os偏少),並且下載了你需要的支持包。

首先,安裝KEIL5,簡單 不作描述

其次,下載 PACK 簡單不作描述(根據具體的STM32期間選型相應的DFP文件)

下載需要的middle

下載需要的ucosiii

 假設你用MCU晶片是stm32f10x,就點擊pack install 左邊選擇器件stm32f1系列,右邊把你要用的OS,arm基本庫,stm32f10x_DFP就是stm的庫支持包,以及編譯器自動在線更新好。

 例如下圖,我選擇了DFP,CMSIS,編譯器,middleware,uCOSIII, freertos9(最近在看這個,就順手下了).




2: Keil創建工程

    依次project-new project- 選擇位置,選擇器件,直到出現下面窗口,以前的教程都是讓你直接點擊cancel,然後去手動移植uCOS,手動安裝庫文件,這不是傻麼。

    按下圖勾上core,startup,uCOSIII(還可以不用uCOS或者選擇華為的liteOS,或者熱門的FREERtos,前提是你在pack intall裡面先在線安裝了),點擊確認,第一個工程就建設好了。

  


  請注意上面的藍色部分,stdPeriph Drivers ,這就是ST的官方庫,點擊進入,用到IO就勾上GPIO,用到串口就勾上Usart... 其中有2個是選了其他的就必選的。

一個是RCC,一個是framwork,記得只要都變綠了就正常了,如果沒有,就看看坐下,那些是關聯的,也勾上。


3:工程文件預覽

  下面是我的示例工程,我用到了GPIO口輸出LED,模擬的時候可以看我的程序是否正常工作。



記住裡面的帶鎖的文件是不建議你修改的,這些文件是你的keil工程公用的,在Keil目錄下。

不帶鎖的文件都是給你修改的

RTE_Device.h是你的外設配置文件,打開後點擊下面的config wizard標籤,可以通過勾選來配置你的外設參數,例如使用埠,頻率,復用映射之類的。

設置後會關聯stm32f10x.conf.h,所以後者你不用管。

system_stm32f10x.c是系統初始化程序,新版本systeminit是自動調用,然後跳到main(的,你如果需要在main前初始化系統某些參數可以修改。

startup_stm32f10x_hd.s NVIC的中斷映射表,非常關鍵,需要修改,後面會提到。

RTOS下面是uCOSIII的文件。

其中app_cfg.c是空文件,是你的app.c的頭文件,不過我們一般都是用main.c main.h...

cpu_cfg.h 和 lib_cfg.g 是幾個簡單的CPU和Lib的參數,基本不用修改。

os_cfg.h 是OS的裁剪配置文件,就是關閉一些你用不上的函數和功能塊,例如消息隊列Q你沒用這個功能,那麼Q,Q的del,abort函數等,都能禁止,主要是減少代碼大小用的。按需要修改

os_app_cfg.h  系統心跳頻率,以及幾個系統任務stat systick tmr idle的優先級,堆棧大小等的配置參數。按需要修改。

os_cpu.c.c 沒錯,整個OS就這一個.c能讓你修改,因為這就是所有的空鉤子函數,你需要用到就填寫代碼好了,還有systick中斷處理函數也在這裡。


4 創建app.c添加到source gourp1 喜歡就單擊改個名字不叫source group1..

   寫上你的main函數,創建你幾個任務。

   例如任務1創建任務23,2亮閃爍LED1, 3閃爍LED2。

   但是你會發現uCOS沒工作。

   uCOS工作,需要幾個條件。

   1:啟用systick定時器。

       OS_CPU_SysTickInit(9000);                               // 72M下,8分頻,1ms心跳的初始值。
       SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);      //上面自帶的初始化頻率是72M,這裡選擇外部時鐘  HCLK/8

      然後OSInit();  創建主任務,OSStart();   

2 中斷向量映射

     OS需要用到2個中斷,一個是PendSV_handler,一個是SysTick_handler。

     OS自帶了這2個中斷函數,但是名字是OS_CPU_PendSV_handler一個是OS_CPU_SysTick_handler.

     以前的做法之一是把後面的改成前面的名字。但是這個新版本os_cpu_a.s是禁止修改的,說明keil不建議這樣做。

     你如果不想用系統的,就得自己寫2個同名函數,但是沒必要。

     那麼我們直接修改中斷向量表文件,把startup_stm32f10x_hd.s 裡面的PendSV_handler全替換成OS_CPU_PendSV_handler。

     把SysTick_handler全替換成OS_CPU_SysTick_handler。 這個目的和結果和改名是一樣的。

     不同晶片的中斷相連表文件會不同,如果不用OS,stm標準庫以前帶了個stm32f10x_it.c文件,裡面就是幾個系統中斷的同名函數。

     5.24是沒有stm32f10x_it.c,bsp.c之類文件的。如果你沒用到uCOS,就需要自己寫這些函數了。


5 模擬仿真

   按下面配置就能模擬仿真,並且監視IO波形圖,如果有串口,還能監測串口。




上面的圖2的配置是可以隨時修改的,也就是你想加個ADC,勾上,想用其他的外設庫,勾上,前提是你知道你勾上的是啥。。。。

Keil會自動把文件加到你的工程。牢記,帶鎖的文件肯定是不建議你修改的。


關鍵字:keil5  24  uCOSIII  stm32  實時作業系統 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/2018/ic-news100641524.html

推薦閱讀

Keil5中51單片機和MDK的整合的方法

不知道論壇的朋友們是怎麼處理MDK和51的,在前一段時間,我是用Keil4來寫51,Keil5寫ARM。後來發現它兩其實可以整合到一塊。在這分享一下我的雕蟲小技。1.Keil5的安裝網上的教程非常之多,這裡我提供MDk526的包,雙擊安裝就行。x也在裡面。2.Software Packs下載選擇需要的晶片包下載,比如上圖的DFPXXX什麼的就是晶片包。我也提供了STM32F4系列還有TI的MSP432。3.51的導入使用stc官方的下載助手,一鍵導入。4.最終成型最終就可以在一個IDE裡編輯這兩種內核的了,當然C251內核的也可以這樣導入。連結:https://pan.baidu.com/s/1XPUoip

發表於 2020-09-18

keil5中找不到lpc2368的解決方法

在用lpc2368的時候在MDK5 Software Packs找不到lpc236在官網搜尋了一番找到了這個下載後完美解決問題

發表於 2020-07-03

使用keil5 搭建2440開發環境

手頭有一塊TQ2440的開發板,最近由於項目需要,需要用上,官方提供的源碼和uboot都是基於ADS,這麼老的開發環境當然不想用,當然使用keil了,去keil官網(http://www.keil.com/)發現,keil已經更新到keil5,於是打算鼓搗使用keil5了。打開官網下載:為了方便起見,我把相關資料上傳到我的百度云:keil521下載:連結:http://pan.baidu.com/s/1Cl8Ea 密碼:f4zx             註冊機下載:連結:http://pan.baidu.com/s/1En2FW 密碼:ixid老版晶片支持包連結

發表於 2020-07-03

基於SmartARM2300開發板的ADS工程移植keil5工程

需求描述:最近在用LCP2378做項目,需要用到此晶片上的CAN接口,官方給的例程中,是ADS平臺下的,根據我個人習慣,想在keil下進行開發,所以就需要將源碼轉換到keil平臺上,根據需要搭建好keil5的軟體環境(需要能支持LPC2XXX系列晶片支持包)。1.新建keil工程,選擇LCP2378晶片:2、會提示是否加載LPC2300.S可以選擇加載後可以刪除,這個文件相當於ADS裡面的Startup.s是程序啟動文件(就是復位、中斷、main跳轉之類的),由於將ADS工程移到這邊可以不需要keil自帶的LPC2300.S3、 將ADS工程文件全部考到Keil 工程文件夾下,後在工程中將文件都加入(除了scf文件),keil工程

發表於 2020-07-02

將TQ2440的ADS工程文件移植到KEIL5中

TQ2440的例程都是ADS環境下的,ADS已經是古董級的軟體,win7都不帶支持何況WIN10。考慮需求就嘗試將工程移植到keil5上。查找了大量資料,試驗加修改總算是移植成功了。文後附上所參考的地址。這裡總結一下,方便查看:keil環境配置打開keil,下載相關的內核,sumsung2440的。新建工程,選擇相關內核(會提示添加源文件,如果自己有就不要添加了,直接導入),將文件導入到工程,此處和導入STM32的h文件,c文件一樣注意拷貝文件時inc文件一定要和源文件在一個文件夾(不是指工程中,是你實際存放文件的文件夾裡)就是和2440init.s文件放一塊設置Target選項卡這裡SIZE可以自行設置1000000也行 那後面

發表於 2020-07-01

Micro2440 Nboot ADS 移植到Keil5編譯通過

由於項目需要開發老版本S3C2440,由於時間有限系統當然跑WinCE6.0,軟體兼容性好 當然安裝開發工具等等一大堆是相當頭疼,之前做STM32特別多,個人電腦一大堆都是32的BSP包,keil用的特別順手,這次開發2440需要用到友善提供的Nboot,由於ADS軟體兼容行特差問題太多不想折騰了,將Nboot移植到keil5上,步驟1:需要下載keil下ARM9的支持包,給上邏輯 http://www2.keil.com/mdk5/legacy,下載Legacy support for Arm7, Arm9 & Cortex-R devices安裝即可。步驟2:將所有Nboot文件拷貝到keil工程下,如下:步驟

發表於 2020-06-13

相關焦點

  • ARM DS-5開發STM32程序(Eclipse配合Keil插件使用)
    ARM DS-5是基於Eclipse的ARM開發環境,有完善的編譯流程,配合Keil插件開發STM32效果更佳。廢話不多,先介紹思路:1.安裝MDK軟體,就有編譯STM32的工具鏈。
  • KEIL4 工程到 KEIL5 程序的移植方法
    由於 KEIL4 和 KEIL5 程序之間的差異, 所以 KEIL5 不能直接打開 KEIL4 的工程。 但是為了確保 KEIL5 向下的兼容性, ARM 公司為我們提供了兩種兼容 KEIL4 程序的方式。首先我們用 keil5 打開 keil4 的工程, 則會彈出下面的窗口, 這就是我們程序兼容的關鍵。
  • STM32開發環境(工具)之Keil MDK 介紹
    5.1.1 開發過程及集成開發環境簡介1. Keil的軟體開發周期使用Keil來開發嵌入式軟體,開發周期和其他的平臺軟體開發周期是差不多的,大致有以下幾個步驟:1. 創建一個工程,選擇一塊目標晶片,並且做一些必要的工程配置。2. 編寫C或者彙編源文件。3. 編譯應用程式。4. 修改源程序中的錯誤。5. 聯機調試。
  • ucOS學習筆記(4)——一步一步移植ucOS到STM32
    因此我們需要在工程設置中的C/C++選項卡手動增加頭文件路徑,針對以上錯誤我們應該增加的頭文件路徑未.\Sourcee.再次編譯發生錯誤.\Source\ os_ii.h(44): error: #5: cannot open source input file "app_cfg.h": No s h file or directory這個問題應該不是原生 OS導致的,是micrium移植系統的時候修改了源文件,在其中增加了一些配置選項,這個配置選項保存在app_cfg.h中,但是micrium發布移植文件包的時候該文件又沒有包含在內
  • 在keil中怎麼燒寫程序
    Keil提供了包括C編譯器、宏彙編、連結器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。運行Keil軟體需要WIN98、NT、WIN2000、WINXP等作業系統。如果你使用C語言編程,那麼Keil幾乎就是你的不二之選,即使不使用C語言而僅用彙編語言編程,其方便易用的集成環境、強大的軟體仿真調試工具也會令你事半功倍。
  • 非常詳細的Keil工程建立全過程講解
    掌握這一軟體的使用對於使用51系列單片機的愛好者來說是十分必要的,即使不使用C語言而僅用彙編語言編程,其方便易用的集成環境、強大的軟體仿真調試工具也會令你事半功倍。Keil uVison4是普通版本,只能適用於單片機,主要是基於8051系列單片機的開發環境;Keil MDK是擴展版本,包含了部分ARM。
  • MDK V5.28來了,STM32G4也來了
    Holtek HT32系列開發套件具體請參看:http://www.keil.com/pr/article/1289.htm網址:https://www2.keil.com/stmicroelectronics-stm32/mdk2.改進支持獨立的跟蹤時鐘
  • 第5節:用keil軟體新建,關閉,打開一個完整工程的操作流程
    從業十年,教你單片機入門基礎 第五講:Keil平臺軟體的安裝我就不多講了,網上這方面的資料很多,大家可以百度一下如何安裝keil的教程。
  • Keil uVision4單片機
    Keil4提供了包括C編譯器、宏彙編、連接器、庫管理和仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部分組合在一起。在學習單片機,微型計算機控制等課程,或者在protuse軟體上,Keil uVision4免費版會給你很大幫助。
  • 用STM32單片機實現nrf24無線控制電機和舵機
    材料:1、兩塊stm32F108C8T62、兩個nrf24L01 模塊3、一塊L298N電機驅動模塊4、兩個PS2 遙感模塊5、STM32接法發送端:用了兩個遙杆按鈕作為控制舵機和電機的方向和速度;舵機部分只接了x軸輸出、電機分正反方向分別對應x、y軸兩個輸出nrf24的發送端帶有天線,直接7個引腳控制舵機的搖杆x軸輸出接到  PA0控制電機的搖杆x軸、y軸分別接到PA1、PA2搖杆的+、-接stm32
  • iot 作業系統 - CSDN
    Mynewt是一個專注於物聯網(IoT,Internet of Things)應用的實時作業系統,包括低功耗藍牙(BLE4.2)無線傳輸協議棧NimBLE。Mynewt支持豐富的實時作業系統特徵,可以在不同的硬體平臺上運行,包括ARM Cortex M0-M4微控制器,以及基於MIPS和RISC-V架構的處理器。
  • 基於和欣嵌入式作業系統實現的一個構件化的網絡協議棧設計淺析
    另外,作業系統對構件化軟體模型提供了必要的運行環境,來源不同的構件可以在該環境上實現互操作。系統提供了構件自動尋址/自動加載機制,用戶不必知道調用的構件程序是本地的還是來自於網上,即構件運行環境對用戶透明。構件化系統的實現,使得作業系統本身具有高度的靈活性和擴展性。和欣採用了CAR構件技術。
  • 企業級雲平臺如何應用Chef,實現雲端自動化配置管理
    在雲環境中,自動化部署是一項重要的工作,當前對於虛機的配置以及軟體和應用的自動化部署,很多企業級雲平臺都採用了Chef。Chef 是 IT 自動化平臺,也被稱為部署自動化工具和 DevOps 使能者,可讓用戶創建、部署、變更和管理基礎設施運行時的環境和應用。
  • 微軟為Windows 10帶來實時動畫桌面 讓作業系統更加個性化
    12月6日消息 外媒 Windows Latest 報導,一款新的微軟商店應用為 Windows 10 帶來了實時動畫桌面。   Windows 10 包含了多種設置,可以改變桌面和應用的外觀,讓作業系統的感覺更加個性化。目前,你可以在深色或淺色主題之間進行切換,並直接從 「設置」中更改 「開始」菜單和任務欄的顏色屬性。
  • 自學單片機第三篇:keil軟體
    圖標雙擊打開軟體,界面如下。第一個選項是文件,下拉表中,我們當前要點擊下圖黃色部分,安裝證書。色彩這個是建立新工程,每次寫新程序,要先建個新工程才行。工程這個是設置快閃記憶體調試點第二行第一個白紙,在工程中,新建一個空白程序,點亮小燈那個是之前我的舊程序,不用理會。
  • 化身阿凡達,國外小哥開源 AI 實時變臉工具 Avatarify
    看過電影阿凡達(Avatar)的朋友應該對這款軟體的立意並不陌生,簡單理解就是把別人的臉套在自己的表情上實時驅動。Avatarify 的作者 Ali Aliev 最初只是想逗一下在 ZOOM 上開會的同事,在視頻會議期間將一些名人的臉實時疊加到自己的臉上。
  • 單片機keil 常見問題
    一、混合編程1、模塊內接口:使用如下標誌符:#pragma asm彙編語句#pragma endasm注意:如果在c51程序中使用了彙編語言,注意在keil