zbzb12345的个人空间 https://www.eechina.com/space-uid-46279.html [收藏] [复制] [RSS]

博客

KX2自编程和操作流程介绍

已有 971 次阅读2012-8-22 22:37

KX2自编程和操作流程介绍

  自编程就是用户进行的flash存储器写操作。

  Block号,是进行擦写和非空检查操作的单元。

  入口ram,是flash存储器自编程样例库所使用的RAM区域。用户程序需要保留着块区域,

  当调用库时,需要指定这片区域的起始地址。

  内部验证,再写入到flash存储器后,信号电平会内部检查,确认读到正确的数据。内部验

  证错误时,对应的设备被认为有错。

  第一章

  自编程样例库是78K0/KX2提供的固件以及用来给flash存储器重写数据的软件。

  用户程序通过调用自编程样例库,可以改写flash存储器的内容,从而,加快软件开发。

  注意:

  1自编程样例库重写flash存储器,需要使用KX2的CPU,寄存器和RAM,在运行自编程

  样例库时用户程序无法执行。

  2自编程样例库使用CPU(寄存器bank3)和工作区域(入口RAM区100字节)。于是,

  用户调用自编程样例库之前必须自行保存此区域内的用户程序数据。

  C和汇编中都可以调用自编程样例库。

  如果C文件编译时使用-SM参数(把目标作为静态模式),用静态模式连接库。如果不用-SM,

  库调用采用正常模式。

  如果源文件是汇编格式,只能用静态模式连接库。

  自编程的流程

  1FLMD0引脚拉高。

  2Flashstart

  3设置操作环境

  4Flashenv(入口RAM初始化)

  5检查FLMD电平

  6正常结束--〉Flashblock非空检查—〉字写入(1~64个字长)—〉block校验—〉Flash结

  束—〉FLMD0拉低。

  Bank编号和block编号

  Kx2的flash存储器高达60KB,Block以1K为单位。

  Bootcluster0000h~0FFFh,1000h~1ffffh。防止写入时掉电或者reset。第四章详细讲述引导

  交换功能。

  60KB的flash和96KB以上的flash不同。

  60KB中0000h~F000h分为60个block区,F000h以上到F800h是内部扩展RAM区域。

  0000h~003Fh存放64字节的向量表,003Fh~007Fh存放64字节的callt表,0080h~0081h参

  数位,0081h~07FFh是1919字节的程序区域,0800h~0FFFh是2048字节的callf的entry。

  96以上KB的空间0000h~8000h和60KB情况一样,8000h地址以上16KB的bank区间有6

  个,8000h~C000h是block32~block47,bank0的C000h~DFFFh是保留区域,E000h~F800h

  是内部扩展RAM区域。

  1.4处理时间和中断响应

  表1-1的情况是内部高速振荡器用作主系统时钟,表1-2的情况是外部系统时钟用于主系统

  时钟。

  当执行自编程样例库时,有函数可以检查是否有中断产生,还有函数可以进行中断后的处理。

  FLMD0推荐10K电阻接地。正常操作模式下,FLMD0应该为低,flash重写模式下,自编

  程时拉高。

  自编程样例库将自己的程序放在用户区域,需要500字节左右的程序空间(正常模式525

  字节,静态模式432字节,在0000h~7FFFh中,因为产品的内置固件位于8000h开始的区

  间内),还需要占用CPU(寄存器Bank3),工作区域(入口RAM100字节,高速RAM中

  的短寻址或者短直接寻址范围之外,首地址FE20h),堆栈(最大39字节)和数据缓冲区

  1~256字节。(stack和databuffer在高速RAM中,不能占用FE20h~FE83h之间)。

  用户最好将上述地址事前清理,并且自编程过程中不要对之操作。

  2.2入口RAM

  100字节自动分配,从初始库调用时指定的首地址开始,入口RAM地址可以指定在

  FB00h~FE20h之间。

  初始库使用的给flash存储器写入的数据缓冲器不能放在这个工作区域。

  2.2.2堆栈和数据缓冲器

  使用的堆栈是用户程序自己指定的。堆栈必须有自编程操作的堆栈过程来分配,这样入

  口RAM和RAM不会被清除,所以在内部高速RAM区间但不能位于FE20h~FE83h之间。

  数据缓冲器根据指定的写入字节数量从首地址自动分配。数据缓冲器的首地址和堆栈情

  况一样。

  要写入到flash存储器的数据要在字写入库调用之前正确设置和处理。

  第三章自编程过程中的中断服务

  在某些自编程样例库中,即使在执行自编程,仍然可以产生中断。和普通中断不同,用

  户必须通过检查自编程样例库的返回值,决定被中断的处理过程是否要继续。

  在响应中断,处理后返回。

  Block非空检查库调用FlashBlockBlankCheck库赖返回。

  Block擦除库调用FlashBlockBlankCheck库检查应该被擦除的block是否已经成功

  擦除,然后调用FlashBlockErase库。

  字写入库调用FlashWordWrite库来恢复数据写入过程。

  Block验证库调用FlashBlockVerify库来恢复blcok验证过程。

  设置信息库调用FlashSetInfo库来恢复信息设置过程。

  Eeprom写入库调用FlashEEPROMWrite库来恢复模拟EEPROM写入过程。

  上述过程执行过程中都是屏蔽中断的,所以必须要到这些自编程样例库的过程都完成后才会

  响应。

  3.2中断反应时间

  和普通中断不同,中断的产生是通过字变成样例库中断后期服务程序完成的(比如丛自编程

  样例库设置返回值为0X1F),所以反应时间比普通中断时间长。

  采用内部高速振荡器,入口RAM位于短立即寻址区域(丛FE20h开始)min80ms,不

  在短立即寻址区域,min390ms。如果采用外部晶振,则区域造成的差距140ms左右。

  3.4在中断服务中需要注意的地方

  --在中断服务中不要进行字变成相关操作,也不要修改相关设置。

  --在中断服务中不要使用寄存器bank3。

  --要保存和恢复中断服务程序中用到的寄存器。

  --如果watchdog的时间设定的太短,设置信息库的过程可能完成不了。

  如果中断在某个时期连续发生,此时正在执行设置信息库,如果设置信息库在被中断打

  断后又恢复的话可能会产生无限循环,因为这个过程从头开始。所以不要让中断间隔时间小

  于设置信息库的执行时间。

  8Mhz时,设置信息库min108ms,max696ms。

  如果自编程时有多个中断发生,那么操作不稳定。要关闭多重/多个中断。

  如果自编程样例库的过程被中断打断后没有恢复,又开始操作另外的block,这时候再进行

  另外的block操作之前需要调用初始化库。

  --系列任务完成之前,不要擦除入口RAM,堆栈,数据缓冲器。

  --中断程序不要放在将要被重写的block区域,自编程程序同样。

  第四章引导交换

  通过自编程的引导交换功能可以避免写入数据丢失,用户程序无法通过reset重起。重

  写向量表数据,程序的基本功能,或者自编程区域损坏,掉电或者外部reset信号都会引发。

  引导交换是用目标区域bootcluster1来代替引导程序区域bootcluster0。

  在重新写入之前,新的引导程序写入1簇,0簇和1簇进行交换,1簇作为引导程序区

  域使用。

  即使在重写引导程序区时掉电,程序都可以正确执行,因为下次重起从1簇开始,然后0

  促可以擦除或者写入。

  Block擦除—〉字节写入—〉block校验—〉读取信息—〉设置信息—〉reset—〉结束。

  引导交换的预处理过程:

  --硬件环境设置

  --声明自编程起始地址

  --软件环境的设置

  --初始化入口RAM

  --检查电压水平

  擦除引导簇1

  通过调用FlashBlockErase库擦除block4~7。按block逐个擦除

  拷贝引导簇0

  调用字写入库FlashWordWrite来把0000h~0FFFh的内容写入1000F~1FFFh。

  字写入库将数据按照字单元写入(最大256字节)

  验证引导簇1

  读取引导交换的设置状态

  FlashGetInfo

  设置引导交换位

  调用FlashSetInfo库设置

  事件发生此时有外部reset触发,则引导簇1作为引导程序区域使用。

  擦除簇0

  调用FlashBlockErase

  给簇0写入新数据

  新的程序写入0000h~0FFFh。

  验证,然后读取引导交换设置状态。

  设置引导交换位,不要从引导簇1启动

  外部触发从引导簇0引导程序。

  声明自编程结束,设置硬件环境。

  第五章自编程样例库

  包括有如下的库:

  FlashGetInfo(&GetInfo,&DataBuffer);

  FlashSetInfo(SetInfoData);

  FlashEEPROMWrite(&WordAdder,WordNumber,&DataBuffer)

  C语言voidFlashStart(void)

  汇编CALL!_FlashStart

  如果调用此库时中断没有关闭,那么不能保证。执行时请关闭中断响应。

  占用12字节ROM。

  CALL!_FlashEnv

  AX中存储入口RAM的首地址。30字节堆栈,11字节ROM空间,不需要寄存器

  首地址的初始值被固件设置为06h~16h(首地址+06h~+16h十个字节设置初始值),其他字

  节清零。

  入口地址可以在内部高速RAM中短立即寻址之外任何地方。

  如果在内部高速RAM短立即寻址范围内,首地址设置为FE20h。

  FlashEnv初始化库保存PSW,设置寄存器bank3,将入口RAM参数传递到HL寄存器,

  C寄存器清零,CALL8100h,堆栈恢复PSW,恢复寄存器bank。

  UCHARCheckFLMD(void)

  返回值00,FLMD0为高,01为低。汇编返回值放在A寄存器中。

  如果FLMD0为低,擦除和写入都无法进行,所以必须拉高。

  Memory模式

  正常模式A,BC清,X,DE,HL保持14字节ROM空间

  静态模式A清,X,BC,DE,HL保持11字节ROM空间

  堆栈28字节

  CALL!_CheckFLMD;

  MOV!Status,A;

  存储PSW,设置寄存器bank3,C寄存器内容设0Eh,CALL8100h,PSW恢复,寄存器bank

  恢复,设置寄存器bank3的B寄存器到寄存器bank的C寄存器(正常模式)或者A寄存器

  (静止模式)。

  非空检测

  UCHARFlashBlockBlankCheck(UCHARBlankCheckBANK,UCHARBlankCheckBlock)

  汇编时,A是bank编号,B是block编号。

  返回值00正常,05h参数错误,1BhBlock非空,1Fh被中断停止。汇编返回值存在A寄

  存器中。

  每次检查一个block,需要多次运行,运行时需要屏蔽中断。

  正常模式AX,BC寄存器清,DE,HL保持,37字节堆栈67字节ROM

  静态模式A,BC寄存器清除,X,DE,HL保持,35字节堆栈54字节ROM

  占用的ROM其中有30字节是共用的。

  DI

  CALL!_FlashBlockBlankCheck

  MOV!Status,A

  EI

  计算block数量和编号,存储PSW堆栈,设置寄存器bank3,将block数量写入入口RAM+3

  位置,C寄存器写入08h,CALL8100h,恢复PSW和寄存器bank,设置寄存器bank3的B

  寄存器到寄存器bank的C寄存器(正常模式)或者A寄存器(静止模式)。

  Block擦除库

  汇编时A存bank编号,B存放block编号。如果设备没有bank,就把bank编号设置为0。

  返回值00正常,05h参数错误,10h是保护错误(制定要擦除的block在引导区域而且被保

  护),1Ah擦除错误,1Fh被中断停止。汇编返回值存在A寄存器中。

  同样运行时也需要屏蔽中断,

  正常模式AX,BC寄存器清,DE,HL保持,39字节堆栈67字节ROM

  静态模式A,BC寄存器清除,X,DE,HL保持,37字节堆栈54字节ROM

  占用的ROM其中有30字节是共用的。

  MOV!Status,A;Storesstatusinformation.

  EI

  计算block数量和编号,存储PSW堆栈,设置寄存器bank3,将block数量写入入口RAM+3

  位置,C寄存器写入03h,CALL8100h,恢复PSW和寄存器bank,设置寄存器bank3的B

  寄存器到寄存器bank的C寄存器(正常模式)或者A寄存器(静止模式)。

  字写入库

  UCHARFlashWordWrite(structstWordAddress*ptr,UCHARWordNumber,

  USHORTDataBufferAddress)

  stWordAddress*ptr写起始地址结构的首地址,大小必须3个字节,要保证从4字节整数空

  间开始,DataBufferAddress写数据缓冲器的首地址。

  AX和C语言一样的数据结构首地址,B字节数长度,HL数据缓冲器首地址。

  structstWordAddress{

  USHORTWriteAddress;/*Writestartaddress*/

  UCHARWriteBank;/*Banknumberofwritestartaddress*/

  };

  在调用之前,设置结构的每个成员值,把要写入的数据放入数据缓冲器。

  注意写入起始地址和写入数据的数量,确保不回越过block的边界。

  返回值00正常,05h参数错误,10h是保护错误(制定要擦除的block在引导区域而且被保

  护),1Ch写入错误(写入结束后校验不符合),1Fh被中断停止。汇编返回值存在A寄存

  器中。

  在RAM中有一片作为数据缓冲器,一次最多写入256字节数据(4字节/单位),大于256

  字节的数据需要多次调用写入库。写入后必须校验,否则正确性得到不到保障。同样运行时

  也需要屏蔽中断,

  正常模式AX,BC,DE寄存器清,HL保持,39字节堆栈117字节ROM

  静态模式AX,C寄存器清除,B,DE,HL保持,39字节堆栈100字节ROM

  占用的ROM其中有57字节是共用的。

  structstWordAddressWordAddr;/*Declaresvariable.*/

  UCHARDataBuffer[4];/*Declaresvariable.*/

  UCHARWordNumber;/*Declaresvariable.*/

  UCHARStatus;/*Declaresvariable.*/

  DataBuffer[0]=0x11;/*Setsdatatobewritten.*/

  DataBuffer[1]=0x22;/*Setsdatatobewritten.*/

  DataBuffer[2]=0x33;/*Setsdatatobewritten.*/

  DataBuffer[3]=0x44;/*Setsdatatobewritten.*/

  WordNumber=1;/*Setsnumberofdatatobewritten.*/

  WordAddr.WriteAddress=0xA000;/*Sets0xA000Haswritestartaddress.*/

  WordAddr.WriteBANK=0;/*Setsbanknumberofwritestartaddressto0.*/

  di();/*Disablesinterrupts.*/

  Status=FlashWordWrite(&WordAddr,WordNumber,&DataBuffer);

  ei();

  计算block数量和编号,存储PSW堆栈,设置寄存器bank3,将写入数据起始地址写入入口

  RAM+0,+1,+2位置,要写入的数据数量写入入口RAM+3,数据缓冲器起始地址放在入

  口RAM+4,+5,C寄存器写入04h,CALL8100h,恢复PSW和寄存器bank,设置寄存器

  bank3的B寄存器到寄存器bank的C寄存器(正常模式)或者A寄存器(静止模式)。

  汇编DI;CALL!_FlashWordWrite;MOV!Status,A;EI

  Block校验库

  返回值00正常,05h参数错误,1Bh是校验错误,1Fh被中断停止。汇编返回值存在A寄

  存器中。

  多个block数据需要校验时,多次调用校验库。如果没有校验,写入数据正确性得到不到保

  障。同样运行时也需要屏蔽中断,

  正常模式AX,BC寄存器清,DE,HL保持,37字节堆栈67字节ROM

  静态模式A,BC寄存器清除,X,DE,HL保持,35字节堆栈54字节ROM

  占用的ROM其中有30字节是共用的。

  计算block数量和编号,存储PSW堆栈,设置寄存器bank3,C寄存器写入06h,CALL

  8100h,恢复PSW和寄存器bank,设置寄存器bank3的B寄存器到寄存器bank的C寄存器

  (正常模式)或者A寄存器(静止模式)。

  自编程过程结束库

  voidFlashEnd(void)

  CALL!_FlashEnd

  占用12字节ROM空间

  本库执行结束后,FLMD0拉低。要防止中断打扰。

  获取信息库

  UCHARFlashGetInfo(structstGetInfo*ptr,USHORTDataBufferAddress)

  CALL!_FlashGetInfo

  Flash信息获取结构的首地址,三字节长度,必须由用户保证(汇编时AX)。数据缓冲是

  获取的数据信息存储缓冲区首地址。(汇编时BC)

  StructstGetInfo{

  UCHAROptionNumber;

  UCHARGetInfoBank;

  UCHARGetInfoBlock;

  };

  调用之前,各个成员需要有初始值,如果安全标志信息和引导标志信息被检查,则设置的

  bank和block编号无效。

  返回值00正常,05h参数错误,20h是读取错误(当option值设置为03h,安全标志两次读

  取值不一致)。汇编返回值UCHAR类型存在A寄存器中。

  一般用来检查Flash存储器的设置信息(安全标志,引导标志信息,制定block的最后有效地

  址),同样需要屏蔽中断。

  正常模式AX,BC,DE寄存器清,HL保持,38字节堆栈161字节ROM

  静态模式AX,BC,HL寄存器清除,DE保持,38字节堆栈148字节ROM

  占用的ROM其中有30字节是共用的。

  MOVWAX,#GetInfo

  MOVWBC,#DataBuffer

  DI

  CALL!_FlashGetInfo

  MOV!Status,A

  EI

  参数为5?

  是:从参数结构体成员计算bank和block编号,存储PSW堆栈,设置寄存器bank3,

  block编号写入入口RAM+0地址。

  否:存储PSW堆栈,设置寄存器bank3,(是:由此转入)参数结构成员optionnumber

  写入入口RAM+3,数据缓冲起始地址写入入口RAM+4,+5h,C寄存器设置为09h,CALL

  8100h,恢复PSW和寄存器bank,optionnumber为5?

  是:将数据缓冲器中地址计算得到的bank和地址值写入数据缓冲,(进行运算)设置寄

  存器bank3的B寄存器到寄存器bank的C寄存器(正常模式)或者A寄存器(静止模式)。

  否:设置寄存器bank3的B寄存器到寄存器bank的C寄存器(正常模式)或者A寄存

  器(静止模式)。

  Optionnumber的值指定操作

  03h安全标志信息(2字节)

  04h引导标志信息(1字节)

  05h指定block的最后地址(3字节)

  1)读取安全标志信息时

  数据缓冲首地址内容:安全标志信息

  数据缓冲首地址+1内容:引导区域的最后block编号(固定为03h)

  BIT0dis/enable整片擦除

  BIT1dis/enable整块擦除

  BIT2dis/enable允许写入

  BIT4dis/enable引导区域重写

  其他位保持为1

  2)引导标志信息

  在数据缓冲器中占据一个字节

  00h不交换,01h交换

  3)指定block的最后地址

  三字节长度,数据缓冲器+0block最后地址低位

  数据缓冲器+1block最后地址高位

  数据缓冲器+2bank编号

  设置信息库

  UCHARFlashSetInfo(UCHARSetInfoData)

  CALL!_FlashSetInfo汇编时A存储要写入的数据

  Flash信息数据详细

  BIT0:0/1-交换/不交换引导区

  BIT1:0/1-dis/enable整片擦除

  BIT2:0/1-dis/enable整块擦除

  BIT3:0/1-dis/enable写入

  BIT5:0/1-dis/enable写入引导区

  其他位为1

  返回值00正常,05h参数错误(信息标志的bit0被清零,但是产品不支持引导交换),10h

  是保护错误(尝试设置被禁的标志或者引导标志),1Ah擦除错误,1Bh验证错误,1Ch写

  入错误,1Fh被中断打断。汇编返回值UCHAR类型存在A寄存器中。

  已经被标志禁止的进程不能被使能。??

  一般用来改变Flash存储器的设置信息(安全标志,引导标志信息),同样需要屏蔽中断。

  正常模式A,BC寄存器清,X,DE,HL保持,37字节堆栈27字节ROM

  静态模式A寄存器清除,X,BC,HL,DE保持,37字节堆栈23字节ROM

  把参数的Flash信息存入堆栈,存储PSW堆栈,设置寄存器bank3,将存入堆栈的flash

  信息数据地址存入入口RAM+4,+5,并将此作为数据缓冲起始地址,C寄存器写入0Ah,

  CALL8100h,恢复PSW和寄存器bank,设置寄存器bank3的B寄存器到寄存器bank的C

  寄存器(正常模式)或者A寄存器(静止模式)。

  EEPROM写入库

  在EEPROM模拟中将1—64字的数据写入指定地址。

  UCHAREEPROMWrite(structstWordAddress*ptr,UCHARWordNumber,

  USHORTDataBufferAddress)

  CALL!_EEPROMWrite

  stWordAddress*ptr写起始地址结构的首地址,大小必须3个字节,要保证从4字节整数空

  间开始,DataBufferAddress写数据缓冲器的首地址。

  AX和C语言一样的数据结构首地址,B字节数长度,HL数据缓冲器首地址。

  StructstWordAddress{

  USHORTWriteAddress;

  UCHARWriteBANK;

  };

  写入起始地址必须是4字节的整数倍。(因为1word长度为4个字节)

  事先就要把将写入的数据放入数据缓冲区

  确保在block内进行,不能跨界进行。

  返回值00正常,05h参数错误(起始地址不是整字开始,要写入的数据数量为零,要写入

  的数据长度超过了64字,写入结束地址超过了flash存储器区域),10h是保护错误(尝试

  设置被禁的标志或者引导标志),1Ch写入错误,1Dh验证错误,1Ehblank错误(要写入数

  据的区域非空,预留空间不足),1Fh被中断打断。

  汇编返回值UCHAR类型存在A寄存器中。同样需要屏蔽中断。

  正常模式AX,BC,DE寄存器清,HL保持,36字节堆栈117字节ROM

  静态模式AX,C寄存器清除,B,HL,DE保持,36字节堆栈100字节ROM

  其中57字节ROM空间通用。

  从传递的参数得到写入地址和bank,存储PSW堆栈,设置寄存器bank3,将写入起始

  地址存入入口RAM+0,+1,+2,写入数据长度存入入口RAM+3,数据缓冲起始地址写入

  入口地址+4,+5,C寄存器写入17h,CALL8100h,恢复PSW和寄存器bank,设置寄存器

  bank3的B寄存器到寄存器bank的C寄存器(正常模式)或者A寄存器(静止模式)。

  第六章自编程控制的细节

  专门解释控制flash存储器访问,和入口RAM的寄存器。

  FLPMC此寄存器的写入需要特定顺序,为了防止噪声和误操作。

  Bit3—〉0/1en/dis写入/擦除

  Bit2—〉FLMD0为高,0;拉低置1。0/1dis/en写入/擦除

  Bit3-2=01才能真正允许,其他组合都不行。

  在普通模式下,bit3一定要置1。

  Bit1-0=00;普通模式,全部寻址空间存储器开放

  Bit1-0=01;自编程模式,可以调用CALL8100h,片上ROM以及0000h~

  7FFFh(控制自编程的程序必须放在这里)全部开放。

  除此外的值都不允许设置。

  PFCMD保护flash不被无意的程序循环大量滥写。对写操作只有按照下面顺序时有效:

  〈1〉给PFCMD写入A5H

  〈2〉给FLPMC写入值(此时写入无效)

  〈3〉将FLPMC的值取反写入(此时写入无效)

  〈4〉将值写入FLPMC(此时写入有效)

  每次修改FLPMC的值都需要按照上述顺序进行。

  MOVPFCMD,#0A5H

  MOVFLPMC,#05H

  MOVFLPMC,#0FAH

  MOVFLPMC,#05H

  这样才能识别,才能把值写入到FLPMC寄存器中。如果不按照上述顺序,FLPMC不能被

  正确设置,而且会保护错误。此时PFS寄存器的bit0为1。

  设置条件:

  当PFCMD寄存器写入的时候,对最近外围寄存器的存储指令操作不是给PFCMD寄存

  器写入特定值(A5H)

  当《1》之后的首个存储指令对象是FLPMC之外的外围寄存器

  当《2》之后的首个存储指令对象是FLPMC之外的外围寄存器

  当《2》之后的首个存储指令写入FLPMC寄存器的值不是取反值

  当《3》之后的首个存储指令对象是FLPMC之外的外围寄存器

  当《3》之后的首个存储指令写入FLPMC寄存器的值不是原来要写入的值

  Reset条件:

  0写入FPRERR位

  系统reset时

  自编程控制参数

  寄存器bank3的参数

  在自编程样例库中,寄存器bank3的C寄存器被用来选择自编程控制功能。B寄存器是用来

  存储执行结果,HL用来指定入口RAM的起始地址。

  由于寄存器bank3的设置都是在库内进行的,寄存器bank3应该包含在用户程序里。

  入口RAM参数列表

  入口RAM被用作自编程的工作区域,于是,除了参数,入口RAM区域的任何数据在自编

  程过程中都不应该被改动。

  数据缓冲器

  数据缓冲器是用来传递数据以及与设置祥光的信息,内容根据自编程功能需要而定。起始地

  址在入口RAM中指定,位置可以在高速RAM中任何位置。长度范围1~256字节。

  数据缓冲参数列表

  如果标注是“未使用”,此区域不能被用作数据缓冲。

  获取信息功能的详细说明表

  寄存器bank3参数列表

  GetInfo

  GetInfoData

文章来源:http://www.originic.hk/Item/Show.asp?m=1&d=1369


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部