工具使用指导201510讲述.ppt
文本预览下载声明
工具使用指导培训 MC30系列C编译器介绍 仿真、烧写工具问题汇总介绍及处理办法说明 MC30系列C编译器 一、工具介绍 该编译器主要针对公司30系列的芯片开发的C语言编译器,其工作原理为: 1.通过SDCC.exe将C语言转换为汇编语言,SDCC(Small Device C Compiler)是一个优化的 ANSI - C交叉编译器,目标CPU为基于Intel 8051, Maxim 80DS390, Zilog Z80 和Motorola 68HC08 的单片机,我们的编译器是从PIC14基础上修改过来的 2.将通过SDCC转换的汇编代码再由原有的汇编工具GPASM和GPLINK最终生成目标文件S19 二、项目建立 MC30系列C编译器建立工程具体方法: 1.点击文件-新建-项目管理或者项目管理“-新建项目 2.选择相关的30系列的芯片型号,项目名称填写需要按照命名规则进行(由字母或数字或下划线组成)。项目存放路径选择,原则上路径中不允许出现中文名路径。开发语言,请选择C语言。例如:我们选择MC30P011型号,项目名称为:mc30p011_c_test。然后点击下一步。 点我点我点我 3.根据项目的需要,对芯片的OPTION进行设置。设置完成后,点击下面的保存设置,然后点击第二步 点我点我点我 保存设置后点我 4.点击“完成”,C语言工程自此创建成功 三、MC30C说明 1.有助于调试分析的文件 工程目录\Output\*.lst文件内有对每一行c语言代码的汇编解析,可以对照查看,分析问题。 gpasm 汇编编译工具 gpasm –l可以查看目前所支持的芯片类型 gpdasm 将s19文件转换成汇编代码链表,稍加修改之后就可以用于汇编代码的调试 gpdasm –p –类型 *.s19 2.仍存在问题 i. E方定义的问题仍未解决 ii. bit位取反不正确:P0=~P0; iii. 乘除法有问题,需自己定义,有印杰提供的示例 3.已处理问题 i. switch语句已修改 ii. 指针已做过处理 iii. Const定义的数组即查表的处理已修改,已能正常使用 4.需注意问题 i. “.h”、“.c”文件的文件名必须由字母或数字或下划线组成 ii. 临时变量必须定义在函数开始,否则不能识别 iii. 调用ASM方法 __asm 汇编代码 __endasm; 另外,调用的汇编代码中用到的寄存器前加_前缀,如_STATUS iv. 位定义方法参考头文件(.h)中对各寄存器的定义方法,如下: typedef struct { unsigned char bit0 : 1; unsigned char bit1 : 1; unsigned char bit2 : 1; unsigned char bit3 : 1; unsigned char bit4 : 1; unsigned char bit5 : 1; unsigned char bit6 : 1; unsigned char bit7 : 1; } BITS_T; v. 中断函数定义 void int_isr(void) __interrupt { } 另外,在中断函数中尽量使用不要过多层的调用函数,以防止堆栈溢出,可以定义标志位来处理 vi. 其他未发现的未知bug需各位在使用过程中发现告知 仿真、烧写工具问题汇总介绍及处理办法说明 一、烧写失败问题分析 1.对于已经正式发布的芯片,如果使用烧写小板,烧写失败,先读 2.如果读取失败,检查芯片位置及方向是否放对了 3.如果芯片位置及方向确认无误,还是读不到,舍弃烧写小板,跳线后再读(FT和SDO也必须短接),能读到再烧写,如果烧写成功,再用烧写小板烧写,确认烧写小板是不是有问题;如果还是烧写失败,记录错误编号,请将问题提交工具组。 4.跳线后如果还是读不到,可能芯片坏了,或者不是该型号芯片,换一个确认没问题的芯片再读 5.如果确认芯片没问题,
显示全部