本公司保留对产品在可靠性,功能和设计方面的改进作进一步说明的权利.
5.1.1固件 时间:2021-05-24 阅读:(
)
说明文档的更改,恕不另行通知.
IDE使用说明Version1.
002018年11月磐芯电子有限公司MASSESELECTRONICCo.
,Ltd.
仿真器使用说明-2-修正记录版本日期描述Ver1.
002018-11-12仿真器版本更新仿真器使用说明-3-目录目录.
31概述.
52界面说明.
62.
1软件界面说明62.
2硬件界面说明72.
1.
1MTP型号的芯片.
72.
1.
2OTP型号的芯片83操作说明.
93.
1MTP的操作说明.
93.
1.
1与电脑连接.
93.
1.
2与仿真芯片连接.
93.
1.
3仿真操作.
103.
1.
4烧录操作.
143.
1.
5固件升级.
143.
2OTP的操作说明173.
2.
1仿真器的连接.
173.
2.
2仿真操作.
183.
2.
3烧录操作.
183.
2.
4固件升级.
194汇编的介绍.
204.
1文件结构.
204.
2表达式.
204.
3数据格式.
214.
4预编译.
214.
5条件编译.
224.
6头文件.
224.
7宏定义.
224.
8当前地址(234.
9CBLOCK.
234.
10DW244.
11EQU.
244.
12填充(FILL)245C编译的说明.
255.
1简介.
255.
1.
1系统需求.
255.
1.
2建立新工程.
256C编译的语法与使用.
266.
1标准C语法.
26仿真器使用说明-4-6.
1.
1批注.
266.
1.
2数据型态.
266.
2扩充语法.
266.
2.
1保留字.
266.
2.
2中断(interrupt)276.
2.
3寄存器位址定义.
276.
2.
4寄存器位定义.
276.
2.
5内嵌汇编语言(lnlineassembly)286.
2.
6指针属性.
286.
3系统标头档.
296.
4开发流程.
296.
5高级使用.
306.
5.
1强制指定内存地址.
306.
6使用建议.
316.
7常见问题.
31仿真器使用说明-5-1概述磐芯电子仿真器是磐芯电子有限公司为其自主设计的内嵌Memory的产品进行应用仿真而设计.
仿真工具包括两部分:软件环境(IDE)和硬件部分(ICE).
主要功能如下:对符合磐芯电子语法解析规则的源文件进行编译.
对磐芯电子的芯片进行仿真.
对磐芯电子的芯片进行样片烧录.
注意:使用时请对应最新的软硬件版本仿真器使用说明-6-2界面说明2.
1软件界面说明IDE软件包为免安装软件包,拷贝到电脑上即可使用.
(注:请确认软件包放置目录路径、源文件名及新建项目名中不包含""(空格)、"("、")"或其他特殊字符及全角字符,如软件无法使用或编译错误,请将目录路径、源文件名及新建项目名修改为只使用英文字母及数字后再使用.
)寄存器窗口文件窗口菜单及快捷按键项目窗口输出窗口存储器窗口仿真器使用说明-7-2.
2硬件界面说明2.
1.
1MTP型号的芯片注意:使用的硬件版本为V2.
x.
USB接口VDDSDASCKVPPGND硬件版本仿真器使用说明-8-2.
1.
2OTP型号的芯片注意:使用的硬件版本为V5.
x.
此仿真器由两个硬件组合而成,上面的小板为副板,下面的是主板,因此这种OTP型号的仿真器的硬件版本是跟随下面的主板的.
硬件版本仿真器使用说明-9-3操作说明3.
1MTP的操作说明3.
1.
1与电脑连接仿真器可直接插在电脑的USB端口,无需安装驱动.
3.
1.
2与仿真芯片连接将仿真接口的5个插针按信号名称与芯片对应引脚一一相连.
下图为以M8P634为例所示的连接方式:仿真器使用说明-10-3.
1.
3仿真操作Step1:执行IDE_HID.
exe,打开ZC-IDE软件界面Step2:项目-新建项目输入项目名称,完成项目建立.
Step3:配置-选择芯片(选择仿真芯片型号)仿真器使用说明-11-Step4:配置-芯片配置字(选择芯片配置字)Step5:添加程序文件右键点击Sourcefiles,仿真器使用说明-12-弹出添加文件窗口,选择需要的程序文件.
Step6:点击下载(Download)按钮,软件会自动进行编译,然后将程序装载入仿真芯片.
仿真器使用说明-13-Step7:然后可以进行程序的连续运行,单步运行或运行至断点暂停等仿真.
仿真器使用说明-14-3.
1.
4烧录操作1)将仿真接口的5个插针按信号名称与芯片对应引脚一一相连,连接方式与仿真模式相同.
2)设好配置字,将程序进行编译后,点击写(ProgramIC)按钮,程序即可写入芯片.
3)其他相关按钮功能验:校验,检查烧录数据是否正确空:查空,检查芯片是否空片擦:擦除,将芯片内原有程序全部擦除3.
1.
5固件升级1)将仿真器与电脑连接好2)执行IDE_HID.
exe,打开ZC-IDE软件界面3)选择帮助-固件升级仿真器使用说明-15-4)在弹出的窗口中点击Load按钮,选择升级用的固件文件5)确认升级固件仿真器使用说明-16-6)等待升级完成仿真器使用说明-17-3.
2OTP的操作说明3.
2.
1仿真器的连接仿真器可直接插在电脑的USB端口,无需安装驱动,即可与对应的芯片链接.
下图为以M8R62为例所示的连接方式:用短接块连接好后就可以使用短接块连接仿真器使用说明-18-3.
2.
2仿真操作与MTP的操作相同3.
2.
3烧录操作1)在40pin芯片座的左右两边,各有3组3x20的插针,每组插针的左边一列和右边一列对应板上标示的信号,中间一列对应芯片座的左边或右边的20脚信号,根据不同芯片烧录脚所在位置,将对应脚与所需烧录信号用跳线横向相连.
下图为以M8R62为例所示的跳线放置方式:仿真器使用说明-19-2)设好配置字,将程序进行编译后,点击写(ProgramIC)按钮,程序即可写入芯片.
3)其他相关按钮功能验:校验,检查烧录数据是否正确空:查空,检查芯片是否空片擦:擦除,将芯片内原有程序全部擦除3.
2.
4固件升级OTP的固件升级与MTP的相同,注意好使用不同的固件就行.
仿真器使用说明-20-4汇编的介绍4.
1文件结构源文件由多行组成,每一行可以由标号(必须从第一列开始)、操作符(不可以从第一列开始)及注释(分号后)组成.
标号可以包含字符A-z、数字0-9及下划线"_",但不可以以数字开头,标号可以跟1个冒号":".
源文件中除注释内容以外,不可以使用全角字符.
例:;空行LAB1;标号LAB_2MOVIA0x00;标号及一个参数的指令LOOP:INCR0x20,R;标号及两个参数指令CLRA;无参数指令MOVAR0x20;一个参数的指令GOTOLOOP;一个参数指令JBTS1STATUS,Z;两个参数指令4.
2表达式编译器支持的C运算符列表:运算符说明运算符说明||逻辑或+加&&逻辑与-减&位与*乘|位或/除^位异或%取余大于HIGH取次高位Bit15-BIT8>右移!
逻辑反~位取反例:MOVIAHIGH(LAB1);//取LAB1的次高位MOVIALOWLAB1;//取LAB1的低8位MOVIAX+Y;//X+Y的值赋给ACC仿真器使用说明-21-4.
3数据格式下表提供了指定数据格式的几种方式数字格式基本符号示例二进制B'[0-1]'B'1010'[0-1]b1010b8进制O'[0-7]'O'25'[0-7]o25o10进制D'[0-9]'D'21'[0-9]'d21d.
[0-9].
21[0-9]2116进制H'[0-F]'H'15'0x[0-F]0x15[0-F]h15h4.
4预编译#definexy所有x在编译的时候被替换成y直到遇到#undefinex例:#definex0x20MOVIAx等同于MOVIA0x20仿真器使用说明-22-4.
5条件编译IFDEF或#IFDEFELSE或#ELSEENDIF或#ENDIF例:#ifdefaMOVIA0x55#elseMOVIA0xAA#endif如上,若a通过#definea定义,则编译MOVIA0x55否则编译MOVIA0xAA4.
6头文件可以用INCLUDExxx.
inc或#INCLUDExxx.
inc指定头文件,若当前工程目录无xxx.
inc文件,编译器将在缺省目录(工具包的INCLUDE目录)中寻找该文件.
4.
7宏定义宏定义格式:SLRmacroxBCLRSTATUS,CRLRx,RBCLRSTATUS,CRLRx,Rendm宏的调用:SLR0x20;0x20寄存器左移2位,用0补齐仿真器使用说明-23-4.
8当前地址($)$符号定义为当前地址,使用方法如下:$:当前地址$+1:当前地址+1$-2:当前地址-2LOOPGOTOLOOP等同于GOTO$LOOPJZR0x20,RGOTOLOOP等同于JZR0x20,RGOTO$-14.
9CBLOCK使用方法如下:CBLOCK[][:][][:]ENDC使用示例:CBLOCK0x20AB:2CENDC如上等同于:AEQU0x20BEQU0x21CEQU0x23仿真器使用说明-24-4.
10DW定义数据,使用方法如下:DW[,]示例:DW0x55aa,0xaa554.
11EQU变量定义,使用方法如下:EQU示例:XEQU0x20变量名必须从第一列开始4.
12填充(FILL)填充数据,使用方法如下:EQU,示例:FILL0x55aa,10;从当前地址填充10个0x55aa仿真器使用说明-25-5C编译的说明5.
1简介MC_8为针对磐芯电子的M8/M6系列的MCUIC而提供的C语言编译程序(Compiler).
它被上层开发工具软件IDE_HID所调用以编译C程序,并结合ZCASM组译器(Assembler)进一步组译及连接目的档来产生.
hex文件,然后.
hex文件可下载到板子或烧录到MTP/OTPIC.
5.
1.
1系统需求以下列出使用MC_8的系统需求.
Pentium1.
3GHz或更高级处理器,Win7、Win8、Win10操作系统.
至少2GSDRAM.
至少2G硬盘空间.
5.
1.
2建立新的工程项目与汇编的操作相同,值得注意的是在保存类型栏内,选择IDEProject(c)(*.
prj).
仿真器使用说明-26-6C编译的语法与使用MC_8支持标准的ANSIC99语法,并且针对MC_8系列IC新增了一些特殊语法.
6.
1标准C语法MC_8支持标准的ANSIC99语法,有关详细语言定义请参考:StandardISO/IEC9899.
6.
1.
1批注批注支持两种格式,以双斜线起头的单行批注,以及/*起头,至*/结尾的多行批注.
范例://singlelinecomment/*Multilinecomment*/6.
1.
2数据型态以下表格列出MC_8所使用的基本数据型态及允许的数据范围.
型态长度范围char1byte0~255unsignedchar1byte-128~127short2byte-32768~32767unsignedshort2byte0~65535(0xFFFF)int2byte-32768~32767unsignedint2byte0~65535(0xFFFF)long4byte-2147483648~2147483647unsignedlong4byte0~4294967295(0xFFFFFFFF)6.
2扩充语法6.
2.
1保留字以下列出所有保留字,用户定义的符号不可和保留字相同.
autodogotosizeofvoidbreakdoubleifstaticvolatilecaseelseintstructwhilecharenumlongswitchinlineconstexlemreturntypedefrestrictcontinuefloatshortuniondefaultforsignedunsigned仿真器使用说明-27-6.
2.
2中断(interrupt)中断服务程序在MC_8系列中,地址为0x08.
在C语言中必须增加属性至函数定义,__interrupt{}代表硬件中断服务程序.
编译程序会将此段程序安排在指定的地址,中断必须在地址0x08.
编译程序在进入函数前需用户手动保留当前系统状态,例如ACC寄存器、FSR寄存器,然后在离开中断服务程序时用户要手动还原状态.
范例:voidint_isr(void)__interrupt{__asm;push__endasm;TC0IF=0;IOA1=1;IOA1=0;__asm;pop__endasm;}6.
2.
3寄存器位址定义所有支持MC_8IC的特殊寄存器都已经被定义在程序文件夹的include目录下,档名为IC名称.
建议用户直接使用该标头档,不须自行定义特殊寄存器.
6.
2.
4寄存器位定义范例:typedefunion{struct{unsignedcharTC0IF:1;unsignedcharTC1IF:1;unsignedcharTC2IF:1;unsignedcharTC2GIF:1;unsignedcharTXIF:1;unsignedcharRXIF:1;unsignedcharADIF:1;unsignedcharI2CIF:1;};仿真器使用说明-28-}__INTF0bits_t;externvolatile__INTF0bits_t__at(INTF0_ADDR)INTF0bits;#defineTC0IFINTF0bits.
TC0IF/*bit0*/#defineTC1IFINTF0bits.
TC1IF/*bit1*/#defineTC2IFINTF0bits.
TC2IF/*bit2*/#defineTC2GIFINTF0bits.
TC2GIF/*bit3*/#defineTXIFINTF0bits.
TXIF/*bit4*/#defineRXIFINTF0bits.
RXIF/*bit5*/#defineADIFINTF0bits.
ADIF/*bit6*/#defineI2CIFINTF0bits.
I2CIF/*bit7*/6.
2.
5内嵌汇编语言(lnlineassembly)在C语言之中可以内嵌汇编语言,使用__asm或__asm("")关键词即可插入任意的汇编语言程序,其中__asm可插入多条语句,__asm("")可插入单条语句.
下面的程序片段示范了内嵌汇编语言的写法.
插入多条语句__asm;push__endasm;TC0IF=0;IOA1=1;IOA1=0;__asm;pop__endasm;插入单条语句:__asm__("nop");;6.
2.
6指针属性__code和__date用于指定指标存放于ROM或RAM.
一般的指标占用3bytes,其中2bytes存放地址,1byte存放指针型态以区分指针指向的位置是ROM或是RAM.
当编译程序掌握足够信息能判断指针型态时,可以省略指针型态的1byte.
例如以下范例程序中的data为存放在ROM的数据,ptr1及ptr2都是指向data的指标.
然而ptr1有加上__code属性,编译程序可以确定此指标只会指向ROM的数据,编译程序实际产生的机械码ptr1占用2bytes,而ptr2占用3bytes.
使用指标时,若明确知道此指标只会指向ROM或RAM,尽量事先指定__code或__data属性,以节省RAM使用量,亦可产生较为精简的指令.
仿真器使用说明-29-conststaticchardata[]={0,1,2,3};__codeconstchar*ptr1;constchar*ptr2;voidmain(void){unsignedchari;ptr1=data;ptr2=data;for(i=0;i.
h在静态链接函数库也必须存在相同的定义.
静态链接函数库位于MC_8安装目录的lib文件下,文件名称为.
lib.
静态链接函数库为二进制文件,无法由用户自行修改.
修改标头档将造成链接时无法在函数库中找到相符的寄存器定义.
建议不要对系统内建的寄存器做重新命名.
Q:在中断服务程序之中设定变量值,并在一般程序流程中读取,读取结果异常A:中断服务程序与正常流程共享的变量,建议在宜告时加上volatile关键词,防止变量被优化导致异常.
用以下一个简单的例子说明共享变量被优化而导致程序异常:unit8_tcount;voidisr(void)__interrupt(0){if(INTFbits.
T0IF){INTFbits.
T0IF=0;count++;}}voiddelay(uint8_tdelay_count){count=0;while(count但实际执行delay中的while循环永远不会跳出,造成死循环.
原因为编译程序优化机制认为count变量在设定为0之后并没有其他运算,可以用常数0代表count变量,因此while循环的判断条件被优化成while(0解决方法是改变count变量的宣告,以volatile关键词告知编译程序,count变量不可被优化.
RAKsmart怎么样?RAKsmart发布了2021年中促销,促销时间,7月1日~7月31日!,具体促销优惠整理如下:1)美国西海岸的圣何塞、洛杉矶独立物理服务器低至$30/月(续费不涨价)!2)中国香港大带宽物理机,新品热卖!!!,$269.23 美元/月,3)站群服务器、香港站群、日本站群、美国站群,低至177美元/月,4)美国圣何塞,洛杉矶10G口服务器,不限流量,惊爆价:$999.00,...
香港服务器租用多少钱一个月?香港服务器受到很多朋友的青睐,其中免备案成为其特色之一。很多用户想了解香港云服务器价格多少钱,也有同行询问香港服务器的租赁价格,一些实际用户想要了解香港服务器的市场。虽然价格是关注的焦点,但价格并不是香港服务器的全部选择。今天小编介绍了一些影响香港服务器租赁价格的因素,以及在香港租一个月的服务器要花多少钱。影响香港服务器租赁价格的因素:1.香港机房选择香港机房相当于选择...
Megalayer 商家在开始看到有提供香港服务器、香港站群服务器的时候有介绍过,后来就一直没有怎么关注。但是前几天有看到网友使用到他们家的美国独立服务器问其如何的,但是我没有使用过就不好评论,这不前几天也有介绍到Megalayer美国独立服务器。以及我们也有看到商家有提供美国站群服务器和美国大带宽服务器产品,可选30M不限制流量CN2优化线路,以及100M不限制流量国际带宽线路。新年元旦后,Me...
5.1.1固件为你推荐
支持ipad支持ipad支持ipadiexplore.exe应用程序错误iexplore.exe应用程序错误iphonewifi苹果手机突然用不了Wi-Fi了谷歌sbSb是什么意思?迅雷快鸟迅雷快鸟支持移动宽带提速吗googleadsense我申请Google AdSense要怎样才能通过Google AdSense呀?chromeframeicharts 怎么支持ie8ipad上不了网平板电脑 能连接网络不能上网
安徽虚拟主机 万网域名空间 国外vps租用 hkbn 老左博客 河南服务器 个人免费空间 dux 193邮箱 腾讯云分析 hostker 双11秒杀 安徽双线服务器 七夕快乐英语 申请网站 免费asp空间申请 photobucket 万网空间 主机返佣 测试网速命令 更多