当前位置: 首页 >> 应用笔记 >>你选择的正文
 
在AVRStudio中调试BASCOM代码的方法
                                                    
日期:04-04-2006  
 

 

    BASCOM是由MCS公司推出的、面向AVR系列单片机且采用高级程序设计语言BASIC的软件开发平台。BASCOM如同BASIC一样,具有程序设计简单易学,用简单的语句可实现较复杂的功能等特点。BASCOM集成开发环境包含程序代码开发、调试和仿真等功能,其自身包含调试环境,也可以输出obj格式文件,在AVR Studio调试环境中使用。
    在BASCOM中是默认生成obj格式文件的。设置是否生成obj文件是在Options->Compiler->Output窗口中设定的。

    如图1所示:

    图1

    在AVR Studio中打开调试文件的方法与打开C语言编译器的调试文件的方法类似,只是需要注意的是:
    由于在AVR Studio中调入C编译器生成调试文件后,AVR Studio会自动运行程序到主函数(main( ) )的所在行,即已自动运行过初始化代码部分(设置没有用的中断向量和清零芯片中的RAM区),而调用BASCOM编译器生成的调试文件后,AVR Studio没有自动运行程序,将程序指针指到0x0000地址处。这就是我们打开在Simulator调试环境中分别打开两种调试文件后,会发现I/O View窗口中的Processor下的Stop Watch时间是不同的,也就是这个原因。
    如图 2 打开C语言调试文件

图2

    如图3 打开BASCOM语言调试文件

图 3

    由于这个原因在打开BASCOM调试文件后,多次执行单步运行指令后,程序指针没有移动。
    解决这个问题的方法很简单:可以在BASCOM的第一行可以执行代码处设置一个断点,然后全速执行程序到该断点处或将光标放到第一行可以执行代码处,然后执行“运行到光标处”指令。以上两种方法均可以将程序指针运行到程序开始处。

    由于BASCOM目前尚不支持输出AVRStudio支持的调试文件格式elf格式,在AVRStudio中调试BASCOM代码时,会出现多次点击“单步执行”按钮后,程序才执行一行BASCOM代码的情况,出现该现象的原因是,每点击一次“单步执行”按钮,执行一行  BASCOM对应的汇编代码,而有时一行BASCOM代码会生成多行汇编代码。解决的方法可以使用 打开反汇编代码,如图4所示

图4

    此时,在执行一次“单步执行”按钮后,程序将会运行一行汇编代码。
    当然也可以在BASCOM软件自带的仿真环境中进行仿真。