搜索
bottom↓
回复: 19

马潮老师您好,向您请教如何认识和去学单片机

[复制链接]

出0入0汤圆

发表于 2012-6-13 20:40:03 | 显示全部楼层 |阅读模式
马潮老师:
    您好!
    我是一名专科毕业生,是电子专业,学过51单片机,现在在一家公司实习目前主要做的电气类的工作,但是电子是我的爱好,每天利用下班回来的时间学习单片机,现在看的是AVR的单片机,以后想找一个关于电子类的工作,可是自己常常一个人自学,很盲目没有目标性,常常在网上也看到贴子说51,AVR等8位单片机已经过时了,要学32位单片机,看到这些自己常常挺沮丧的,不知道该从何学起,刚刚对AVR有了一点了解,可是不知道学下去会不会有用。现在真不知道怎样去认识和去学单片机。导致这种想法的可能是因为我对目前社会的发展和就业形势不了解。希望马潮老师能给我指点指点,让我从迷雾中走出来,明确自己接下来的学习方向。学生在此谢过老师!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入36汤圆

发表于 2012-6-25 20:10:15 来自手机 | 显示全部楼层
单片机本身并不难。难的是外围,8位也好32位也好在于应用。不存在过时的说法,4位机都还有应用在电子称,电波钟,红外测温等领域呢。

出0入0汤圆

发表于 2012-6-29 21:42:37 | 显示全部楼层
楼上后面的说法我赞同,前面的观点我不认同。
单片机本身已经比较难了,因为它本身就是一个小的专用的计算机系统。使用单片机设计产品和构成应用系统比操作使用台式计算机要难的多的多。

出0入0汤圆

发表于 2012-6-29 21:52:31 | 显示全部楼层
个人感觉,学单片机,学习编程的实现比学某种单片机更为重要,选择一款单片机作为载体,系统的学习与实践,注重自己单片机编程思维的训练,有了这个基础在学其他单片机,会比较有方向。

出0入0汤圆

发表于 2012-6-29 22:25:07 | 显示全部楼层
楼上,编程只是一个方面。
“学单片机,就是学习编程的实现”是错误的观点。

在PC上编程,如果程序有问题,你会考虑邮件有问题吗?PC上你会编写显示的底层驱动吗?
而单片机编程,程序不通过,也可能硬件的问题,也可能是软件问题。这是综合的能力的体现。哪怕就是软件问题,你需要从底层开始考虑。

出0入0汤圆

发表于 2012-6-29 22:39:39 | 显示全部楼层
马老师不要吓到他了,单片机不难,但是任何事,要想做好,都不容易
佩服马老师的严谨,如果我上大学的时候,老师有您这样的态度的话,我一定比现在强大十倍甚至百倍

学校里面,不干实事的老师太多了,没有真本事的老师就更多,自己都不懂,还要教别人的比比皆是
考试的时候,也都是故意泄题,故意放水,唉......

增加大学生的比例,是用降低标准实现的,这有什么意义呢?

出0入16汤圆

发表于 2012-6-29 22:57:09 | 显示全部楼层
我感觉学习单片机重要的是学习架构,了解为什么这么工作?怎么工作才好?拿它来应用只是一个方面,编程也是一个方面,例如学习AVR并不是只是会弄流水灯、串口发送数据就算入门了?只不过会操作而已,重要的是了解IO口的寄存器设置,工作方式、软件操作方式、读写修改变化有什么注意?硬件IO口的结构怎样?控制外围器件怎么合理?从整个CPU架构来看控制,多考虑一些,才能真正了解吧!不然只是简单的操作而已。个人见解,希望马老师指正!

出0入0汤圆

发表于 2012-6-29 23:16:21 | 显示全部楼层
LS说法,个人比较赞同..

前面说的 "学单片机,就是学习编程的实现"
个人感觉应该说,针对特定单片机的特定编程方式吧..

出0入0汤圆

发表于 2012-6-30 01:24:19 | 显示全部楼层
xiaobenyi 发表于 2012-6-29 22:39
马老师不要吓到他了,单片机不难,但是任何事,要想做好,都不容易
佩服马老师的严谨,如果我上大学的时候 ...

难还是不难,这个是个哲学命题,不好回答。
我说难,不是单纯的从技术上讲,而是针对目前的现实状况综合而言的。如果单纯从技术或从学术的角度看,学习单片机并不困难。

首先就是一个认识和态度问题。正如你说的:“任何事,要想做好,都不容易”,这其实就是“难”。

学习使用单片机的目的是什么?是为了考试,还是真正的掌握一门养家糊口的本领?如果是后者,这个学习就需要踏踏实实,一步一步,打好基础。而我们目前的教育是应试教育,社会是一个非常浮躁的环境,在这样的大环境下,真正要好一门技术,自己没有定力,不肯吃苦,想走捷径的话,难。

另外,单片机的应用实际是一个综合能力的体现,模拟电路,数字电路、英语、计算机能力,编程设计,系统调试等,涉及方方面面。许多人根本就不具备相应的基础(“学校里面,不干实事的老师太多了,没有真本事的老师就更多,自己都不懂,还要教别人的比比皆是,考试的时候,也都是故意泄题,故意放水”也是造成这样后果的原因之一吧)。然而可能突然“开窍”了,想通过简单的,一门AVR课程的学习,就能学会和掌握一项综合的技术应用本事,还是难。

举个实际的例子,上个学期,我教授的《微机原理和应用》课程,根据学生的现状,一本书的内容减掉了1/4的内容,中断8259芯片、串行通信、AD/DA等好多基本的东西都省掉了。可是考试结果还是有近1/3的学生不及格。题目中有一个要求画出用8255的A口连接一位8段LED数码管硬件连接原理图,有50%的学生根本画不出!这个其实学生在学习过程中也做过类似的硬件动手实验,用573连接一个8段LED数码管,编程现实读4个I/O电平,显示0-F十六进制数码。(知道学生如何做实验?50%的学生到实验室后,开始翻教科书)。

在这样的大环境下要真正学好单片机应用?难上难。

到底难还是容易,每个人的观点可能不同。送上两句话,给想真正学习掌握单片机的朋友自己领会:“在战略上要藐视敌人,在战术上要重视敌人”;“万事开头难”。

我说学习单片机难,你敢知难而上,说明你具备了学好掌握单片机非常必要的基本素质,反则一看难就萎缩掉,那么乘早回家。

不知道朋友你手上有没有我编写的教材,下面是我教材前言中的一段文字,现摘录贴上。
尽管楼上朋友对我一番称赞,但我在教学上的努力并不成功。所以,我说的难,不单纯指技术。

==========================================
      我们(包括作者)都面临一个非常现实的问题:如何才能上好单片机原理及嵌入式应用的课程?该课程最终应该达到什么样的效果?
    作者从多年教学经验和应用实践中体会到,“单片机原理及嵌入式应用”课程应该朝着启下、注重应用能力培养和承上三个方向发展。
   
    启下是本课程内容所决定的。课程内容涵盖了模拟电路、数字电路、计算机原理、汇编(8086)、C语言程序设计、计算机应用、专业英语能力等多项知识点和能力,尽管学生在一、二年级学习过了这些课程,但往往只局限在对基础理论知识的掌握上,基本上不具备实际应用的能力,而且各个知识点也是相互独立的。因此在课程中需要指导学生对前面的基础知识进行复习和回顾,更重要的是通过课程的学习,培养学生能把各方面的基础知识进行综合,并在实际中的应用的能力。

    注重动手实践能力的培养是由本课程的性质所决定的。单片机嵌入式系统的教学绝不能纸上谈兵,不动手是学不会的。让学生用不动手的办法去学,用纸上谈兵的办法去学,就会越学越觉得枯燥,越学越觉得没有信心。所以教学中要让学生始终有一种奋发向上精神,要让学生愿学爱学。这里的关键就是强化实践。有的人把强化实践理解歪了、看低了,好像实践就是随便动动手、简单操作一下,甚至是给个程序下载下去就完事了。其实不然,特别是对于电子IT工程师来讲,动手和动脑应该是联系在一块儿的。当一个电子工程师是很不容易的,既要有理论又要有实践,而且理论要紧密联系实践。实践是非常重要的,一个学生的能力和水平最后都要通过实践表现出来,让实践来说话。只有学生对基础知识有了更深的认识,同时具备了相应的实际应用能力,才能达到和满足社会的用人需求。

    电子技术是一门快速发展的学科,因此单片机原理及嵌入式应用课程还应该为向更高层次的嵌入式(32位ARM、DSP)系统学习和应用打好了基础,这就是该课程的承上功能。目前在一些高校中已经尝试直接对本科学生开设基于32位ARM的嵌入式系统课程,对于以偏硬件为主的相关专业来讲,作者认为这是一种操之过急和拔苗助长的行为。学习掌握32位的嵌入式系统的应用,不能局限于利用现成的ARM板,在别人移植的OS上编写一些用户应用程序,这与在PC上学习编程没有太大的区别。真正要掌握32位的嵌入式系统的应用,不仅对硬件和软件的要求非常高,同时也需要掌握大量相关的其它专业方面的知识,如数字信号处理,数字语音图象处理,USB以及各种网络协议等,这些对于本科的学生都是不具备的,更加适合研究生阶段的学习。因此在本科阶段,开设基于新型8位单片机嵌入式系统的课程更为合适,能够比较好的起到启下、应用能力培养、和承上的功能,符合循序渐进、螺旋式上升的教育规律。

    作者非常欣赏和推崇康乃尔大学的《微控制器设计》(Designing with Microcontrollers)课程设置理念和教学方法(http://instruct1.cit.cornell.edu/courses/ee476/),修读该课程的学生每年都会推出几十项的课程设计作品(Course Project),很多作品不是简单的芯片应用,而是充满创意,连学生的设计报告都非常的生动和可爱。这些课程设计作品并不比现在国内两年一次的全国大学生电子设计竞赛的作品逊色,而且它是真实的学生能力和水平的体现,同时也反映了国内大学生和国外大学生在动手实践能力方面的差距。

    对比康乃尔大学的课程,从一个侧面看到了国内在教学上的差距,更重要的是在教学理念、教学方法上的落后,而且这还不仅仅是发生在某一门课程上的问题。作者在AVR的教学实践中,一直以康乃尔大学的《微处理器设计》作为努力的方向,尝试使用与传统教学不同的理念和方法对单片机课程的教学进行改革,但到目前为止,效果并不令人十分的满意。因为仅仅通过一门课程,是那么的无能为力,根本不能改变目前国内教学的应试教育现状的。

     最后要指出的是,开设单片机原理及嵌入式应用一类的课程,对教师的要求比较高,教师不仅要具备书本的理论知识,而且必须有一定的实践应用经验,了解目前嵌入式系统技术的发展。只是仅仅在课堂上介绍AVR根本不行,必须要能够随时回答和解决学生诸如:C语言的语法和程序调试的问题,外部上拉电阻的作用与阻值计算问题,英文器件手册上的一段说明解释,甚至计算机环境本身的设置和使用的问题。学生在实践中发生的问题80%不在AVR的本身,而是什么硬件连接错误,程序不会编写,环境没有设置等等。这对教师是一个挑战,也是上好本课程比较的特殊和困难的重要原因之一。

出0入0汤圆

 楼主| 发表于 2012-7-12 21:05:37 | 显示全部楼层
非常感谢马潮老师的回答。我会下定好决心好好学习的

出0入0汤圆

发表于 2012-7-13 10:34:05 | 显示全部楼层
学习单片机,硬件是不难的,难的是软件的实现

出0入0汤圆

发表于 2012-7-14 15:11:09 | 显示全部楼层
littlepig 发表于 2012-7-13 10:34
学习单片机,硬件是不难的,难的是软件的实现

不认同!

学习的时候,基本上硬件是现成的,也是基本的外围,所以感到难的是软件。这是我们应试教育造成的后果!

到你自己设计产品或系统的时候,首先碰到的是硬件设计问题,这个实际上比软件还难。好的硬件设计,要保证合理、可靠(很多情况,硬件设计的不合理,软件是无法补救的),要充分发挥MCU的功能,要能使软件系统编写简单,硬件部分通常除了数字逻辑、时序电路、还有许多模拟电路,放大,驱动。。。

知道驱动一个步进马达应该如何根据实际应用和所使用的马达设计可靠的驱动电路吗?知道推动一个380V的交流接触器的驱动电路吗?一次有效的交流接触器动作的最小有效时间大约是多少?

硬件和软件是无法分割的,硬件和软件都难的。

出0入0汤圆

发表于 2012-7-14 15:33:35 | 显示全部楼层
本帖最后由 feiben 于 2012-7-14 15:35 编辑

(其他人也问过同样的问题,看后感兴趣)  特向马大师求教       读取AVR中唯一序列号的函数,加密用的..... ...

出0入0汤圆

发表于 2012-7-14 17:05:21 | 显示全部楼层
我们学校也有一个像马潮老师的好老师,上课从来不用教科书,但是可以讲得让我们明白,还比教科书里讲得详细。我们只要回来翻书看,只要听课的基本能听懂。

出0入0汤圆

发表于 2012-8-1 12:12:19 | 显示全部楼层
从最开始最简单的程序编起,任何学习都是由浅到难的

出0入296汤圆

发表于 2012-8-1 22:31:10 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2012-8-1 22:45 编辑

3.        背景和环境分析
中国嵌入式行业从业人员的整体分布状况呈现图钉型(如图3-1a所示)形态。该模型在垂直方向上表示人才的从业素质和专业技能,在横向上表征对应能力上的人员规模。这一图形直观的体现了中国现阶段嵌入式行业从业人员的分布状况和特点:
a.        大部分人员分布在基本行业从业素养水平线附近(这一标准线参考嵌入式知识体系和基本岗位工作需求而确定);
b.        中高端人才呈现少且相对数量稳定的状态;
c.        “图钉帽”到“图钉针”的突然过度凸现出嵌入式行业存在大规模的人才蒸发现象。

相对于国外理性的胶囊型人才分布,国内的图钉形态主要由外因和内因同时作用形成:首先,长期以来中国一直是作为世界加工厂的地位存在,这一方面是中国经济政策的需要,另一方面也是由于欧美嵌入式行业的布局所决定的。中国制造,美国加利福尼亚设计的iPhone就是一个最典型的例子。世界加工厂的地位直接导致国内对嵌入式人才的需求长期围绕着产线进行布局——加工和组装和测试、产品的本地化设计和定制。即便是体现着民族创造力的“山寨设计”也是直接从加工厂的土壤中生长出来的,表现出对欧美设计、产品、理念的高度依赖,其特征为“简单的复制加简单的改造”以实现赚快钱的目的——智能手机时代突然来临导致深圳智能手机产业衰退的现象就直接说明了这种所谓山寨创造力的脆弱——指望这样的环境下形成稳健的人才结构是不切实际的,或者说是不符合实际的。其次,受紧迫的市场需求推动,中国的大学在未能跟上行业需求、未能及时有效的实现针对性的教育改革、教育资源相对缺乏的情况下,大规模的扩招,直接造就了一大批动手能力弱、理论知识薄弱或者说缺乏理论联系实践能力的入门级从业者,这些毕业生往往在从业3~5年后才能在摸爬滚打中依靠行业和项目的推动艰难的获取所需的能力,而这种由经验驱动的能力直接决定了这些“实践经验”受到实践的环境和项目的制约——缺乏系统性和普遍性。这一事实很容易从主流的嵌入式论坛中大规模的从业者不停发明轮子的经验分享中窥得一斑。这是中国本科教育的有限性所决定的,短期内局部可以改观但总体很难改变。
中国中高端人才主要生存于欧美大厂及相关下游企业中,直接接受国外先进的知识和管理支配,属于行业上游体系的一员,从而在人才分布图上表现出长期稳定的特征。另外,存在于欧美体系中的高级从业人员很少向本土产业链流动;在少数的流动过程中,个别先进技术的流出并不能复制国外企业理念、文化、管理和规模因素共同作用下形成的优势,因而对整个本地生态体系影响不大,属于“耗散的热能”。中国的中高端人才整体数量偏少,主要来源为留学归国人才、本土教育中少数精英人才等等,且无论是归国人才还是本土人才,决定其优秀能力的主要是源自国外的系统知识体系。在这里,起关键作用的并不是“源自国外”,而是系统的知识体系,以及联结知识体系和实践的直接桥梁。

一方面,下游从业者人员众多,竞争压力大,待遇低下(俗称IT民工),甚至有劣币逐良币的趋势;另一方面,上游门槛较高可望不可及(很多时候只是缺乏直接的引导和桥梁)。在这两方面的挤压下,大部分从业者在从业一段时间后不得不转行从事销售或者其他行业——这就是基本从业能力基准线附近发生大规模人才“蒸发”的直接原因。

小结:受中国世界加工中心的产业地位影响,在教育资源和准备都不充分的情况下,市场引导高校培养了大批嵌入式基本从业能力基准线附近或以下的从业者;这种现象是长期的,局部可以改观但整体短期难以改变的。能托起中国嵌入式产业健康发展的是胶囊型人才分布,这就需要大批的基本从业水平线以上的有自我提升能力和意愿的人才。对胶囊型人才分布来说,支撑人才上升和培养的是完整的嵌入式知识体系构架,以及服务于该体系构架的培养方案。

4.        目标知识体系

4.1        定位和范围
4.1.1        嵌入式系统的定义
嵌入式系统是面向应用高度裁减的专用计算机系统。嵌入式系统首先是计算机系统,包含软件和硬件两个方面知识体系;其次这一系统是面向应用的需求高度裁减后形成的专用计算机系统,这就包含了工程相关的知识体系。这里,“裁减后的专用”明确了嵌入式系统的知识体系在所涉及到的软件、硬件、工程知识体系中的范围是有限的。

4.1.2        专用计算机的软件和硬件
专用计算机系统相对于通用计算机系统来说最大的区别就在于平台的专用性和特异性上。通用计算机的程序定义是:

程序(Program) = 算法(Algorithm) + 结构(Structure)

算法和结构都是独立于硬件的逻辑,显然简单掌握算法和(数据)结构的知识并不能立马开展嵌入式(专用计算机)程序的开发。这里缺失的是一种方法(Method),用于操作硬件的方法。因此,专用计算机的程序定义是:

程序(Program)= 算法(Algorithm) + 结构(Structure)+ 驱动(Driver / Method)

由此,我们可以看出,在嵌入式系统知识体系中,除去通用计算机系统的程序基本要素算法和结构外,处理硬件的接口方法也是一个非常重要的方面。在嵌入式知识体系中,驱动并不是一个单独的个体概念,他是以面向对象的形式得到组织和体现的(请参考4.1.3节)。

4.1.3        面向对象
面向对象是一种思维模式,将这种思维模式分别应用到到项目分析、工程设计和编程实现时就形成了所谓的面向对象分析(OOA),面向对象设计(OOD)和面向对象编程(OOP)。面向对象的最根本出发点是:将要处理的数据和处理数据的方法封装在一起。在嵌入式系统开发中应用面向对象技术进行开发是目前的主流,从理论上,这种思维模式也是可以很自然的应用与对嵌入式系统的审视中的:

嵌入式系统(Embedded System) = 固件(Firmware[1]) + 硬件(Hardware)
又因为
固件(Firmware)= 程序(Program)+ 文档(Documents)
程序(Program) = 算法(Algorithm)+ 结构(Structure)+ 驱动(Driver)
所以,将以上内容展开得到了

Embedded System = Algorithm + Structure + Driver + Hardware + Documents

这里,如果将硬件看作是对象(Object),则驱动就是操作和处理这一对象的方法(Method);同理,数据结构是一种数据存储和组织方式,作为对象,算法(Algorithm)就是操作数据结构(Structure)的方法。于是我们得到了

Embedded System = (Algorithm + Structure) + (Driver + Hardware) + Documents
从更高一层的角度考虑,程序和硬件组成的系统必须和对应的文档封装在一起才算是完整的工程,这里文档的作用是描述、记录工程的设计和细节,同时解释和介绍系统的使用方式。从这个角度来说,文档就成了方法,而具体的系统就成了对象。由此可见,面向对象的方法作为一种思维,在其主导下的视角可以将嵌入式系统进行有效的划分。且不说有成熟的嵌入式面向对象技术,单纯这种视角和思维的引入就能为嵌入式系统的分析、设计和编程带来丰富的已有的计算机科学成果、理论和方法。

4.2        嵌入式系统中的软件和硬件
相较于传统的软硬件概念,在现代嵌入式知识体系中,软件和硬件的概念是一对不可分割的相对概念。参考图4-1容易发现,对于计算机系统来说,软件和硬件的概念一直是存在的,只是相对多少和视角差异的问题。图的上半部分在纵轴上展示了软件和硬件在一个系统中的比重;图的下半部分在横轴上以切面的形式展示了在由硬到软的过程中所产生的几种产品或者平台。


为了体现这种客观特性,我们对嵌入式知识体系中的软件和硬件重新进行定义:
软件:开发人员固化下来的思维或者模式。
硬件:业已固化的逻辑。

通过重新定义软件和硬件的概念,我们很容易就把握和解释计算机科学的很多发展方向和现象,例如所谓纯软件系统中的“软构件”现象——这就是固化的逻辑在软件系统中体现出的“硬件特性”;在数字电路设计中以原理图形式体现的逻辑(思维)设计,以及可编程逻辑器件中体现的通过VHDL这样软件的方式实现的硬件(FPGA/CPLD/…)。这同时也能帮助我们更好的理解:为什么嵌入式行业内有高度应用价值的逻辑和功能总会突破万难(技术瓶颈、成本限制、复杂度等)逐渐“硬化”;为什么有时候硬件实现的功能(比如MP3解码)会在某些条件下(例如成本)重新“软化”。

正确建立嵌入式知识体系构架中的软硬件概念能从一开始就避免将原本需要全面看待的学科内容生硬的拆散成“软件的”和“硬件的”,培养学员全面、系统地分析和解决问题的能力。不同于学校教育,专业的培养方案必须从基础出发点上就遵循软硬件的这一基础规律。


4.3        嵌入式知识体系图谱
完整的嵌入式知识体系构架如表4-1所示。首先需要注意的是,传统意义上的编码规范并不属于嵌入式知识体系构架的必要组成部分,类比于自然语言的学习,对命名规则、语句格式、缩进的使用这类问题进行规范最终目的是获得好看的代码,而代码的可读性并不是通过格式的规范获得的,这就好比语文学习中练得一手好字并不能保证写出来的内容清晰的表达了作者的思想意图。每一个设计人员都有自己的设计习惯,在一定范围内强制执行的设计习惯就是设计规范。在培养计划中,为了培养学员的良好习惯,应该对一些影响重大的习惯进行强制规范,而对于其他适合学员发挥和体会的部分不做限制。


表4-1以类比自然语言学习的方式组织和解释了嵌入式知识体系构架中个学科方向的位置和作用。他们依次为:汉字的书写、语言表达能力、遣词造句能力、修辞/语言组织训练/阅读能力训练、文法/文体训练以及最后的作文。表格的右边类比自然语言学习的若干阶段,将一些主要的具有代表性的课程列举了下来。下面我们将逐一展开:

4.3.1        汉字书写
汉字书写是通过文字进行语言表达的基础,对嵌入式从业人员来说,学会了一门可用于开发的编程语言仅仅表示其拥有基本的汉字学写能力,能够以计算机可以识别的形式记录下一些信息。学会一门语言可以说学会了写程序,但距离用程序描述自己的思维和想法还是有很大差别的。这是因为前面还有一个很大的障碍:语言表达的障碍。
4.3.2        语言表达
作为自然语言,汉语是我们的母语,因此绝大多数心智正常的人都能用语言清楚地表述自己的意图。计算机语言,即便是所谓的高级语言,对我们来说也是一门外语,即便我们学会了一些外语单词,学会写一些简单的句子,但要想清楚地表达自己所有想表述的内容还是非常困难的。状态机是计算机学科的基石(无论是硬件还是软件),通过学习运用所学语言编写状态机,可以无障碍的实现人类思维到计算机思维的转换——也就是解决了计算机语言环境下的语言表达问题。通过一套成熟的流程图/状态图翻译成代码的简单固定流程,可以让任何学生在半个小时内学会先画流程图/状态图再直接翻译成代码的方式。这种方式从根本上解决了先写文档还是先写代码的矛盾。
拥有了自由表达自身思想的语言表达能力,学生就有可能在后续的学习中迅速的表达和验证自己的所学和所想,而不是受到语言能力的限制将诸如数据结构学习这样的内容停留在抽象模型上的理解状态。
4.3.3        遣词造句
拥有了畅所欲言的能力并不表示写说出逻辑性强、能清晰有效的表达自身意愿的程序。就好像语文学习中造句训练那样,未经训练的小学生往往不能有效地表达自己想要表达的内容,缺乏词汇,容易犯啰嗦、无序等错误。对嵌入式系统软件开发来说,数据结构、算法就是这样一类积累词汇训练造句的课程。作为基础中的基础,遗憾的是大部分嵌入式从业者并没有认真学习过或者掌握数据结构和算法的内容,很多情况下诸如队列这样基本和常用的数据结构也不会运用,更无从谈起建立在这一事实点上的异步处理和非阻塞事务处理的概念。
4.3.4        修辞、语言组织训练和阅读能力训练
在拥有了一定的词汇积累和语言表达能力以后,修辞就成为语言训练的重点,例如,学习复句、比喻、拟人、排比这样的修辞手法;懂得有目的的运用修辞手法组织自己的语言来加强效果,也能读懂常见的行文修辞,比如不会误解互文所表达的意义。对应到嵌入式系统中,如何将我们通过状态机描述的数据结构和算法组织起来就成了重要的课题,对应的学科有操作系统基础——主要解释多任务环境下任务间的组织、通讯、资源的分配和访问;编译原理——一方面了解编译器的特性理解工程组织的一些原理和资源访问的一些限制,另一方面通过对编译机制的学习掌握基于语义的信息处理的常用技巧和方法,而这些方法往往在更广框的应用领域中扮演者重要的角色;其它重要的学科还有信号与系统、数字信号处理、自控原理等,这些都是嵌入式知识体系构架中某些具体方向所必需的能力,需要根据学员的专业方向和意愿进行有选择的扩充和培训。
4.3.5        文法和文体
即便在自然语言学习中文法和文体也并不是容易掌握的内容。在嵌入式系统知识体系构架中,介绍工程构架组织的书记非常匮乏;软件工程的知识对嵌入式从业者来说更是少有耳闻;更不用说计算机学科学校教育中都不会涉及的开发模式内容。而这些知识恰好是嵌入式系统团队日常开发中,不可回避的内容。在这部分适合嵌入式特点的计算机理论和总结更是凤毛麟角,属于高校教育的盲区。在这一背景下,除少数大型开发机构外,中国的嵌入式开发整体呈现缺乏工程化规模化方法论的作坊式状态。
4.3.6        作文
这里的作,是动词,写文章的意思。即便拥有足够的文法和问题知识,要想成为作家还是有相当的难度。对嵌入式知识体系构架来说,能按照需求高效稳定的开发出拥有一定质量的嵌入式应用已经是最终的目标,而与作文等同的项目规划、管理、实现等内容实际上已经超出了嵌入式知识体系构架的范围。

5.        培养方案
培养方案的制定需要在知晓被训对象基本状况的前提下,类比嵌入式知识体系图谱,根据培训的目标职位和工种要求制定相应的课程和计划。对于接受初期基础培训的本科生,首要任务是为其画出整个嵌入式知识体系图谱,帮助其找到自己的当前位置,在进行必要的公共基础培训的同时,引导其确定自己的职业和技术规划,并明晰该发展路线所需的知识、获取知识的方式以及所需的资源,在可能的情况下为其安排必要的培训。在完成首要任务的前提下,应着重培养学员的自主学习意识和能力,补充必需的基本技能——如英文资料的阅读能力,文献的索引能力、文档的编写能力、与他人或资源的沟通能力,基本的时间管理能力等等。



以上是我个人的观点,在这里提出来,就是希望借着这个机会借马老师的地盘和大家一起讨论,欢迎拍砖,不辩不明。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-8-2 08:32:20 | 显示全部楼层
littlepig 发表于 2012-7-13 10:34
学习单片机,硬件是不难的,难的是软件的实现

硬件不难?你把我搞糊涂了!看你做的是哪个行业了,有些行业用到的都是一些逻辑控制硬件相对来说比较简单,但是有些行业比如智能仪表行业,涉及很多传感器,就需要对不同传感器设计不同的信号调理电路,这个很难的,对模电要求非常高,还有就是行业知识也很重要

出0入0汤圆

发表于 2013-3-16 12:51:57 | 显示全部楼层
我之前一家公司的副总是搞编程的,很多公司都和他有合作(私人合作,是专注于他的实力)。他说:相比之下,应该说硬件入手比软件更难些。说到底,软件就是代码,很多东西是固定的,而硬件则需要视情况变动,同样是变动,硬件可能牵扯的更多。有时候软件不动,硬件一改就可能是另外一个功能,但是硬件动了,软件很难不变。

出0入0汤圆

发表于 2013-3-16 12:56:37 | 显示全部楼层
这里要是抛开单片机,只从软硬件来说,有个问题问一下:一个搞硬件的不一定非用单片机去实现某个功能,但是写软件的,你能不以MCU为载体去实现一个实际功能吗?  谁有这个本事?  难道哪位高人还能把代码写到二极管,三极管里面去?

所以说,不能说难或不难,关键还是要看实际情况去判断,一个以MCU为载体的产品,如果没有代码,要MCU干嘛?

出0入0汤圆

发表于 2013-3-17 15:56:23 | 显示全部楼层
machao 发表于 2012-6-30 01:24
难还是不难,这个是个哲学命题,不好回答。
我说难,不是单纯的从技术上讲,而是针对目前的现实状况综合 ...

“尽管楼上朋友对我一番称赞,但我在教学上的努力并不成功”
求知这东西说到底还是需要由审美能力来驱动。
工程技术类学科的美,美在功能性上。导弹的制导,航天飞机的上天,有的人能从中感到热血沸腾,也有的人无动于衷。
求知动力的内部分界正在这里,这个分界就决定一个人能在一个领域能走多深的关键。
话说有没有这审美能力还真得看前世的造化,这东西打从娘胎里出来后的前三年就基本固定了。


回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 23:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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