839|8

6873

帖子

11

TA的资源

版主

楼主
 

【ACM32G103RCT6开发板测评】移植TobudOS [复制链接]

 

最近TobudOS捐给了开源原子基金会,我体会了他的系统后,感觉好用,移植也非常轻松,这里跟大家分享一下移植过程。

【源码下载】

网址:https://atomgit.com/OpenAtomFoundation/TobudOS

网速还是非常快的。

【工程模版】

我下载了论坛提供的软件包后解压出来,找到template把他得命名一下。

 

2、编译一下工程版,确保编译可以通过,并且闪灯与printf可以正常打印。

3、把TobudOS源解压开后,在工程目录中新建os文件夹,并把源码里面的arch、kernel复制到该文件夹里。

 

3、根据官方提供的资料,ACM32G103 芯片的内核基于 ARMv8-M 架构,支持 Cortex-M33 和 Cortex-M4F,所以我这里选择Cortex-M33内核来移植。

4、在工程,我新建三个工程组,分别为kernel、arc、config:

 

5、将\os\kernel\core下面所有的.c文件全部添加进os/kernel工程中,将\os\arch\arm\arm-v8m\cortex-m33\armcc目录下面的port_c.c、port_s.S添加到os/arch中、将目录\os\arch\arm\arm-v8m\common添加arch工程组中。

    6、从源码的\TobudOS-master\board\BearPi_STM32L431RC\TOS-CONFIG文件夹下复制一份tos_config.h到工程中,并加入os/config分组中。

7、将工程需要的头文件添加进工程中,具体如下:

   

7、把main.h添加到tos_config.h文件里,找到工程的总线时钟,并将添加了config.h中。

 

8、注释掉acm32g103_it.c中的PenSV_handle函数,因为在tobudos有定义这个中断函数,否则报重复定义,或者添回__weak也可以。

 

9、重定定义SysTick_handle函数,为tobudOS提供心跳,当然你也可以自己定义一个1ms的定时器来为系统提供心跳包。

/******************************************************************************
*[url=home.php?mod=space&uid=159083]@brief[/url] : System tick handler
*@param : none
*@return: none
******************************************************************************/
void SysTick_Handler(void)
{
    //HAL_IncTick();
    if(tos_knl_is_running())
    {
        tos_knl_irq_enter();
        tos_tick_handler();
        tos_knl_irq_leave();
    }
}


10、在main.c中创建两个任务,代码如下:


#include "main.h"   
#include "tos_k.h"

k_task_t task, led_task;

k_stack_t task_stack[1024], task_stack_led[1024];

void test_task(void *Parameter)
{
	while(1)
	{
		printf("hello tobuandOS\r\n");
		tos_task_delay(1000);
	}
}

void led_task_entry(void *Parameter)
{
	while(1)
	{
		BSP_LED_Toggle();
		tos_task_delay(500);
	}
}
/******************************************************************************
*@brief : main program
*@param : none
*@return: none
******************************************************************************/
int main(void)
{
    uint32_t count=0;
	k_err_t err;
	
	HAL_Init();
    SystemClock_Config();
	
    BSP_UART_Init();  	
	BSP_LED_Init();
	
	tos_knl_init();
	err = tos_task_create(&task, "task1",test_task,NULL, 2, task_stack,1024,20);
	err = tos_task_create(&led_task, "task_led",led_task_entry,NULL, 2, task_stack_led,1024,20);
	tos_knl_start();
//	BSP_LED_On();
//	HAL_Delay(500);
//	BSP_LED_Off();
//	
//    while(1)
//    {
//		BSP_LED_Toggle();
//		HAL_Delay(500);
//        printfS("%d\r\n",count++);
//        
//    };
}

【实现效果】

编译后下载到开发板,可以看板载的LED灯规律闪烁,串口助手也打印了:

 

【心得】航芯科技提供了非常好的工程模版,使得上手非常容易。我看了他们没有操作系统的模版,在这里给他补上吧,如果他们需要,可以在以后工程加入,官方可以联系一下我呀,这里附年移植好的工程:

Projects_tobudOS.zip (734.07 KB, 下载次数: 3)

最新回复

TobudOS对比其他RTOS系统优势你感觉有哪些?   详情 回复 发表于 2023-12-31 20:56
点赞 关注
 
 

回复
举报

429

帖子

3

TA的资源

纯净的硅(高级)

沙发
 

TobudOS是新的系统还是原来腾讯那个物联网系统,很不错。

点评

应该差不多,只是他们捐给原子基金会后,好象修改了名称,我原来在沁恒的板子也体验过,不过没有怎么深入体验。  详情 回复 发表于 2023-12-29 16:15
 
 
 

回复

6873

帖子

11

TA的资源

版主

板凳
 
TL-LED 发表于 2023-12-29 15:30 TobudOS是新的系统还是原来腾讯那个物联网系统,很不错。

应该差不多,只是他们捐给原子基金会后,好象修改了名称,我原来在沁恒的板子也体验过,不过没有怎么深入体验。

 
 
 

回复

226

帖子

0

TA的资源

一粒金砂(高级)

4
 

下一期我也出一个FreeRTOS的移植

点评

好呀好呀,这开发板的内存足够,跑上freertos,也是非常轻松的。  详情 回复 发表于 2023-12-29 17:50
 
 
 

回复

6873

帖子

11

TA的资源

版主

5
 
qiao--- 发表于 2023-12-29 17:41 下一期我也出一个FreeRTOS的移植

好呀好呀,这开发板的内存足够,跑上freertos,也是非常轻松的。

 
 
 

回复

41

帖子

0

TA的资源

一粒金砂(中级)

6
 
支持大佬,我下次也移植玩玩

点评

很容易的,非常简单,但是里面的信号量、邮箱什么都没有去看,有空时看看这些功能。  详情 回复 发表于 2023-12-31 19:45
 
 
 

回复

6873

帖子

11

TA的资源

版主

7
 
みずじ 发表于 2023-12-31 10:59 支持大佬,我下次也移植玩玩

很容易的,非常简单,但是里面的信号量、邮箱什么都没有去看,有空时看看这些功能。

 
 
 

回复

6938

帖子

2

TA的资源

版主

8
 

TobudOS对比其他RTOS系统优势你感觉有哪些?

点评

还没有对比,但感觉移植比RTT、freertos要简单一些。  详情 回复 发表于 2024-1-1 07:43
 
 
 

回复

6873

帖子

11

TA的资源

版主

9
 
wangerxian 发表于 2023-12-31 20:56 TobudOS对比其他RTOS系统优势你感觉有哪些?

还没有对比,但感觉移植比RTT、freertos要简单一些。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

推荐帖子
半导体供应商竞争焦点---下一代IP业务

宽带网络的广泛部署和VoIP应用的普及相辅相成。除了将企业应用作为主流市场外,VoIP还在政策缺失、运营商封杀的不利情况下逐渐向 ...

IC设计建模:设计公司、EDA、封装厂商新的合作方式(个人在项目中的一些体会)

刚进入实验室几个星期,谈谈自己的一些心得体会,希望能与各位设计高手多多交流,请大家多指教:进入深亚微米设计时代,IC设计再 ...

【我是原创】+Murray归来之手头零件大拼凑

单位的十一五项目总算告一段落,而对于一直钟爱的eeworld却有些时日没有关注了。 有句老话说的好,来的好不如来得巧。哈哈,以 ...

【PPT下载地址】采用C2000 TMS320F28027的LaunchPad启动开发工作

采用C2000 TMS320F28027的LaunchPad启动开发工作 C2000被广泛用于数字电机驱动、数字电源控制、新能源、等工业、家电、汽车方面 ...

#8月改装#暴力改装普源DP832电源

本帖最后由 wangjiafu1985 于 2015-8-27 09:04 编辑 暴力改装普源DP832电源  免责声明:本贴发表之前经SOSO姐向普源提出授 ...

萌新求助!无线遥控led恒流驱动电路。接收电路中哪一部分是混频电路?

地址码怎样检测?接收电路如何控制驱动电路工作?恒流驱动怎样从电路中体现?感激不尽 465670465669

EV2400 WIN7 64 BQ20Z45

win7 64位,安装Bq20Z45R1,连接EV2400,硬件属性里显示为USB输入设备,可以通过update更新为V0.28。但进软件报错,连接不上电池 ...

SensorTile.Box套件操作模式之入门模式试用

本帖最后由 lvqy 于 2020-4-25 14:56 编辑 SensorTile.Box套件操作模式之入门模式试用 安装APP 从资源帖—&mdas ...

一些采用STM32制作的测亩仪,给DIY的小伙伴们玩玩儿

有一个STM32F103RET6和NEO的GPS模块,当然也可以正常使用,需要换电池,可以送一个电池。如果需要DIY成其他东西,需要JLINK解锁F ...

【EETalk】储能大热,想投身这个行业的话又需要掌握哪些技能呢?

前不久管管发起过一个关于储能,大家比较关心什么的话题,看到很多网友在帖子下留言,其中有个问题管管也很感兴趣,就是这个行业 ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表