新唐M251 CORTEX-M23内核移植TencentOS tiny教程
Cortex M23 移植TencentOS tiny
- 準備源碼和工具
- 準備硬件、軟件
- 移植開始
準備源碼和工具
TencentOS tiny的源碼地址在這: TencentOS tiny.
MDK軟件下載在這:MDK5.28 已有MDK請忽略
項目需要的資料我已經上傳 M251_Sourse
準備硬件、軟件
硬件:
1個新唐 Numaker_M251_252SD demo板,如果你有其他板子,只要是M251或者M252都可以,可以正常下程序的
1個Nulink 用來下載程序的
軟件:
TencentOS tiny代碼包
我上傳的資料包里邊的Nu-Link_Keil_Driver 3.00.6909.exe一路安裝,提示是否需要加入軟件包的時候點確定即可
解壓M251_252_Series_BSP_CMSIS_V3.00.002.zip備用,以下是先把一個裸機工程的必須文件提取,如下
桌面新建一個文件夾名為Nuvoton Tos(隨意),然后新建如下幾個文件
TencentOS里邊新建三個文件夾 arch 、kernel、TOS_CONFIG這三個文件夾
然后先拷貝CMSIS文件,把M251_252_Series_BSP_CMSIS_V3.00.002圖中三個文件拷貝到工程的CMSIS下
到M251_252_Series_BSP_CMSIS_V3.00.002中復制圖中紅框內的文件夾和文件到工程的STARTUP文件夾內
然后進入ARM文件夾內,復制startup_M251.s
然后把整個外設驅動文件夾內全部復制到工程的StdDriver內
最后到TencentOS tiny的移植
進入TencentOS tiny 文件夾 \TencentOS-tiny\arch\arm\arm-v7m\common 和
\TencentOS-tiny\arch\arm\arm-v7m\cortex-m0+\armcc
復制框中的文件夾到工程的TencentOS 的 arch內 這些就是操作系統和內核的接口文件
然后把 kernel內的所有文件復制到工程的kernel內這些就是實現操作系統的底層文件
TOS_CONFIG 文件夾內的文件在 \TencentOS-tiny\board\TencentOS_tiny_EVB_MX\TOS-CONFIG
把它復制到工程的TOS_CONFIG 文件夾內
這樣準備工作就基本完成,接下來就是移植了
移植開始
打開MDK 新建一個工程 然后把工程保存到工程Project文件夾內,名字隨意取
接下來是選擇目標單片機,我這里是M251KG6AE,看你的板子是什么單片機就選什么單片機
然后勾選CMSIS的CORE
一個空工程模板就建好了,接下來要放入文件,添加對應對應文件夾內的代碼
這是添加好的代碼 紅框內的文件是在kernel 的 pm文件夾內,此時USER文件夾內是空的,需要新建一個main.c文件
新建main.c 放入以下代碼,里面就是初始化系統,選擇時鐘源,然后創建兩個任務
保存到工程文件夾Project內,然后再添加到MDK USER中即可
然后包含頭文件如圖:
接下來是修改核心文件,先構建系統滴答定時器的中斷服務函數
在 system_M251.c 文件中包含Tos頭文件 在最下面添加中斷服務
修改串口的引腳,在該文件的最下面,我的demo板子是用的uart0,引腳對應的是A0 A1,所以修改一下
然后在串口函數下面添加滴答定時器的中斷服務函數
//systick 中斷處理函數 void SysTick_Handler(void) {if (tos_knl_is_running()){tos_knl_irq_enter();tos_tick_handler(); //系統的心跳tos_knl_irq_leave();} }修改內核頭文件:打開port_c.c文件,修改單片機內核頭文件
然后修改tos_config文件
還有下面的設置系統的時鐘頻率的,這里要和單片機設定的內核時鐘頻率移植,否則會出現時間不準確的現象。
然后編譯
然后就下載到板子上,先選擇仿真器,并對仿真器進行設置:
然后把USB-TTl,鏈接PA0 PA1,打開串口調試助手,設置115200波特率,打開串口,然后按一下板子上的復位鍵,即可看到串口打印任務1 和 任務2 ,任務1是每秒打印,任務2是100ms打印,然后板子上的LED燈每秒交替亮滅,說明系統正常跑
到這里,TencentOS tiny 移植新塘M251 cortex-M23內核成功!
最后獻上代碼 點我
我也開始使用github了,代碼在gihub上也有
GITHUB
總結
以上是生活随笔為你收集整理的新唐M251 CORTEX-M23内核移植TencentOS tiny教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac没有右Control的解决办法
- 下一篇: django实现利用邮箱进行登录