找回密码
 立即注册
查看: 699|回复: 4

SDCC + PIO + uC/OS, 8H8K64U, 51 站在巨人的肩膀上

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-05-02 11:38:17

44

主题

230

回帖

2845

积分

金牌会员

积分
2845
发表于 2024-9-7 22:49:32 | 显示全部楼层 |阅读模式
SDCC + PIO + uC/OS
===8H8K64U, 51 站在巨人的肩膀上
===AI8051U-8Bit, 51 站在巨人的肩膀上
1、前言:

在论坛的RTOS板块看到各种适配51内核的RTOS或是移植,或是原创,但是大多数是基于keil的。非常的羡慕。
期间也一直在关注。终于有一天看到了令人振奋的帖子:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=9035&extra=page%3D1
其中提到了将ucos和freeRtos使用sdcc移植成功了。对于mac开发主力的我来说无疑是一件很兴奋的事情。
然而大佬使用的是eIDE这个IDE。我是用的PIO还是有些遗憾的。大佬的测试工程在eIDE中没有问题,但是无法
直接使用PIO。 因此就萌生了在PIO中也移植一下。站在巨人的肩膀上应该是可行的。
于是经过不懈的尝试终于也成功了,并且是以PIO 库的形式提供使用。

2、移植:


移植过程中遇到的问题:
问题1、先把所有的文件放在src目录下编译失败,提示:
Error: <u> undefined symbol encountered during assembly
解决:对比eIDE的执行命令发现,在编译.asm 文件时需要添加 -plosgffw 命令行参数,
但是PIO默认的构建中默认是没有的,经过对PIO的一番研究,成功解决。需要使用高级配置直接覆盖原来的命令行参数

截图202409072233162986.jpg

图中红框中是原来的命令行参数

截图202409072234476090.jpg


使用上图中的方式将原来的命令行选项覆盖掉;

问题2、在解决问题1后,编译成功了,但是链接的时候出现了新的问题,提示:

Multiple definition of _OSIntNesting 。。。。

解决:同样去对比eIDE的命令,不同的都改了下发现还是不行。 提示的内容就是在链接的时候发现有多余的定义。

那这些定义都出现在哪里呢?于是看了下编译生成的.asm 文件,发现是在 ucos_ii.asm 出现了很多跟其他.asm文件重复的内容。

于是看了下 ucos_ii.c 的内容,发现确实include了很多c文件, 尝试注释掉。

重新编译链接。还是有问题,但是重复的定义数量变少了。

感觉不应该这样。 然后又重新看了下eIDE 相关的配置,发现:

eIDE编译的时候仅指定了 5个源文件包括os_cpu_a.asm.

于是寻找PIO中相关的设置。 使用build_src_filter 指定需要编译的文件,重新编译链接成功;

具体方式如下:

截图202409072238449270.jpg

3、测试

PIO的lib中都可以在examples目录下添加针对这个lib的使用demo。 ucos的lib我也加了一个demo。

也是使用原帖子中大佬的实验内容。只是换了个开发板。使用的是我之前参加的立创STC单片机创意活动的温湿度计;

其中有三个led灯,正好可以用来测试

原理图:

截图202409072246067725.jpg



截图202409072246507210.jpg

效果:


lib的使用方法可以结合demo和之前关于PIO的帖子使用。

最后工程托管在 https://gitee.com/dchuizi/stc_ucos.git


















2 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
不争是争
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:456
  • 最近打卡:2025-05-02 08:26:53
已绑定手机

27

主题

341

回帖

1691

积分

金牌会员

机长

积分
1691
发表于 2024-9-18 17:33:35 | 显示全部楼层
可以可以,给你点个赞!
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:177
  • 最近打卡:2025-04-30 13:52:43

10

主题

134

回帖

993

积分

高级会员

积分
993
发表于 2024-10-31 16:32:14 | 显示全部楼层
希望楼主开贴讲述完整体验教程{:5_309:}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-05-02 11:38:17

44

主题

230

回帖

2845

积分

金牌会员

积分
2845
发表于 2024-10-31 17:41:37 | 显示全部楼层
远行*** 发表于 2024-10-31 16:32
希望楼主开贴讲述完整体验教程

目前我也只是移植成功, 应用在了我之前的一个温湿度小应用中。 暂时没有迭代了。 感兴趣可以去gitee仓库拉下来看看。

https://www.stcaimcu.com/forum.php?mod=viewthread&tid=10208 这个帖子中有仓库地址,这里我就不贴了。 会走审核。
不争是争
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:177
  • 最近打卡:2025-04-30 13:52:43

10

主题

134

回帖

993

积分

高级会员

积分
993
发表于 2024-11-1 09:14:42 | 显示全部楼层
大*** 发表于 2024-10-31 17:41
目前我也只是移植成功, 应用在了我之前的一个温湿度小应用中。 暂时没有迭代了。 感兴趣可以去gitee仓库 ...

感谢大佬的回复
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 22:15 , Processed in 0.138963 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表