S0803FreescaleHCS08汇编指令及程序设计_第1页
S0803FreescaleHCS08汇编指令及程序设计_第2页
S0803FreescaleHCS08汇编指令及程序设计_第3页
S0803FreescaleHCS08汇编指令及程序设计_第4页
S0803FreescaleHCS08汇编指令及程序设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FreescaleHCS08汇编指令及程序设计S0803|从CPU架构到指令系统的完整技术解析Contents课程目录S0803FreescaleHCS08汇编指令及程序设计01HCS08架构基础02寻址方式体系03特殊操作与系统控制04指令系统详解05汇编语言程序设计06开发环境与实战应用Chapter01HCS08架构基础从CPU核心、寄存器组到存储器空间的硬件认知基础OVERVIEWHCS08系列MCU概述与发展背景HCS08是Freescale在经典HC08架构基础上推出的增强型8位MCU系列,以单线后台调试(BGND)接口、低功耗设计和丰富的外设集成为核心竞争力,广泛应用于消费电子、汽车电子和工业控制领域,是嵌入式入门教学的典型平台。单线调试架构继承HC08的CISC架构并增强调试能力,仅需一根BKGD引脚即可实现全速在线调试,大幅降低开发门槛和硬件成本。BKGD30年技术积累Freescale在8位MCU领域深耕超过30年,HCS08系列覆盖从低端S08到高端S12的完整产品线。S08→S12一站式开发流程芯片内置Flash支持在系统编程(ISP),配合CodeWarriorIDE实现编码、编译到下载调试的完整链路。ISP多场景嵌入应用典型场景涵盖家电电机控制、汽车胎压监测、便携式医疗设备和工业传感器节点等低功耗系统。LowPowerCoreArchitectureHCS08CPU核心特性与架构HCS08CPU采用8位数据处理+16位地址总线的哈佛架构设计,支持最高20MHz总线频率和64KB统一编址空间,内置WAIT和STOP两级低功耗模式,兼顾了8位MCU的成本优势与足够的寻址能力。018位ALU统一编址—CPU采用8位ALU进行算术逻辑运算,配合16位地址总线可寻址64KB空间,包括RAM、Flash和外设寄存器的统一编址0220MHz总线频率—支持最高20MHz内部总线频率,单条指令最短执行1个总线周期,多数指令在2-4个周期内完成执行03双级低功耗模式—WAIT模式下CPU时钟停止但外设继续工作,STOP模式下几乎全部时钟停止以降低功耗04多级中断嵌套—增强型中断系统支持多级中断嵌套,中断向量表位于$FFC0-$FFFF区域,共可容纳多个中断入口HCS08CPU核心参数一览参数项规格值说明数据位宽8位ALU和累加器均为8位地址总线16位统一编址64KB空间总线频率最高20MHz取决于时钟源配置堆栈方向向下增长SP指向栈顶最后入栈数据调试接口单线BKGD支持后台调试模式HCS08以8位数据宽度配合16位地址能力,在成本与性能间取得良好平衡,适用于多种嵌入式应用场景S0803·HCS08ArchitectureCPU寄存器组详解HCS08CPU包含6个核心寄存器(A、X、SP、PC、CCR),其中累加器A和变址寄存器X承担数据运算,SP管理堆栈空间,PC控制程序流向,CCR的5个状态标志位(H/I/N/Z/C)是条件分支判断的唯一依据。Registers数据与地址寄存器A累加器(8位):核心运算寄存器,所有算术/逻辑指令的主要操作对象,运算结果通常回写到A中X变址寄存器(8位):用于变址寻址的基址/偏移寄存器,同时可作为通用8位数据寄存器参与运算SP堆栈指针(16位):指向堆栈顶部地址,堆栈向下增长,CALL/JSR和中断时自动压栈保护PC程序计数器(16位):始终指向下一条待取指指令地址,分支/跳转指令通过修改PC实现流向控制CCRFlags条件码寄存器H半进位:BCD码运算时第3位到第4位产生进位置1,由DAA指令使用I中断屏蔽:置1时屏蔽可屏蔽中断,WAIT指令自动清零以允许中断唤醒N负标志:运算结果最高位为1时置1,表示有符号数结果为负Z零标志:运算结果全零时置1,是BEQ/BNE等条件转移最常用的判断依据C进位/借位:无符号运算产生进位或借位时置1,也用于移位指令的移入移出位记录MEMORYARCHITECTURE存储器空间分配与编址方式HCS08采用64KB统一编址架构,将RAM、Flash、外设寄存器和中断向量表映射在同一地址空间内。直接页($00-$FF)支持优化的短指令访问。直接页寄存器区外设控制寄存器集中区,DIR寻址仅需1字节操作数即可访问,执行效率最高$0000–$007FRAM区域存放用户变量、堆栈数据和运行时中间结果,SP初始化应指向RAM最高地址$0080+高页寄存器区扩展外设寄存器,需EXT扩展寻址(2字节操作数),指令比直接页多1字节$1800–$18FFFlash程序区存放程序代码和常量数据,支持ISP在线编程,写入前需先擦除对应扇区$E000–$FDFF中断向量表每向量占2字节(高字节在前),含复位向量和各中断服务入口,由链接器填充$FFC0–$FFFFCHAPTER02寻址方式体系9种寻址模式决定操作数获取方式,直接影响指令长度与执行效率ADDRESSINGMODES基础寻址方式(INH/IMM/DIR/EXT)HCS08的4种基础寻址方式在指令长度和访问范围上形成梯度:隐含寻址最紧凑(1字节)但操作对象固定,立即寻址适合加载常量,直接寻址高效访问直接页($00-$FF),扩展寻址可覆盖全部64KB空间但指令最长。隐含寻址INH操作对象由操作码隐含指定,无需操作数字段,如CLRA、TAX、RTS1字节立即寻址IMM操作数直接嵌在指令中,用#号标识,如LDA#$55、LDX#802-3字节直接寻址DIR操作码后跟1字节地址,仅访问直接页区域,如LDA$30$00-$FF扩展寻址EXT操作码后跟2字节完整地址,可访问全空间,如LDA$123464KBINDEXEDADDRESSINGMODES变址寻址方式(6种子模式)变址寻址以X寄存器为基址、配合不同偏移方式计算有效地址,6种子模式覆盖从紧凑的无偏移访问到灵活的16位偏移和自动递增场景,是数组操作、查表和缓冲区处理的核心寻址手段。HCS08变址寻址方式对照表模式语法示例有效地址计算指令字节无偏移(IX)LDA,XEA=X18位偏移(IX1)LDA$10,XEA=X+$10216位偏移(IX2)LDA$1000,XEA=X+$10003无偏移自动递增(IX+)LDA,X+EA=X,然后X←X+1116位自动递增(IX++)LDA,X++EA=X,然后X←X+21累加器偏移(IX+A)LDAA,XEA=X+A1变址寻址的6种模式在指令紧凑性和灵活性之间提供梯度选择HCS08ADDRESSINGMODES相对寻址、堆栈寻址与存储器到存储器寻址相对寻址通过有符号偏移实现位置无关的程序跳转,堆栈寻址以SP为媒介实现子程序调用和中断保护的自动数据管理,存储器到存储器寻址(MOV)是HCS08区别于传统8位MCU的增强特性,允许数据不经累加器直接搬运。Relative相对寻址(REL):分支指令操作码后跟1字节有符号偏移(-128~+127),有效地址=当前PC+偏移量,生成位置无关代码,程序可任意重定位Stack堆栈寻址:PSHA/PULA/PSHX/PULX等指令自动通过SP完成压栈和弹栈,JSR将返回地址压栈后跳转到目标地址,RTS从栈中弹出返回地址恢复执行Mem-to-Mem存储器到存储器寻址:MOV指令支持DIR→DIR、DIR→IX+、IX+→DIR等模式的数据直接搬运,无需经过累加器A中转,减少了指令条数MOV#immMOV#imm,DIR模式:可将立即数直接写入存储器单元(如MOV#$55,$80),这一特性在传统8位MCU中较为少见,提升了数据初始化效率寻址模式对比RELPC±127EASTACKSPPSHAJSRRTSMOVDIRdirectDIR#IMM#$55write$80SourceTarget/OffsetCHAPTER03特殊操作与系统控制复位、中断、低功耗模式与后台调试机制的系统级操作RESET&INTERRUPT复位操作与中断处理机制HCS08通过复位向量($FFFE-$FFFF)确定程序入口,中断系统采用向量表映射机制实现多源中断的快速分发。复位操作复位源包括上电复位(POR)、外部RESET引脚低电平、看门狗超时和非法地址访问等,所有复位均从$FFFE-$FFFF读取入口地址。$FFFE复位后CPU初始化:I位置1(屏蔽中断)、SP指向$FF(需软件重新初始化)、PC从复位向量加载、外设寄存器恢复默认值。SP→$FF中断处理机制中断响应流程:完成当前指令→CCR和PC自动压栈→从向量表加载ISR入口地址→执行中断服务程序→RTI指令恢复现场。RTI中断向量表位于$FFC0-$FFFF,每个向量占2字节,SWI软件中断不受CCR的I位屏蔽,始终可触发。$FFC0–$FFFFISR编写注意:中断服务程序不使用可能改变H寄存器值的指令或自动递增寻址模式,以避免破坏主程序上下文。H-REGSAFELOW-POWER&DEBUGWAIT/STOP低功耗模式与BGND调试WAIT和STOP两级低功耗模式通过停止CPU/系统时钟降低功耗,分别适用于短期等待和长期休眠场景。HCS08特有的BGND指令配合单线BKGD引脚实现无需额外硬件的后台调试。WAIT模式清除CCR的I位后停止CPU时钟,外设(定时器、串口等)继续运行,任何中断或复位事件均可唤醒CPU恢复正常执行CPUCLOCKHALTSTOP模式停止几乎所有系统时钟(含晶振)以实现最低功耗,HCS08可配置保留最小时钟集,允许内部周期信号自动唤醒MINIMUMPOWER调试模式保活调试器连接BKGD引脚且ENBDM位置位时,STOP模式下晶振被强制保持运行,确保调试器仍可访问目标MCU进行在线调试BKGDPINBGND指令使CPU进入ACTIVEBACKGROUND模式,通过BACKGROUNDDEBUG串行接口接收调试命令,实现断点设置、寄存器读写等操作HCS08UNIQUECHAPTER04指令系统详解数据传送、算术运算、逻辑操作、位操作、转移控制六大指令类别全面解析HCS08·INSTRUCTIONSET数据传送类指令数据传送类指令是HCS08指令系统中使用频率最高的类别,涵盖寄存器加载/存储(LDA/STA)、寄存器间传送(TAX/TXA)、堆栈操作(PSH/PUL)和存储器直接搬运(MOV),所有传送指令均不影响CCR标志位(TAP/TPA除外)。加载与存储指令01LDA/LDX—将存储器操作数加载到累加器A或变址寄存器X,根据结果设置N和Z标志位,支持所有寻址方式02STA/STX—将A或X的内容写入存储器指定地址,根据写入值设置N和Z标志位,是数据输出的基本指令LOAD·STORE寄存器间传送与堆栈01TAX/TXA—A与X之间互相传送;TAP/TPA在A与CCR之间传送(操作CCR时需特别注意中断屏蔽位)02PSHA/PSHX/PULA/PULX—将A或X压入堆栈或从堆栈弹出,SP自动递减或递增,用于保护与恢复现场TRANSFER·STACK存储器到存储器传送01MOV#imm,DIR—将立即数直接写入直接页存储器单元,无需经累加器中转,如MOV#$FF,PTAD可一步完成端口初始化02MOVDIR,DIR—支持直接页单元间、直接页与变址间的双向数据搬运,提升数据块操作效率MEMORY·DIRECTHCS08ArithmeticInstructions算术运算指令——加法与比较加法类指令(ADD/ADC/INC)是HCS08算术运算的核心,ADD执行基本8位加法并更新全部CCR标志,ADC支持多字节级联加法,INC不影响C标志。CMP比较指令执行减法但仅更新标志位不保存结果,是条件分支判断的基石。ADDA←A+操作数,影响H/I/N/Z/C/V全部相关标志位,8位结果溢出时C位置1,有符号溢出时V位置1全部标志位更新ADCA←A+操作数+C(进位位),用于多字节加法的高字节运算,如16位加法中低8位用ADD、高8位用ADC级联多字节级联加法INC操作数←操作数+1,可作用于A、X或存储器单元,影响N/Z/V但不影响C标志,适合循环计数器递增不影响C标志CMP临时计算A−操作数但不保存结果,仅根据差值设置N/Z/C/V标志,后续配合BEQ/BNE/BCC/BCS等指令实现条件判断条件分支基石HCS08ARITHMETIC算术运算指令——减法、乘法与十进制调整减法类指令(SUB/SBC/DEC/NEG)与加法指令对称设计,共用C标志位表示借位。MUL指令提供8×8=16位无符号乘法能力(结果分布A:X),DAA指令实现BCD码加法后的十进制调整,弥补了二进制运算与十进制显示之间的转换需求。SUBA←A−操作数,影响N/Z/C/V标志;C=1表示借位(HCS08借位时C置1,与某些架构相反)SBCA←A−操作数−C,多字节减法高字节用SBC级联低字节借位,确保多精度运算正确DEC操作数←操作数−1,影响N/Z/V但不影响C标志,适合循环计数器递减和地址指针调整MULA×X→16位结果高字节存A、低字节存X,仅影响C标志(结果第7位为1时C置1)DAABCD码加法后十进制调整,据H标志与A的高低半字节自动加修正值,确保压缩BCD格式LOGICALINSTRUCTIONS逻辑操作类指令逻辑指令执行逐位布尔运算,是位掩码提取、标志位置位/清除和数据校验的基础工具。AND位掩码A←AAND操作数。用于位掩码提取,如AND#$0F提取低4位、AND#$7F清除符号位。影响N/Z标志。ORA置位A←AOR操作数。用于特定位置位,如ORA#$80将最高位置1、ORA#$01将最低位置1。不影响其他位。EOR翻转A←AXOR操作数。用于翻转特定位,如EOR#$FF全位取反、EOR#$08翻转第3位。也用于校验和加密。COM取反操作数←NOT(操作数)。按位取反求1的补码,影响N/Z/C标志(C恒置1)。可用于求反码或生成掩码。TST测试测试操作数但不改变它。等效于与$00比较,仅设置N和Z标志。判断变量为零/正/负的前置指令。Chapter08·Shift&Rotate移位与循环操作指令移位指令和循环移位指令通过逐位移动实现快速乘除法和串行数据处理,ASR保持符号位不变,ROL/ROR将C标志纳入循环链。BitOperationModel左移LSL/ASLC←b7b6b5b4b3b2b1b0←0等效×2(无符号)右移LSR/ASRC→0→b7b6b5b4b3b2b1→CLSR补0·ASR保持b7(符号位)循环移位ROL/RORC⇄b7b6b5b4b3b2b1b0⇄CC标志纳入循环链,支持多字节串联移位指令LSL/ASL逻辑/算术左移效果相同——各位左移1位,最低位补0,最高位移入C标志,等效于无符号数乘以2LSR逻辑右移——各位右移1位,最高位补0,最低位移入C标志,等效于无符号数除以2(向下取整)ASR算术右移——各位右移1位,最高位(符号位)保持不变,最低位移入C标志,等效于有符号数除以2循环移位指令ROL通过C循环左移——C的旧值移入最低位,最高位移入C标志,连续ROL可实现多字节数据串联移位ROR通过C循环右移——C的旧值移入最高位,最低位移入C标志,配合ROL可用于字节序转换和数据旋转操作HCS08·BITOPERATIONS位操作类指令位操作指令(BSET/BCLR/BRSET/BRCLR)提供对直接页存储器单元单个位的直接操作能力,是IO端口控制、状态标志管理和条件轮询的核心工具。BSETBSETdir,#mask—将直接页地址dir处存储器单元的mask指定位(掩码为1的位)置1,其余位不变,常用于IO端口输出高电平=1BCLRBCLRdir,#mask—将直接页地址dir处存储器单元的mask指定位清零,其余位不变,常用于IO端口输出低电平或清除状态标志=0BRSETBRSETdir,#mask,rel—测试dir处单元mask指定位,若该位为1则相对跳转到rel地址,否则顺序执行下一条指令→JMPBRCLRBRCLRdir,#mask,rel—测试dir处单元mask指定位,若该位为0则相对跳转,常用于等待某输入引脚变为低电平WAITHCS08Assembly无条件转移与条件分支指令转移指令分为无条件转移(JMP/JSR/BRA)和条件分支两大类。JSR/RTS配对实现子程序调用与返回,通过堆栈保存返回地址支持嵌套调用。条件分支指令根据CCR标志位状态决定是否跳转,是无符号数和有符号数比较的核心控制手段。Section01无条件转移JMPaddr—无条件跳转到目标地址继续执行,不保存返回地址,支持EXT和变址寻址,常用于状态机跳转和跳转表JSR/RTS—子程序调用时将返回地址压栈后跳转,RTS从栈中弹出返回地址恢复执行,支持多层嵌套Section02条件分支指令BRA/BRN—BRA无条件相对分支(等效JMP但相对寻址),BRN永不跳转(调试时临时禁用分支)BHI/BLS—无符号数高于/低于等于时跳转,CMP后BHI表示被减数>减数,BLS表示≤BCC/BCS—进位清零/置位时跳转,BCC等效无符号数≥,BCS等效<,也用于移位进位检测BEQ/BNE—零标志置位/清零时跳转,CMP后BEQ表示相等,BNE不等,使用频率最高BRANCHINSTRUCTIONS有符号比较、循环控制与位条件分支有符号数分支指令(BGT/BLT/BGE/BLE)通过N⊕V和Z标志的组合判断实现正确的有符号大小比较。DBNZ指令集成减1和非零判断为单条指令,是实现固定次数循环的最佳选择。位条件分支BHCC/BHCS服务于BCD运算的半进位检测。01BGT/BLT有符号数大于/小于时跳转。BGT要求Z=0且N⊕V=0(结果非零且符号正确),BLT要求N⊕V=1(正减负有溢出等场景)。N⊕V=0·Z=002BGE/BLE有符号数大于等于/小于等于时跳转。BGE要求N⊕V=0,BLE要求Z=1或N⊕V=1,与BGT/BLT形成完整的有符号比较集。COMPLETESET03DBNZopr,rel操作数减1,结果非零则跳转到rel。操作数可以是A、X或直接页存储器单元,是实现计数循环的单指令方案。LOOPCONTROL04BHCC/BHCS半进位标志H清零/置位时跳转。主要在BCD码加法后检测是否需要十进制调整,配合DAA指令使用。BCD·DAAHCS08INSTRUCTIONSET其他指令(标志操作、系统控制与调试)标志操作指令提供对CCR单个标志位的直接控制,SEI/CLI配对用于临界区保护。NOP用于精确延时,SWI提供不受I位屏蔽的软件中断,RSP重置堆栈指针。NOP:空操作指令,不改变任何寄存器和标志位,消耗1个总线周期,常用于指令对齐、精确延时和调试替换1CycleSEC/CLC:将C进位标志置1/清零,SEC在移位前预设进位值,CLC在多字节运算前清除残留进位CFlagSEI/CLI:将I中断屏蔽位置1/清零,SEI进入临界区保护禁止中断,CLI退出允许中断,配对确保原子操作IFlagSWI:软件中断,不受CCR的I位屏蔽,执行CCR+PC压栈→向量表跳转,常用于调试断点和系统调用UnmaskableRSP:将堆栈指针SP重置为初始值$00FF,仅在系统初始化使用,运行期间随意重置会导致堆栈数据丢失$00FFCHAPTER05汇编语言程序设计从伪指令、程序框架到顺序/分支/循环/子程序四大结构的系统设计方法HCS08Assembly标号、常量与伪指令体系伪指令是汇编器控制命令,不生成目标代码但决定程序的空间组织和数据定义,共同构成HCS08汇编程序的框架骨架。标号与常量定义01标号—代码或数据地址的符号名称,以冒号结尾(如LOOP:),在转移指令中引用(如BRALOOP),汇编器自动替换为实际地址02EQU伪指令—定义符号常量,如COUNTEQU10、PORT_AEQU$0000,引用常量名而非具体数值,修改时仅需改定义处核心伪指令01ORGaddr—设置汇编起始地址,如ORG$E000将后续代码编译到Flash的$E000起始位置,是程序空间定位的基础02DC.B/DC.W—定义字节/字常量数据,如DC.B$12,$34,$56在存储器中连续放置字节数据,用于查表和常量数组03DS.B/DS.W—预留字节/字存储空间(不初始化),如BUFFER:DS.B32预留32字节缓冲区供运行时使用04SECTION/END—SECTION声明代码段名称和属性,END标记源文件结束,多文件项目通过SECTION统一管理AssemblySyntax&Structure汇编语句格式与源程序框架结构HCS08汇编语句遵循"标号-操作码-操作数-注释"四段式格式,完整程序框架包含头文件引入、向量表定义、初始化代码、主循环和子程序五个部分。复位向量($FFFE-$FFFF)必须指向主程序入口,这是CPU上电后执行的第一条指令地址。01语句格式:[标号:][操作码][操作数][;注释],四段用空格分隔,标号与注释可选,注释以分号开头提升可读性02程序头部:INCLUDE引入MCU型号头文件,定义寄存器地址常量和位掩码,简化寄存器操作03向量表:ORG$FFC0后用DC.W填入ISR入口地址,复位向量$FFFE-$FFFF必须指向主程序入口标签04初始化段:LDX#$FF/TXS设堆栈指针,配置IO端口方向、全局变量与外设控制寄存器,CLI允许中断05主循环:进入MAIN_LOOP无限循环处理业务逻辑,子程序定义在主循环之后、向量表之前源程序框架结构HEADINCLUDE'MC9S08AW60.inc'引入MCU头文件·定义地址常量INITLDX#$FFTXSCLI堆栈·IO方向·外设·开中断MAINLOOPMAIN_LOOPBRAMAIN_LOOP无限循环·业务逻辑·子程序调用VECTORSORG$FFC0DC.W...ISR入口·复位向量→$FFFE-$FFFFCPU上电→读取$FFFE-$FFFF→跳转主程序入口ASSEMBLYCONTROLFLOW顺序结构与分支程序设计实例顺序结构按指令书写顺序线性执行,分支结构通过CMP+条件跳转实现IF-ELSE逻辑。多路分支(SWITCH-CASE)可采用跳转表方案:将各分支入口地址存入连续存储器,通过索引查表后用JMP间接跳转,比逐条比较效率更高。IF-ELSE分支实现模式📍比较+条件跳转LDAvar→CMP#threshold→BCSELSE_BRANCH(无符号数<)→[THEN代码]→BRAEND_IF→ELSE_BRANCH:[ELSE代码]通过状态寄存器标志位判断,实现二选一逻辑分支🔗多条件组合多个CMP+分支链式排列实现IF-ELSEIF-ELSE结构,每个分支末尾用BRA跳过后续分支,确保仅执行匹配的第一个分支链式跳转避免多分支同时执行,保证逻辑互斥性CMP→BCS→BRA多路分支与跳转表📊跳转表方案将N个分支入口地址以DC.W连续定义在存储器中,根据索引值计算偏移(索引×2),用LDD或分步加载16位地址后JMP跳转地址表连续存储,索引计算后直接寻址跳转目标⚡跳转表优势N路分支仅需O(1)次查表跳转,远优于逐条CMP+N次条件跳转的O(N)方案,适合菜单选择和状态机等多路分支场景时间复杂度恒定,分支数量增加不影响执行效率TimeComplexity:O(1)S0803ASSEMBLY循环结构与子程序设计实例循环结构以DBNZ(计数循环)和CMP+条件跳转(条件循环)为两大实现模式。子程序设计需关注参数传递方式(寄存器/存储器/堆栈)和现场保护(PSH/PUL),合理的子程序划分能显著提升代码复用性和可维护性。循环结构设计01计数循环LDX#N初始化计数→LOOP:[循环体]→DBNZX,LOOP自动递减X并判零,N次循环仅需3条核心指令控制02条件循环LOOP:[读取数据]→CMP#target→BNELOOP(不等则继续),适合等待特定事件或轮询IO状态03嵌套循环外层用存储器变量(DEC/DBNZdir),内层用X寄存器,避免两个循环共用X导致计数混乱子程序设计规范01参数传递少量参数通过A/X寄存器传递(调用前装入),大量数据通过约定存储器地址或堆栈传递02现场保护入口PSHA/PSHX保存寄存器,出口PULX/PULA恢复(出栈顺序与入栈相反),确保不破坏主程序状态03返回值计算结果通过A/X返回(A存8位,A:X存16位),状态码通过A返回(0=成功,非0=错误码)FILEFORMATS19目标代码文件格式与生成S19(S-Record)是Freescale/NXPMCU程序烧录的标准文件格式,以ASCII行记录形式编码二进制程序数据。S0头记录格式为S0[字节数][地址0000][文件名等ASCII信息][校验和],标识文件来源,每个S19文件仅有一个S0记录。×1唯一S1数据记录格式为S1[字节数][16位地址][程序/数据字节][校验和],地址字段指示数据写入Flash的目标位置,是数据存储的核心载体

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论