因为工作需要,在10年之后,我又重操旧业,再度进入嵌入开发的领域,而所使用的CPU居然也跟10年前一样,还是8031,在这样一个迅速发展的领域里,8031真可以说得上是一个古董级的CPU了,不过虽然只是个8位的处理器,但是由于其电路简单,成本低廉,在很多对功能和性能要求不高的地方还是有用武之地的。
在十几年前(1995年),我刚刚毕业参加工作,进入一家通信企业(不是华为)做程控电话交换机,整个系统采用分散的模块化构架,整个交换机大大小小将近10个左右的模块,所有的CPU都是用的是8031,交换机总容量在2000门左右,完全符合国标,有当年的邮电部入网检测证书。可见只要结构设计的好,8031也一样大有用武之地。
那个时候使用的是PL/M-51 + 汇编编写程序,PL/M-51的语法类似于FORTURN,不支持指针,编译后的性能也还过得去,后来为了便于维护,把很多底层的汇编代码都用PL/M-51改写了,性能上也没有任何影响。至于为什么不用C,据说是最开始没有支持8031的C语言,只好使用PL/M-51,等到后来C51出来了,我们的程序也都写差不多了,没办法换了。
当年我们写8031的程序最痛苦的就是代码段和数据段的长度有限,只能有64K,导致编写程序的时候时刻要注意时间和空间的均衡,有的时候用时间换空间,有时候又是用空间换时间,还是很有点意思的。
现在重新又使用8031,语言已经换成了C-51了,写出来的代码移植性更好一点,别的就暂时还没有看到有什么好处。
在十几年前(1995年),我刚刚毕业参加工作,进入一家通信企业(不是华为)做程控电话交换机,整个系统采用分散的模块化构架,整个交换机大大小小将近10个左右的模块,所有的CPU都是用的是8031,交换机总容量在2000门左右,完全符合国标,有当年的邮电部入网检测证书。可见只要结构设计的好,8031也一样大有用武之地。
那个时候使用的是PL/M-51 + 汇编编写程序,PL/M-51的语法类似于FORTURN,不支持指针,编译后的性能也还过得去,后来为了便于维护,把很多底层的汇编代码都用PL/M-51改写了,性能上也没有任何影响。至于为什么不用C,据说是最开始没有支持8031的C语言,只好使用PL/M-51,等到后来C51出来了,我们的程序也都写差不多了,没办法换了。
当年我们写8031的程序最痛苦的就是代码段和数据段的长度有限,只能有64K,导致编写程序的时候时刻要注意时间和空间的均衡,有的时候用时间换空间,有时候又是用空间换时间,还是很有点意思的。
现在重新又使用8031,语言已经换成了C-51了,写出来的代码移植性更好一点,别的就暂时还没有看到有什么好处。