|
发表于 2014-12-27 19:27:05
|
显示全部楼层
本帖最后由 xieyudi 于 2014-12-27 20:10 编辑
LZ的观点也有问题, 比如:
"汇编语言是无法做到C语言的函数调用与封装的"
遵守abi的汇编代码可以做到这点, 也可以和由C生成的代码互相调用
还有几个, 不说了.
回到主题,
举个例子, 比如我当初开始弄STM32的时候就是从汇编开始入门的, 自己根据文档, 写连接脚本, 中断向量, 中断例程等等. (我能说我弄68hc12, pic18, mipsr4k, 8086, 甚至x86, 也都是这么入门的吗)
因为我是學生, 所以我觉得有这个必要. 当然如果是在工程实践中, 也可以不这么做 (比如我后来接手一个K60的项目, 时间只有3天, 我就采取了快速开发的策略... 同样, 我要是在工程环境下开发x86, 那肯定... 你懂的).
根据实际情况, 选择哪种开发模式, 这是你的自由. 没有任何人强迫你用某一种方式.
会造成这种误解的原因, 我觉得是因为大量相对低端底子薄弱的工程师, 用工程经验误导初学者, 造成了这种假象.
所以我反对的是那种把 "快速开发" 当成 "学习". 这样什么也学不到.
从学习的角度来讲,
CM3 速度快, 结构简单, 功能强大, 价格便宜, 外设丰富, 都是优点. 缺点只有一个, 就是充斥着大量的低级的工程性入门资料, 这些资料只适用于粗狂的工程开发, 对于学习而言只具有参考价值. 而介绍原理的资料之存在于ARM和半导体厂商的英文文档里, 这是个门槛. (全世界唯一一本讲CM3原理的书, 就是那本the definitive guide, 其实都是80 90年代的技术了, 就一三级流水线, 也没什么好讲的)
51 之类的唯一优点, 就是介绍原理的资料烂大街, 是个大学都会讲, 所以对于学习者门槛较低.
其实靠单片机来学习计算机, 这点本身就很荒谬. 单片机只是用于控制, 微架构都是30年前的东西, 能学到什么? 几十年前的486就是超标量了, p6 (686) 就是乱序了.
真想学计算机的, 不如买个龙芯3B之类的玩玩, mips的资料又多. 在x86在笔记本上裸奔照着Linux写个保护模式的分时调度器都比这个靠谱.
LZ的观点是正确的, 只是部分论据没有说服力, 甚至是错误的. |
|