单片机/MCUwilliam hill官网
直播中

1563661808

10年用户 1833经验值
擅长:电源/新能源
私信 关注

【高手问答】第16期:单片机编程魔法师之高级裸编程思想

`
单片机编程魔法师之高级裸编程思想
高手问答第16期
小编导读:
     本期高手问答(11.3~11.21)邀请到了《单片机编程魔法师之高级裸编程思想的作者余灿基前辈, 余工william hill官网 注册名:yyy71cj,曾发布帖子《思想与裸编程》,广受好评。

余工简介:

     1993年毕业于南京理工大学计算机科学与工程系。著有《单片机编程魔法师之高级裸编程思想》。
     毕业后长期从事计算机网络应用、城域网数据库管理软件开发、电子自动化系统开发(上位机与下位机软件开发及数字威廉希尔官方网站 设计)与集成方面的工作,先后主持过楼宇对讲系统的升级改造、电子警察管理系统设计、港口温控系统设计、视频监控前端产品(如高速球等)开发、安全监测系统设计(监测传感器与施工监测及健康监测系统集成)等项目。现主要从事计算机应用、单片机应用、程序设计等方面的教学工作,并致力于技术开放共享事业。


余工说:

  • 1. 把一些重要的编程技巧,全部系统化,前后连贯成理论
  • 2. 电子工程师们最需要的,不是硬件,不是编程,是思想
  • 3. 工具的绚烂与荣耀与使用者的水平无关,最重要的是思想。
  • 4. 把对象裸编程化了,在上位机,没有继承还真不行;在下位机,若有继承还真不必。所以看本书只需要C和单片机的基础,即可领略资深工程师的思想。

点此:

     若是小伙伴有裸编程思想方面的问题,or单片机编程,or more 。。。欢迎跟帖和余工一起交流探讨

     同往期一样,在本帖子下面  跟帖并@ yyy71cj (余工)

     Are you ready to share ,to communicate ,even to question  ?

     为了营造更好的问答氛围,我们不欢迎一切与主题无关的讨论、灌水和无脑喷子。


互动奖励规则:
     凡是提问者,均有20个积分获得。

     为了鼓励踊跃提问,参与问答,说不准有你就是那个幸运用户,(有两个幸运用户哟)能得到余工亲笔签名的《单片机编程魔法师之高级裸编程思想》一书哟。

**************************************************************************

社区高手招募
     不限专业领域、不限技术方向,只要你是一个有活力并乐于分享的开发者,只要你愿意把自己的经验收获分享给大家,帮助众多从业者共同学习、共同进步,我们就欢迎你来做客社区之星。
      联系方式:pengjiali@elecfans.com。快来联系小编吧!
**************************************************************************

往期回顾:


获奖名单:@哼小曲@douyin8

` 单片机编程魔法师之高级裸编程思想.jpg

回帖(103)

yyy71cj

2014-11-3 10:13:25
引用: 哼小曲 发表于 2014-11-3 11:05
问一句大虾@yyy71cj 使用裸编程   与 直接上操作系统有什么优势?或者说两者各自的优势是森么呢 ...

操作系统的优势是:        为使用者提供了一个基本的工具软件包,使用者不必再去编写这部分代码。

        为使用者规定了一套编程思想及系统环境,使用者必须遵循这种思想约定。
事情往往是一分为二的,有些优势其实也许恰恰是劣势:
        首先,工具软件包的存在,让使用者需要学习与记忆大量不需要的、可有可无的内容,而且这些内容绝多都是规定,并无逻辑,除了强记外,几乎没有别的办法。我们知道,强记是一件很痛苦的事情。
        由于工具软件包力求完备,而使用者在具体应用中,往往只需要其中的十分之一、百分之一,或者更少,这样就是我们准备了一个原子弹,却只需要一颗子弹的威力与作用。
        其次,由于操作系统的限制,一些编程的约束应运而生,这不仅经常会禁锢我们的思路,而且还经常会让使用者有一种莫不着门道,严重影响了使用者在工作中创造力的正常发挥。
        第三,额外的开销,会让使用者不得不提高芯片的档次来满足编程对物质基础的需求。
        第四,不断的升级与更新,会让使用者学不胜学,烦不胜烦,而这些所谓的知识,只是一种规定。
在国外,一个资深的电子工程师,他可能到现在还在使用DOS版的PROTEL,DOS版的C语言,这表明他知识浅薄吗?不!他硕果累累!因为他并不需要其它的,他只需要这些就可以了!

裸编程的优势是:
        你不需要学很多知识,你不需要很高档的芯片,你可以做到他们所能做到的

至于什么时候上操作系统,什么时候用裸编程,我觉得这个难下定论。
但是可以肯定的是,当你用裸编程能实现的,千万不要使用操作系统。因为后者软件复杂度高,不便于编程者控制,而裸编程则是伸手知冷暖,一下就能触及芯片的内核
举报

hxjq

2014-11-3 10:23:25
很高兴与技术牛人交流,让自己的专业技能更上一个台阶。
举报

王顺

2014-11-3 10:25:38
@ yyy71cj  
我主要有几点比较关注的,诚心求教:
1) 从事多年的单片机开发,有没有自己做的轻量级系统或者推荐的国内外比较流行的轻量级系统;
2) 我之前做的液晶显示的菜单结构设计,软件逻辑比较繁琐,有无推荐的方法;
3) 作为资深人士,对于单片机软硬件行业有什么感悟,很多人都说35岁是个拐点,要么管理层要么转业,不知道您怎么看;
举报

carey123

2014-11-3 10:46:13
蹭个脸
单片机编程魔法师之高级裸编程思想
代码解释很详细也很多,很适合程序的学习,我前些日子买了本书,就是格式还有待加强,感觉页面很空旷,说不准是留着做批注的。
程序,很整洁,有个人的思想和习惯。
另外上面讲的  问题分析的学习方法也很不错啊!
举报

爱吃果冻

2014-11-3 10:48:21
书名太吸引人的,不敢买。。。多年买书经验。
有点冲突的是,目录,非常吸引人,想拜读一下这巨作
处女座,纠结中。要不要买一本呢
举报

douyin8

2014-11-3 10:56:31
1、根据试读章节可以看出,这本书的前后联系非常紧密,连贯性很强,循序渐进;
2、本书注重的是方法思路的讲解,代码不是重点,只是为了读者理解思想而添加,但是代码注释有点多了;
3、样章讲的是消息的处理,让我想到了实时操作系统中的邮箱、消息、队列、事件、信号量等,本书的目的应该就是在低配置的单片机上面搭建一个简单的操作系统。
举报

douyin8

2014-11-3 10:57:00
补充一句, 代码注释详细,能够使初学者看懂
举报

yyy71cj

2014-11-3 11:02:02
引用: hxjq 发表于 2014-11-3 10:23
很高兴与技术牛人交流,让自己的专业技能更上一个台阶。

        每个人都会在自己的技术生涯里不断地垦荒,以期望获得秋后的硕果。
        但是在这个历程中,每个人又会不断地遇到困难。
        是不是每个人都必须走这种坎坷呢?不是!
        人类文化有一个重要特点,那就是继承。也就是说,前人的经验,后人可以直接获得,而不必重新流一次汗。也只有这样,人类文明才可以层叠与升华。
        电子自动化专业是一门综合学科,它既需要硬件知识,又需要软件知识。但是目前这方面流行的知识无非是一些国外译本+定点实践之类,看了之后虽有感触,但是依然难以提高。
        《单片机编程魔法师之高级裸编程思想》提供的正是一个提高的捷径。它将电子自动化专业提炼出除软硬件两方面之外的第三个领域——思想。
        我们知道,解决任何问题,最难的是如何解决。这个如何解决就是“思想”。
        这里的思想,以C语言软件为基础,介绍了数据驱动、多任务并行、面向对象思路等无操作系统裸编程中的有操作系统编程思路,既降低了知识掌握的门槛,又提高了软件系统的质量,相信能为大家的编程架构提供一个有力的支持!
        欢迎在这里与同行切磋,并营造一个良好的技术共享环境。
举报

tulin

2014-11-3 11:03:49
看样章有下面的体会
1、高级裸编程思想,函数、变量的命名都很规范,
2、程序很有条理,清晰明了,
3、本书不同于大学的教材,很有实用性,不是纸上谈兵的编程思想。
决定买本回来看看
举报

哼小曲

2014-11-3 11:05:43
问一句大虾@yyy71cj 使用裸编程   与 直接上操作系统有什么优势?或者说两者各自的优势是森么呢
举报

胖子的逆袭

2014-11-3 11:07:25
框架?产品升级? 不懂了、大神能否解释一下呢@yyy71cj   多谢了
举报

yyy71cj

2014-11-3 11:23:39
引用: wscf123 发表于 2014-11-3 10:25
@ yyy71cj  
我主要有几点比较关注的,诚心求教:
1) 从事多年的单片机开发,有没有自己做的轻量级系统或 ...

        首先,在单片机编程中,对于操作系统这个东西来说,我本人是比较不支持的。因为操作系统就如一座大山,会让一个简单的事情变得复杂,让电工们从硬件、软件的学习中又硬生生地多出一门更为复杂的学科来。所以对于操作系统的推荐,国外的没有,国内的更没有。但是你不要失望,在《单片机编程魔法师之高级裸编程思想》中,有一个微操作系统MOS,你可以认识一下,它对你没有任何其它要求,只需要你对它支持编程即可。
        其次,对于菜单的编写,我能理解你在编程时所遇到的麻烦。解决这种问题有没有好办法?答案是肯定的。面对选项众多、参数各异的菜单操作,只有一个办法,那就是数据与代码分离。《单片机编程魔法师之高级裸编程思想》的第一章,正是讲数码分离的思想。你可以对菜单结构进行抽象与规定,并制作一张表。
                例如:
                        typedef void (*menuaction)(void);
                        typedef struct _menuitem
                        {
                                   char name[20];                                // 菜单项名
                                   unsigned char xtop, ytop;                // 菜单项的左上角坐标
                                   unsigned char width, height;             // 菜单项的宽与高
                                   unsigned char *parameter;               // 菜单功能对应的参数区指针
                                   char memo[20];                               // 菜单项的浮动提示
                                   menuaction menuItemReset, menuItemAction;     // 菜单项的初始化功能与执行功能函数的指针
                        } menuitem;
        然后根据菜单的情况对其声明一张一维或二维数组即可,复杂的多维可考虑使用链表。
        例如:
                menuitem code menu[5][3] = {
                                                                        ......
                                                               };
        当然,以上只是一个泛泛的抽象的例子,但是却包含了至少两个思想,一个是数码分离,另一个是面向对象。
        第三,至于人生的公式,只能借鉴,不必套用。
1 举报

廖旭

2014-11-3 11:24:14
@ yyy71cj
您好,我想问一下,在做项目的时候如何选择是否加操作系统或者裸机编程,这两者如何划分?
举报

yyy71cj

2014-11-3 11:34:49
引用: carey123 发表于 2014-11-3 10:46
蹭个脸
单片机编程魔法师之高级裸编程思想
代码解释很详细也很多,很适合程序的学习,我前些日子买了本书, ...

        由于思想是比较难懂的东西,所以本书采用了极简的例子来说明极纠结的思想,力求降低对读者知识基础的要求。
        又考虑很多读者有一定的基础,所以对于一些推理又默认为众所周知的事情,因此采用了简洁的版式,说明只针对需要注意以及与常规不同的知识点,以期做到要言不烦。
        本书重在思想,需要参悟,字好认,参悟则靠个人的修为。
        多谢支持!
举报

yyy71cj

2014-11-3 11:39:13
引用: 爱吃果冻 发表于 2014-11-3 10:48
书名太吸引人的,不敢买。。。多年买书经验。
有点冲突的是,目录,非常吸引人,想拜读一下这巨作
处女座, ...

        20年的经验,5年成书,原本是应该作为绝密技术来保密的,但是我觉得“技术属于人类”是技术的最高境界,所以就拿出来分享。
        所以,这一次你可以买,绝不会让你失望的。
        我有签名版在淘宝亏本发售,你可以到21ic里“思想与裸编程”专版中查找一下地址,也可以通过其它方式联系我。
举报

yyy71cj

2014-11-3 11:40:42
引用: douyin8 发表于 2014-11-3 10:56
1、根据试读章节可以看出,这本书的前后联系非常紧密,连贯性很强,循序渐进;
2、本书注重的是方法思路的 ...

坛友的回复让我觉得有一种他乡遇故知的感觉。多谢支持!
举报

yyy71cj

2014-11-3 11:46:22
引用: tulin 发表于 2014-11-3 11:03
看样章有下面的体会
1、高级裸编程思想,函数、变量的命名都很规范,
2、程序很有条理,清晰明了,

本书的目的,是让电工们既是一名电子自动化工程师,又是一名专业程序员,要让产品中的程序具有专业化的艺术,减少BUG,更有人性化。都是重要思想,不是东抄西就的译本与教材。希望它能助你更上一层楼。
举报

vvg

2014-11-3 12:00:47
怎么把这些编程思想很好的运用到工作中去呢?  @ yyy71cj  
举报

yyy71cj

2014-11-3 12:11:40
引用: A670521546 发表于 2014-11-3 12:00
怎么把这些编程思想很好的运用到工作中去呢?

        如果你习惯右手做事,那么你在吃饭、写字的时候,你就会下意识的使用右手。
        这种下意识,就是一种习惯,一种思想。
        也就是说,当一种思想到了能左右你的下意识的时候,你就会自然而然的运用它。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分