4296|3

32

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

[MsgOS]hello world! [复制链接]

本帖最后由 科技猎人 于 2016-6-16 18:17 编辑


[MsgOS]发个自己写的cortex-m单片机专用的操作系统
https://bbs.eeworld.com.cn/forum ... 2496&fromuid=703533
(出处: 电子工程世界-论坛)


[MsgOS]让系统跑起来
https://bbs.eeworld.com.cn/forum ... 2601&fromuid=703533
(出处: 电子工程世界-论坛)


[MsgOS]shell初体验
https://bbs.eeworld.com.cn/forum ... 2698&fromuid=703533
(出处: 电子工程世界-论坛)



源码也有了,程序也能跑起来了,接下来就该大家熟悉的"hello world!"了
修改app文件夹下的app.c如下所示,编译运行,在shell界面会每秒打印输出一次"hello world!"
  1. void   hello_world(uint32 data,void *ptr)
  2. {
  3.     static uint32 n=0;
  4.     printf("hello world!n=%d\r\n",n++);   
  5. }

  6. void   App_Init(uint32 data,void *ptr)
  7. {
  8.         stdio_mount("rtt");
  9.     msg_send(hello_world,0,NULL,1000,0,MSG_OPT_REPEAT);
  10. }
  11. MSG_REG(App_Init,0,NULL,0,0,0);
复制代码
说明:
1.App_Init是应用代码的入口函数
2.stdio_mount("rtt");//将rtt设备挂载到系统标准输入输出上,这样就可以使用标准库中的printf(),scanf()等标准输入输出流函数了。同时系统shell的输入输出也是使用标准库输入输出的。
3.msg_send(hello_world,0,NULL,1000,0,MSG_OPT_REPEAT);发送消息给系统。让hello_world函数每1000毫秒执行一次。
其中msg_send函数的原型为msg_st  *msg_send(msg_f  msgf,uint32 data,void *ptr,uint32  time,uint08  priority,uint16  opt);
输入参数:
msgf:类型是函数指针msg_f ,是消息执行时的回调函数,确定了这个消息要“干什么”
           函数指针msg_f的定义是typedef    void   (*msg_f)(uint32 data,void *ptr);有两个输入参数
data:类型是uint32 ,对应于msgf的第一个参数
ptr:  类型是void *,对应于msgf的第二个参数。data和ptr一同决定了msgf被回调执行时的输入参数。
time:类型是uint32,延时或周期时间,单位毫秒。MsgOS系统心跳固定为1毫秒,而其他家系统一般是可变的。
priority:类型是uint08,执行线程优先级,priority决定了消息在哪个线程中执行。
              MsgOS最多可有33个线程,最少两个线程,每个线程有唯一的优先级,或者说每个优先级里只能有一个线程。priority数值越大优先级越高,高              优先级线程可抢断低优先级线程执行。系统启动后会默认启动两个线程分别是:
             1.idle线程,优先级最低(-1)总是就绪状态,用于统计cpu空闲率。
             2.base线程,优先级为0,是消息执行的最低优先级
opt:类型是uint16 ,决定消息的一些特定属性,可选项有MSG_OPT_NONE,MSG_OPT_IRQ,MSG_OPT_PERIODIC,MSG_OPT_REPEAT
输出参数:类型是msg_st  *,即发送消息使用的消息体指针,如果为NULL说明消息发送失败。


结语:msg_send函数是 MsgOS最重要的函数,msg_send函数是 MsgOS最重要的函数,msg_send函数是 MsgOS最重要的函数(重要的事情说三遍

QQ截图20160616164415.jpg (27.07 KB, 下载次数: 0)

QQ截图20160616164415.jpg
此帖出自stm32/stm8论坛

最新回复

汇总帖在此: [MsgOS]——by 科技猎人 https://bbs.eeworld.com.cn/forum ... 3237&fromuid=536508  详情 回复 发表于 2016-6-23 15:17

赞赏

1

查看全部赞赏

点赞 关注
 

回复
举报

1万

帖子

203

TA的资源

管理员

来自 4楼
 
汇总帖在此:
[MsgOS]——by 科技猎人
https://bbs.eeworld.com.cn/forum ... 3237&fromuid=536508
此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 

回复

1950

帖子

4

TA的资源

版主

沙发
 
科技猎人,名如其OS,先下代码,学习下子。
楼主还有继续改进,或继续加功能的计划吗。
此帖出自stm32/stm8论坛

点评

谢谢支持。 肯定要继续完善改进的,软件永远没有完美的时候,只能进一步趋向完美。  详情 回复 发表于 2016-6-23 09:09
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 

回复

32

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
5525 发表于 2016-6-23 07:15
科技猎人,名如其OS,先下代码,学习下子。
楼主还有继续改进,或继续加功能的计划吗。

谢谢支持。
肯定要继续完善改进的,软件永远没有完美的时候,只能进一步趋向完美。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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