当前位置:首页 > 芯闻号 > 充电吧
[导读]近来发现坛子里的不少哥们对BASCOM-AVR比较感兴趣

  近来发现坛子里的不少哥们对BASCOM-AVR比较感兴趣,连双龙也开始关注了,作为一个老用户,觉得有义务给大家作个简单的评价,给打算学习BASCOM的朋友一个比较客观的意见,仅供参考,如有说得不对,欢迎指教。

    首先,它的优点是有目共睹的,我想选择它的哥们也一定是看上了它的这个优点:易用上手快,容易出成果!BASCOM确实很容易上手,2002年初我刚开始接触AVR的时候,就是完全靠它的HELP系统加老龙的SL系列实验开发器自己摸索的,就是现在,我也还经常在HELP系统中CTRL+C和CTRL+V例子代码,代码很简单易懂,对格式要求也不很严格,不用做芯片的初始化工作,有时就是连简单的CONFIG语句都省了,编译一样成功,但是C语言就要在写程序之前先写大量初始化芯片的语句,比较烦人。同时,它支持部分汇编语句也是值得高级用户称道的,如DDR=XXX语句就可以配置IO口的寄存器等,比CONFIG语句更灵活更好用,结合使用更是能随心所欲,方便极了。对于部分比较常用的模块化功能如读取RC5遥控编码,读写LCD等都简单到了一句搞定的地步,很适合业余开发者和学生兴趣班使用。

    但是它的某些方面确实有些问题!比较严重的是:

    1、程序结构化能力差。常用的功能想做成函数或模块调用以节省空间,但是最终往往达不到效果,而编译器却没有提示出错,给人摸不着头脑的感觉。例如,想把AD转换作为一个自定义函数,供主程序反复调用,但是最终转换结果却出现很多严重的错误,远远偏离正确值,如果直接把该段代码写在主程序模块中就一切OK,很是伤脑筋,这点对于程序规模比较大的,或是初学者是很不利的,解决办法只有将公用代码放在某个程序段中不断的GOSUB和RETURN,要想跟C语言的优秀的结构化风格比是不可能的。

    2、部分语句有兼容性问题。如RC5SEND语句,在90S系列芯片中完全通过,而在MEGA系列芯片中完全失效,没有任何动静,编译过程中又没有任何提示,这意味着MEGA系列无法使用这种简单的办法来扩展键盘了。

    3、用户很少,网上例子代码贫乏,无法跟其他用户交流,这点对于初学者比较惨。

    4、现成的算法少,很多需要自己重头研究编写,比较辛苦。

    5、程序代码空间的利用率低,完成同样功能的程序,编译的结果往往比C编译器的大的多,比如一个写LCD语句就会编译出几百的字节来,无法根据源程序大小来估计最终FLASH的使用率,而且一旦超出FLASH大小范围只有干瞪眼的份,无法根据自己程序的实际情况来优化空间,毕竟是调用现成的模块嘛。

    6、对硬件的操作很模糊,似乎隔离了用户跟硬件打交道的权利,这当然是为了给用户简单易用着想的,但当用户用了很多年BASCOM以后再想换换其他的编译器,却发现自己天天在用的芯片自己却一点也不知道它的硬件结构和使用方法,没法放弃BASCOM了,贪图方便的结果,惨啊!

    以上是我这些年研究BASCOM的“成果”,供大家参考。总体上来说,这款软件是可以给80分的,还算是不错的编译器,适合简单的作些端口控制的小程序,不适合包含大量算法和运算量比较密集的项目;适合像我这样的业余玩家(不过今年我已经逐步放弃BASCOM而转向ICC了)和作为非该专业学校的学生使用,不适合靠单片机混饭吃和将来打算深入研究的用户。

    另外,还想对坛子里某些哥们的一些观点提出异议:

    1、BASCOM语言的AVR开发工具编译出来的程序执行效率低。我认为,这恐怕是受了计算机GW-BASIC或是TURBO-BASIC时代的影像,想当然的把这顶帽子扣在BASCOM-AVR身上了,以前计算机的BASIC语言包括VB确实效率低,原因是他们生成的代码不是最终目标机器的代码,而是经过一个RUNTIME的程序在内存解释后运行的。而单片机的BASIC编译器是直接将代码编译成AVR相应芯片的机器码的,不需要在单片机的内存驻留RUNTIME程序,执行效率不会很低(垃圾代码多则另当别论),排除垃圾代码的影像,执行效率是跟其他编译器编译出来的一样的。

    2、BASIC语言结构化能力差。我认为这也是受了早期计算机教科书的误导而以讹传讹,BASIC发展到了QuickBASIC以后,结构化能力已经很强,具备很多结构化的思想和编程方式,已经具有函数、模块、局部变量、全局变量、数据传递等,已经摆脱了早期BASIC语言GOTO和程序行号的阴影,而上面我提到的BASIC-AVR结构化差的问题则是这个软件开发的个别问题了,毕竟它只能尽量兼容QUICKBASIC,这点在HELP里也说得很清楚了。

    乱七八糟谈了一大堆,有什么不对的还请各位大侠不吝赐教,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

在当前的科技浪潮中,单片机作为嵌入式系统的重要组成部分,正以其强大的功能和广泛的应用领域受到越来越多行业的青睐。在众多单片机中,W79E2051以其卓越的性能和稳定的工作特性,成为市场上的明星产品。本文将深入探讨W79E...

关键字: 单片机 w79e2051单片机

单片机,又称为微控制器或微处理器,是现代电子设备中的核心部件之一。它集成了中央处理器、存储器、输入输出接口等电路,通过外部信号引脚与外部设备进行通信,实现对设备的控制和管理。本文将详细介绍单片机的外部信号引脚名称及其功能...

关键字: 单片机 微控制器 中央处理器

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备

PLC(可编程逻辑控制器)和单片机是两种不同的控制设备,它们之间存在明显的区别:

关键字: 单片机 plc 控制器

Holtek隆重推出全新一代32-bit Arm® Cortex®-M0+ 5V CAN MCU - HT32F53231/HT32F53241/HT32F53242/HT32F53252。这一系列单片机带有来自Bosc...

关键字: MCU 工业自动化 单片机
关闭
关闭