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