日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

华大单片机移植TencentOS

發布時間:2024/1/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 华大单片机移植TencentOS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

華大單片機移植TencentOS-Tiny

文章目錄

  • 華大單片機移植TencentOS-Tiny
    • 一、參考鏈接:
    • 二、資料準備
    • 三、開始移植
    • 四、移植完成-測試
    • 五、總結

一、參考鏈接:

1.Tiny的有關概述我就不說了。直接上官網看就可以了。

2.(1)TencentOs官網

(2)其他參考鏈接:杰杰博主

(3)API說明和demo

二、資料準備

1.要先移植TencentOS,肯定必須要有Tiny的源碼,下載源碼有兩個方法,(1)通過github直接下載 github鏈接,(2)通過騰訊的 工蜂鏈接

2.要在華大單片機上移植,同樣也必須要又華大單片機的可用工程模塊,博主我使用的是華大HC32L13X系列,其他系列一樣。工程模板,相信大家手上都是有的。

3.萬事俱備,只欠東風

三、開始移植

1.由于前面有了許多前輩走的坑,以及寫下的心血,有些部分仔細操作可以具體看下 上面的 杰杰博主鏈接。

2.下載下來是下面的樣子

3.由于Tencent與華大有合作吧,反正出了個Hc32L136的demo,這就很舒服了。。不過我還是不喜歡,畢竟沒有比這就動手來的實在,也能加深印象。

4.在我們的工程目錄下新建一個TencetOS,然后將arch和kernel copy過來,在建個文件夾將 tos_config.h也拷貝過來。再將文件添加到工程中

(1)TencentOS\kernel\core路徑下的所有.c文件添加到tos/kernel工程分組中.同時將TencentOS\kernel\pm目錄下的所有.c文件添加到tos/kernel工程分組中。

(2)TencentOS\arch\arm\arm-v7m\common路徑下的 tos_cpu.c、tos_fault.c添加到tos/arch工程分組下面,也將TencentOS\arch\arm\arm-v7m**cortex-m0+**\armcc路徑下的port_s.S、port_c.c文件添加到tos/arch`工程分組下面

(3)再將TencentOS\TOS-CONFIG路徑下的tos_config.h文件添加到tos/config`工程分組中。

(4)最后將頭文件的路徑添加進去即可

…\TencentOS\arch\arm\arm-v7m\common\include …\TencentOS\arch\arm\arm-v7m\cortex-m0+\armcc …\TencentOS\kernel\core\include …\TencentOS\kernel\pm\include …\TencentOS\TOS-CONFIG

(5)把這個勾上

(6)添加這個頭文件

(7)把 interrupts_hc32l13x.c里面的這個函數改成這樣

void SysTick_Handler(void) { //系統自帶//SysTick_IRQHandler();//TOSif(tos_knl_is_running()) //TOS開始跑了,才能執行正常的調度處理{tos_knl_irq_enter(); //進入中斷tos_tick_handler(); //調用UCOS的時鐘服務函數tos_knl_irq_leave(); //觸發任務切換軟中斷} }

通過上面的操作基本將TencentOS成功的移植到我們的工程模塊中了。接下就測試下是否可行。。寫個簡單的demo試下

四、移植完成-測試

對了。。。。。。。
要在main函數添加這個頭文件哦!!!
#include "tos_k.h"

#if TASk_TEST k_task_t task1; k_task_t task2;k_stack_t task_stack1[512]; k_stack_t task_stack2[512];void test_task1(void *parameter); void test_task2(void *parameter);void test_task1(void *parameter) {while(1){printf("hello world sym 1!!!!\r\n");tos_task_delay(1000);} }void test_task2(void *parameter) {while(1){printf("hello world sym 2!!!!\r\n");tos_task_delay(2000);} } #endif k_err_t err1;k_err_t err2;tos_knl_init(); //初始化內核#if TASk_TESTerr1 = tos_task_create(&task1,"test_task1",test_task1,NULL,2,task_stack1,512,0);if(err1 != K_ERR_NONE){printf("TencentOS Create task fail! code : %d \r\n",err1);} err2 = tos_task_create(&task2,"test_task2",test_task2,NULL,3,task_stack2,512,0);if(err2 != K_ERR_NONE){printf("TencentOS Create task fail! code : %d \r\n",err2);}#endiftos_knl_start();

實驗現象:多說無憑

五、總結

1.基本上操作系統的移植都相差不大,都是移植內核和部分配置文件即可。

2.不同的芯片廠商不同。可以的庫函數配置不一樣。所以這才是注意的點。。

3.最后一說,文章有一部分是參考杰杰博主的。再次感謝。文中有何問題歡迎提出!一起改進!加油。支持國產

總結

以上是生活随笔為你收集整理的华大单片机移植TencentOS的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。