讨论8位、16位、32位单片机编程区别。跪求热烈讨论。。。

单片机111 2013-06-27 03:26:09
如题,跪求各位热烈讨论。。。有大侠想谈单片机编程的经验或注意点也在本帖主题范围之内。

...全文
12888 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
一把单刀客 2015-01-27
  • 打赏
  • 举报
回复
说的好乱 哎
fly 100% 2014-11-02
  • 打赏
  • 举报
回复
数据对齐注意下
unsv29 2014-11-02
  • 打赏
  • 举报
回复
endian问题 是个问题。不过和几位单片机没啥关系。 楼上有几位理解的错误。 楼主提问的很好。 你可以看看 misra2004 百度一下。好好研究
xunshanwuzhao 2014-08-13
  • 打赏
  • 举报
回复
ARM也是单片机!比如现在最强的四核4412也可以认为是个单片机!在原理上没有什么特别的!
小白yige 2014-08-13
  • 打赏
  • 举报
回复
位数越多,寄存器越多,因为位数是根据寄存器的地址范围决定的。8位的最经典的是51了,功能简单。以后的高级的单片机普遍采用了寄存器操作,控制。功能更强大自带AD转换,自带PWM输出,输入脉冲捕捉。这些都感觉方便了。再向上发展就是可以跑操作系统,可以通过系统控制硬件了。以前不论怎么高级,都毕竟是裸机。
aydf1 2014-06-28
  • 打赏
  • 举报
回复
单纯C写代码没啥区别,一般编译器把初始化都做了,需要改的不多。汇编或者调试的时候会有区别,指令集不一样,寄存器也会有点差异(尤其是跟汇编的时候),参数传递时会有差异(因编译器而异)
of123 2014-06-25
  • 打赏
  • 举报
回复
引用 37 楼 caiwei_cs 的回复:
这个要看你要怎么用什么了?跟需求有关吧。没必要强求什么多少位
呵呵,有时甲方会规定用 32 位芯片,虽然 8 位芯片也能胜任。所以我公司才会专门出一款成本低、性能比 8 位略高的 32 位芯片。
二进制脑袋 2014-06-24
  • 打赏
  • 举报
回复
更正一下,上贴中的对齐是指大小端
二进制脑袋 2014-06-24
  • 打赏
  • 举报
回复
引用 1 楼 u011004181 的回复:
先自顶一个。小弟只知道32位单片机编程要注意大小端的问题,8位自然就不需要。
这个关于对齐的说法不对,不管32位单片机还是8位机,数据在寄存器中程序员是不用考虑对齐的,但超过8位的数据存储在内存或外存(比如磁盘文件)上都要考虑对齐的问题,8位机也有16位或32位类型的值,存储的时候仍旧要考虑对齐的!
doubl0 2014-06-19
  • 打赏
  • 举报
回复
AVR实验与相关知识: 可上去试试 网址:http://double.ss.ma
doubl0 2014-06-19
  • 打赏
  • 举报
回复
AVR实验与相关知识:double.ss.ma 可上去试试
萧凯 2014-06-19
  • 打赏
  • 举报
回复
主要是功能和速度的区别: 8位功能少,速度慢,内存小,实现高效控制功能,将提高运行速度,所以尽量少用结构体、库函数、指针、浮点等编程方案。 32位单片机RAM和ROM较大,一般要求实现比较复杂的功能,如通讯协议、较复杂数学计算等,所以使用库函数、结构体、甚至列表等。
of123 2014-06-19
  • 打赏
  • 举报
回复
学嵌入式的网友,接触到的 32 位机往往是 ARM 内核的,运行 Linux。 但实际上,32 位的微处理器远不止这一类。有些就是增强版本的微处理器,例如 M*Core 内核的微处理器。 32 位机的功能模块寄存器可以是 32-bit 的(当然也可以是 8-/16-bit),而且存取都是单时钟周期。CPU 的算逻单元也是 32 位的,当然,运算会更快。 32 位机的一个重要注意事项是 32-bit 字的自然边界问题,也就是字对齐问题。例如,要从 RAM 中将一个 32-bit 的字写入一个 32-bit 寄存器,那么,这个字在 RAM 中的地址必须是 32-bit 对齐的,也就是说地址最低十六进制位是 0, 4, 8, c。如果不是这样(比如数据类型是 char,又恰好其起始地址未 4 字节对齐),需要先将此字复制到一个 32-bit 对齐的缓存,再赋值。 还有一个比较麻烦的事,就是用户定义的结构中各个成员的对齐。如果在一个 32-bit 类型的成员前面,有 char 及 short 类型成员,且没有凑齐到 32-bit 自然边界,那么编译器将会自动补 NULL 来填充。有不少从 8 位向 32 位机移植代码的朋友,都在取成员长度的时候发生疑惑。问题往往是出在 32-bit 对齐上。 在有就是不同编译器的规约差异。 不过,用过两种微处理器之后,就会渐渐熟悉起来,相互移植也不会有很大困难。
caiwei_cs 2014-06-19
  • 打赏
  • 举报
回复
这个要看你要怎么用什么了?跟需求有关吧。没必要强求什么多少位
achao446011580 2013-08-02
  • 打赏
  • 举报
回复
8位的单片机会 但没用过16位、32位,不懂 听高手详解
Mayday920923 2013-08-01
  • 打赏
  • 举报
回复
地址总线不同
breaker_d 2013-07-31
  • 打赏
  • 举报
回复
处理速度吧,
hdivy 2013-07-29
  • 打赏
  • 举报
回复
速度,功能,性能。。。。。
u010538529 2013-07-29
  • 打赏
  • 举报
回复
准备学习stm32的说
Xiaoxiongai5 2013-07-26
  • 打赏
  • 举报
回复
以前玩89s52 淘汰了 现在正学stm32呢
加载更多回复(21)

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧