编程微控制器8位,16位,32位时有什么区别?
人们总是希望有一名工程师能够在8位,16位和32位控制器中编程/使用经验。当我们编程8,16,32位微控制器时,我仍然无法弄清楚是否有巨大的差异?或者在声明变量方面只是不同...编程微控制器8位,16位,32位时有什么区别?
类似于Weather Vane的评论。驾驶一辆小型小型汽车,一辆皮卡车,一辆搬运车和一辆半卡车(牵引车 - 拖车)有什么不同?那么,他们在很多方面都是一样的,气体,刹车,方向盘,座位,门,窗户,收音机,大灯,所有的东西,你刹车,燃气和驾驶。你能用智能汽车搬家吗?嗯,不是所有的东西,虽然你可能可以得到一个小的拖车为床和沙发,但你可以一次移动一两箱,并做出吨的旅行,皮卡减少旅行,半可能一次旅行取决于多少你有的东西。
如果您正在编程像C这样的高水平,那么最初它会感觉到相同的气体,刹车,转向。但这就像是多次旅行来移动你的东西或几个或一个。一般来说,你可以用8位处理器做一个64位的数学运算,一个16位数,我们知道一个32位数,因为我们总是这样做,而且自然是64位。它只需要更多的行程,你必须将数学分解成几部分,并一次完成一个部分。自然就像使用你的平板来搬运公寓里的东西一样,它比使用卡车需要更多的时间。
刚才看到有人在这里使用Microchip PIC上的浮点数,经常看到(浮在微控制器上),如果编译器有一个库,它允许人们尝试它,但它们很快就会用完闪光灯和/或内存和他们的表现是可怕的。
因此,在某些方面,它是关于了解变量与您在Windows或Linux上使用的大小不一样,事情需要更长时间,资源少得多,调试是或可能有点不同,就像脱离大众汽车的错误,这是你驾驶过的唯一的一辆汽车,然后乘坐皮卡车或厢式货车,每次转弯时都会夹住路边石或停放的汽车,无法停在灯光下等等。最终你会习惯它。与移动卡车不同的是,当你搞砸时,你通常不会伤害处理器中的碎片,你可以让软件冒出来并确保系统可用,但希望更多的时候程序不会生成或不运行,或者运行速度非常慢,每次都要坐牢,跑过站在角落的行人。
在这个时代(实际上很长一段时间,但现在很平凡),你可以找到各种模拟器/模拟器,你可以试着去感受这些平台。性能可能不正确,但如果你只有1024字节的RAM和几K字节的闪存,你会立即感觉到,并想知道为什么只有几行高级代码消耗这么多的指令。理解一些事情,比如可能在8位MCU上,我应该使用大多数8位变量,这样我就不会烧这么多的代码(除非编译器算出来,仍然是浪费),同样在16位使用大多数16位和32位大多数32位。 (试图在更大的平台上“保存”内存实际上会花费更多的周期,如果它没有本机的指令或者添加额外的指令来做签名扩展或剪辑),则必须签署扩展或剪辑每个操作。
驾驶无齿轮助力车和20吨卡车有很大区别吗?这些技术与现有的设施非常不同。您的示例中的一个明显区别是,8位处理器无法简单地执行16位或32位算术运算。我说这是因为你没有提到任何高级语言。 –