自從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會自動把文件加到你的工程。牢記,帶鎖的文件肯定是不建議你修改的。
推薦閱讀
先前畫的一款電機驅動板,今天總算有時間調試了,,,效果如上,實驗室裡面的洗板水用沒了。。。。沒有辦法收拾的乾淨了,LED 沒了。。。 接線端子開關也沒了。。。條件很艱苦 進入正題,上圖主控是STM32F103C8T6就是網上賣的最便宜的那種。出現的問題時keil下載不進去程序。提示是這樣玩的我先用j-link自帶的工具j-flash進行了測試確定了晶片是可以通訊並且可以進行hex文件的燒錄的。這樣定位問題應該是keil 的配置出了問題。 keil也不是一直出問題。某一次 也是可以下載的。經過多次嘗試,我發現當我用j-flash擦除晶片並且解鎖unsecure晶片之後keil可以正常的下載程序。 然後就
發表於 2020-04-11
以前一直在用J-Link下載程序,由於工作需要,換成ST-Link下載程序。第一次用ST-Link怎麼也下載不下去,後來查CSDN博客:https://blog.csdn.net/zeroice7/article/details/59483155 找到解決辦法,就是,在Keil安裝目錄下,C:Keil_v5ARMSTLink下找到升級文件「ST-LinkUpgrade.exe」,點擊,打開應用程式對ST-Link/V2執行升級,重新插拔ST-Link,就可以下載程序了,
發表於 2020-03-12
MSP432是德州儀器推出的新一款高性能低功耗處理器, Cortex -M4內核,較430相比處理能力大大增強,同時採用了430設計的低功耗技術,和傳統ARM相比功耗更低,相信在不久的未來,TI將會推出更多的MSP432系列處理器,MSP432也會得到廣泛應用,這裡介紹一下如何使用keil5新建一個MSP432工程。 1.準備工作:打開keil5的Pack Installer,選擇要安裝的晶片包,我使用的是MSP432P401R晶片,安裝好對應的晶片包。 在KEILv5的目錄下,可以從剛剛下載的晶片包中找到相關驅動庫,為避免
發表於 2020-02-27
最近師傅要求我們利用keil5生成.bin文件,但是在網上查找了很多資料,也按照網上的方法來設計,但是結果都不如意,沒有出來。今天早上有折騰了一段時間,歷經千辛萬苦,終於生成了.bin文件了。雖然寫得有點囉嗦,看起來比較繁瑣,但一步一步跟著操作,你會發現還是很簡單的,下面分享一下,希望能幫到各位小夥伴。由於語言和能力不足,如果有錯,還勞煩大佬斧正。生產.bin文件方法有兩種,一種是打開安裝路徑中的中的fromelf.exe,另一種是如我下圖所示方法。下面我介紹下我所有的方法。點擊User欄,將Run#1打勾,並在後面的方框中填入生成.bin的路徑。我的路徑為:fromelf(一個空格) --bin(一個空格) --output
發表於 2020-01-19
STARTUP.A51原始文件: 1 $NOMOD51;Ax51宏彙編器控制命令,禁止預定義的8051。使編譯器不使能預定義的;8051符號,避免產生重複定義的錯誤。 2 ;------------------------------------------------------------------------------ 3 ; This file is part of the C51 Compiler package 4 ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software
發表於 2020-01-15
如何使用keil5開發msp430,Tiva系列Launchpad系列是Ti德州儀器推出的一系列低成本開發評估套件,即使放到現在,這系列的MCU仍舊不失為一款優異的微控制器晶片。Ti Launchpad平臺的另一個系列板卡——Tiva C系列的TM4C123G Launchpad評估套件EK-TM4C123GXL,基於高性能的ARM Cortex-M4處理器。由於TI官方提供的CCS用起來很麻煩,安裝也很麻煩。故我們想辦法在MDK平臺上開發對吧。同樣大家也可以用IAR for msp430首先需要安裝MDK5即Keil5.未安裝的同學請轉此https://baijiahao.baidu.com/s?id
發表於 2020-01-15