找回密码
 立即注册
楼主: 金***

C51程序的编写有的用框架式、有的用嵌入式那种更为主流

[复制链接]
  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 86 天

    [LV.6]常住居民II

    11

    主题

    58

    回帖

    497

    积分

    中级会员

    积分
    497
     楼主| 发表于 2024-3-17 15:32:58 | 显示全部楼层
    感觉自己又闹了个笑话,;不过有这么多大神的讨论,深感欣慰,尤其姚总:“从 汇编 到 C51, 不走弯路”,听你的乖乖的从基础做起,谢谢大家
    平安快乐
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    62

    主题

    640

    回帖

    1万

    积分

    荣誉版主

    积分
    10849
    发表于 2024-3-18 10:44:44 | 显示全部楼层
    feiyu 发表于 2024-3-16 21:34
    初学者肯定先裸机编程,啥基础没有,拿什么搞os

    (1)这个论点不完全对,依赖具体于是什么需求和是什么OS。我看到一群50/60岁的大妈直接学自动档的驾照,她们也没有从摩托车或者手动档开始学。

    (2)谁入门时能在PC机上或者树莓派单片机上先编个裸机程序试试?很难的,需要的硬件基础知识不是一般的多。但是入门时完全可以在Windows或者Linux这样的OS上面学习编写自己的用户程序。
    (3)STC单片机目前的硬件基础和在其上运行的RTOS都可以支持初学者从OS框架开始入门学习和进行实际项目编程了。
    (4)我观察只是对于“初学者从OS框架开始入门学习单片机程序设计”这个主题既没有提供合适的RTOS框架给用户,也没有足够的配套教材和课程给初学者,因此大家只能是靠自己摸爬滚打,从裸机编程开始学习单片机编程了。

    点评

    杨老师说的对,初学者是可以从OS框架开始编程的,并且用OS用还会比祼机更容易。 这就好比用手机,如果你只是使用,而不是去研究手机是怎么实现的,那么摸几天自然就熟悉了。 现在的问题是: 单片机比较接近底层,  详情 回复 发表于 2024-3-18 11:30
    回复 支持 1 反对 0 送花

    使用道具 举报

    该用户从未签到

    19

    主题

    528

    回帖

    1662

    积分

    荣誉版主

    积分
    1662
    发表于 2024-3-18 11:30:08 | 显示全部楼层
    本帖最后由 tzz1983 于 2024-3-18 11:33 编辑
    杨为民 发表于 2024-3-18 10:44
    (1)这个论点不完全对,依赖具体于是什么需求和是什么OS。我看到一群50/60岁的大妈直接学自动档的驾照, ...

    杨老师说的对,初学者是可以从OS框架开始编程的,并且用OS用还会比祼机更容易。

    这就好比用手机,如果你只是使用,而不是去研究手机是怎么实现的,那么摸几天自然就熟悉了。

    现在的问题是: 单片机比较接近底层,使用单片机的这群人本身就是姣姣者。
    通常他们在刚接触单片机和RTOS的时候,不满足于只知其然,不知所所然。
    然后就陷入了这样一个怪圈,本来我是知道该这样用的,然后我还想知道OS是怎么实现这种功能的,
    再然后发现,实现的机制比较复杂,最后的结果是短时间内无法完全了解OS这个机制,此时又对应用就会产生怀疑,不放心。
    最后是把 应用 和 OS本身 混淆在一起了,症结就卡在这了。

    如果只是用RTOS,那还是比较简单的。

    比如只用一个任务,那不是和祼机编程完全一样吗?
    循序渐进,再加一个任务,再用用阻塞功能,再用用简单的记数信号量。然后OS不就用起来了吗

    呼吁初学RTOS者,一步一步的来,先学简单应用,逐步加入自己的应用,用的过程中遇到问题才去查相关的资料。

    最忌好高骛远,一开始就想把OS的机制全研究透。

    熟悉用以后再去慢慢了解OS的实现机制,并且也要一个板块一个板块的熟悉,想一口气全吃掉那自然是很难的。

    最后,出了问题多往自己身上找原因,不要经常怀疑编译器和OS本身有BUG, 初学者能找到成熟的OS和编译器的BUG,那是机会非常少的事情
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    15 小时前
  • 签到天数: 89 天

    [LV.6]常住居民II

    13

    主题

    336

    回帖

    778

    积分

    荣誉版主

    热心市民

    积分
    778
    发表于 2024-3-18 12:26:33 | 显示全部楼层
    个人观点是,低端的单片机可以使用 中断+状态机+DMA能解决绝大部分的问题,而且运行效率极高。
    高端的单片机建议直接用库+实时OS,没必要裸跑。
    睁开眼睛做场梦~~~
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 86 天

    [LV.6]常住居民II

    11

    主题

    58

    回帖

    497

    积分

    中级会员

    积分
    497
     楼主| 发表于 2024-3-18 19:04:32 | 显示全部楼层
    晓飛飛 发表于 2024-3-18 12:26
    个人观点是,低端的单片机可以使用 中断+状态机+DMA能解决绝大部分的问题,而且运行效率极高。
    高端的单片 ...

    谢谢
    平安快乐
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 18:58
  • 签到天数: 57 天

    [LV.5]常住居民I

    2

    主题

    109

    回帖

    482

    积分

    中级会员

    积分
    482
    发表于 2024-3-18 19:37:48 来自手机 | 显示全部楼层
    裸机编程吧…
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 11:49
  • 签到天数: 43 天

    [LV.5]常住居民I

    4

    主题

    44

    回帖

    300

    积分

    中级会员

    积分
    300
    发表于 2024-3-18 19:41:38 | 显示全部楼层
    本帖最后由 feiyu 于 2024-3-18 19:43 编辑
    杨为民 发表于 2024-3-18 10:44
    (1)这个论点不完全对,依赖具体于是什么需求和是什么OS。我看到一群50/60岁的大妈直接学自动档的驾照, ...

    既然他问出了跑裸机和跑OS那种主流这个问题,还说自己是初学者,那我只能认为他是刚接触单片机的小白,项目也就跑过流水灯这些。这种情况在我个人观点里是必不可能给他推荐OS,单片机开发基本都是跟电路、芯片打交道。寄存器、外设、时序都不知道干嘛的,再加一层OS,出问题都不知道怎么找,到最后大概率是一团乱麻。你拿widows、Linux这种,带API甚至根本不用管底层的来对比,我感觉不是很恰当。

    点评

    “再加一层OS,出问题都不知道怎么找”,关键是什么样的“OS” (1)其实使用C51就有好几种很简单RTOS框架可以使用。 (2)即使不用RTOS这种OS框架,对于裸机编程,用计算机操作系统术语来说,从“main”函数开始的  详情 回复 发表于 2024-3-18 20:16
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    15 小时前
  • 签到天数: 89 天

    [LV.6]常住居民II

    13

    主题

    336

    回帖

    778

    积分

    荣誉版主

    热心市民

    积分
    778
    发表于 2024-3-18 19:54:13 | 显示全部楼层
    feiyu 发表于 2024-3-18 19:41
    既然他问出了跑裸机和跑OS那种主流这个问题,还说自己是初学者,那我只能认为他是刚接触单片机的小白,项 ...

    既然都圈定范围是C51了,那芯片配置都不可能太高,优先推荐裸机就可以了,中断、状态机、DMA用的好的话,即使挂很多外设也能流畅并发,要想发挥芯片大部分的潜能,非裸机莫属。
    玩OS推荐那些选择内置了Systick定时器的MCU,否则意义不是很大。
    睁开眼睛做场梦~~~
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    62

    主题

    640

    回帖

    1万

    积分

    荣誉版主

    积分
    10849
    发表于 2024-3-18 20:16:27 | 显示全部楼层
    feiyu 发表于 2024-3-18 19:41
    既然他问出了跑裸机和跑OS那种主流这个问题,还说自己是初学者,那我只能认为他是刚接触单片机的小白,项 ...

    “再加一层OS,出问题都不知道怎么找”,关键是什么样的“OS”

    (1)其实使用C51就有好几种很简单RTOS框架可以使用。
    (2)即使不用RTOS这种OS框架,对于裸机编程,用计算机操作系统术语来说,从“main”函数开始的程序被称为“后台任务”,每一个中断服务程序ISR被称为一个“前台任务”。因此裸机编程只要包含中断程序,本身就是属于“前后台多任务OS”,所以使用C51裸机编程仍然使用了“OS框架”。
    (3)本论坛里已经有了两个裸机编程的“前后台多任务OS”框架介绍
            一个是STC官方库函数使用的框架,
            一个是坛友写的“最佳入门多线程示例讲解-核心代码简单易懂,
             仅44行代码 ”(https://www.stcaimcu.com/forum.p ... 4197&extra=page%3D1),
            大家可以去看看


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 86 天

    [LV.6]常住居民II

    11

    主题

    58

    回帖

    497

    积分

    中级会员

    积分
    497
     楼主| 发表于 2024-3-19 03:17:49 | 显示全部楼层
    杨为民 发表于 2024-3-18 20:16
    “再加一层OS,出问题都不知道怎么找”,关键是什么样的“OS”

    (1)其实使用C51就有好几种很简单RTOS框 ...

    你的回答我听懂了,谢谢大佬
    平安快乐
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-6 15:25 , Processed in 0.068594 second(s), 64 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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