Bootloader装载程序_说明书
stm32f103vet bootloader例程

stm32f103vet bootloader例程摘要:1.概述:介绍STM32F103VET单片机及其bootloader2.STM32F103VET单片机简介a.性能特点b.应用领域3.Bootloader概述a.作用b.工作原理4.Bootloader例程介绍a.程序结构b.重要函数及功能5.Bootloader例程实现a.硬件连接b.程序编写c.编译下载及验证6.总结与展望正文:1.概述:介绍STM32F103VET单片机及其bootloaderSTM32F103VET是一款基于ARM Cortex-M3内核的微控制器,具有高性能、低功耗、多功能的特点。
本文将介绍如何使用STM32F103VET单片机实现bootloader功能,以及相关的例程。
2.STM32F103VET单片机简介STM32F103VET是基于ARM Cortex-M3内核的32位单片机,最高工作频率可达72MHz。
它具有丰富的外设接口,如I2C、SPI、UART等,适用于各种嵌入式应用领域。
3.Bootloader概述Bootloader(引导程序)是嵌入式系统中的一个重要组成部分,主要负责初始化系统硬件、加载和执行应用程序。
通常,bootloader存储在系统闪存中,可在系统上电或复位时自动执行。
4.Bootloader例程介绍本文以一款基于STM32F103VET单片机的bootloader例程为例,介绍其程序结构及重要函数功能。
该例程主要包括以下部分:a.程序结构- 初始化部分:配置系统时钟、GPIO等外设- 下载模式部分:与上位机通信,接收并执行固件更新- 运行模式部分:执行用户应用程序b.重要函数及功能- 系统时钟配置:根据实际需求配置系统时钟,以满足不同工作场景的性能要求- 与上位机通信:通过UART、I2C等接口与上位机通信,接收固件更新命令及数据- 固件更新:将接收到的固件数据写入系统闪存,实现固件更新- 用户应用程序:执行用户编写的应用程序,实现具体功能5.Bootloader例程实现a.硬件连接根据实际硬件设计,连接STM32F103VET单片机相关引脚,如时钟、复位、通信接口等。
stc8 bootloader 例程

stc8 bootloader 例程摘要:一、引言二、STC8 Bootloader简介1.背景介绍2.功能概述3.优点三、STC8 Bootloader例程详解1.代码结构2.关键功能模块分析3.功能实现过程四、如何使用STC8 Bootloader1.硬件准备2.软件配置3.下载与调试五、注意事项与建议六、总结正文:一、引言随着嵌入式系统应用的不断普及,bootloader 在嵌入式开发中扮演着越来越重要的角色。
本文将为大家介绍一款名为STC8 的Bootloader 例程,并通过详细解析其代码,帮助大家更好地理解和使用这款实用的工具。
二、STC8 Bootloader 简介1.背景介绍STC8 是一款由STMicroelectronics 推出的8 位单片机,广泛应用于各种嵌入式系统中。
为了方便用户进行编程和调试,STC8 提供了一款功能强大的Bootloader 例程。
2.功能概述STC8 Bootloader 具有以下功能:(1)支持串口通信:可通过串口与上位机进行通信,实现程序的下载、调试等功能。
(2)支持多种编程模式:支持ISP(在系统编程)和IAP(在应用编程)两种模式。
(3)自适应波特率:根据上位机的波特率自动调整,实现顺畅的通信。
(4)加密功能:可对下载的程序进行加密,保护用户代码的安全性。
3.优点STC8 Bootloader 具有以下优点:(1)稳定性高:经过长时间的使用和验证,稳定性得到充分保障。
(2)兼容性强:支持多种单片机型号,满足不同用户的需求。
(3)易于使用:简洁的代码结构,便于用户上手和二次开发。
三、STC8 Bootloader 例程详解1.代码结构STC8 Bootloader 代码分为以下几个部分:(1)初始化模块:对单片机硬件进行初始化,包括时钟、串口等。
(2)通信模块:实现与上位机的通信,包括数据的接收与发送。
(3)加密模块:对下载的数据进行加密和解密。
bootloader说明

使用Bootloader 升级芯片内程序详解AVR仿真器AVR编程器二合一AVRJTAG与ISP 二合一V2.5 【经典推荐】¥298.00元国产AVR JTAGICE mkII 仿真下载器(ATJTAGICE2)【推荐】¥650.00元ATmega128 开发板学习板EasyAVR M128SK-A 四合一(核心板、开发板、仿真器、下载烧录器)¥498.00元单片机实验箱AVR单片机实验箱AVR单片机实验仪高校首选AVR单片机学习实验箱¥798.00元EasyAVRATmega16开发板仿真器编程器三合一特价(开发板、仿真器、下载烧写器)¥298.00元你现在的位置:AVR与虚拟仪器>>AVR使用范例>>使用Bootloader 升级芯片内程序详解论坛AVR使用范例--使用Bootloader 升级芯片内程序详解感谢网站热心会员likeeavr提供本页原型。
Bootloader是flash中高地址的一个程序区域,通过它可以实现程序的运行控制,程序更新等。
本页给出的是通过串口实现在线更新的方法。
程序编译环境:icc avr 6.31。
如果你使用Atmega16芯片,7.3728M晶振,1024的bootloader区,19200的波特率,那么你直接使用下面的hex文件就可以了,下载hex文件。
本站的开发板内,预制这个hex文件,可以按照本页的方法用串口线直接更新程序。
否则,你需要对程序进行调整,然后重新编译Bootloader的hex文件,下载软件包,软件中需要更改的部分:1. 芯片的类型#include <iom16v.h> //选择对应的芯片2. Bootloader区的大小,和ICC的option相对应。
#define BootSize 'd' //10243. 串口的通讯频率设置,根据晶振大小对应的进行修改。
#define BAU 23 // 7.3728M 19200(计算方法如下图)下面这个界面计算出UBBR的值正确的前提是CPU选项中的芯片类型和晶振都选择正确。
stm32f030 bootloader 例程

主题:STM32F030 Bootloader 例程一、简介STM32F030是STMicroelectronics公司推出的一款32位ARM Cortex-M0内核的微控制器。
它具有丰富的外设,如GPIO、UART、SPI、I2C等,适用于各种嵌入式系统应用。
在嵌入式系统开发中,Bootloader是一个重要的组成部分,它能够实现固件的更新和管理,提高系统的灵活性和可靠性。
本文将介绍如何使用STM32F030的Bootloader例程进行固件升级。
二、准备工作在使用STM32F030的Bootloader例程之前,我们需要准备好以下工具和材料:1. STM32F030开发板2. USB转TTL串口模块3. ST-Link下载器4. 针对STM32F030系列的Bootloader例程源码三、下载和安装Bootloader例程源码1. 在STMicroelectronics官全球信息站下载针对STM32F030的Bootloader例程源码2. 将下载的源码解压缩到本地3. 打开Keil MDK-ARM开发环境,导入源码并进行编译四、烧录Bootloader程序1. 使用ST-Link下载器将编译好的Bootloader程序烧录到STM32F030开发板上2. 确保烧录成功后,通过串口工具连接USB转TTL串口模块到STM32F030的串口引脚上五、固件升级测试1. 将需要升级的固件通过串口工具上传到开发板2. 在Bootloader程序中编写相关代码来实现固件的升级和校验3. 运行Bootloader程序,进行固件升级测试六、总结通过本文的介绍,我们了解了如何使用STM32F030的Bootloader 例程进行固件升级。
在实际的嵌入式系统开发中,Bootloader的作用不仅局限于固件升级,还可以实现固件的管理和安全验证。
掌握Bootloader的开发和使用对于提高系统的稳定性和可靠性是非常重要的。
知从玄武 BOOTLOADER 上位机产品手册说明书

知从玄武BOOTLOADER 上位机产品手册知从®产品手册知从玄武BOOTLOADER上位机产品手册知从®产品手册1功能概述玄武上位机软件用来将电子控制器的应用程序和数据,从笔记本电脑端,通过USB转CAN的标准J2535硬件,经过CAN总线,下载到电子控制器上。
支持UDS ON CAN、CCP2.1、XCP1.1协议。
提供客户协议定制集成,广泛应用在电子控制器产品开发阶段,售后服务阶段。
目前支持上海通用、上汽通用五菱、广汽、吉利、长安、上汽等多家整车厂程序刷新规范。
2应用领域玄武上位机软件应用于各类电子控制器的程序刷写。
例如:车身控制器空调控制器新能源整车控制器电机控制器DC/DC控制器电子助力转向控制器3配置环境4开发背景汽车在电动化、网联化、智能化的大趋势下,电子电器部件日益增多,电气结构越加复杂。
MCU的数量也从最初的几个,变成十几个,到现在的几十个;从8位,变成16位,到32位微控制使用比例不断提升;单个控制器的存储空间从十几K,到几十K,现在1M,2M 的控制器产品越来越多。
软件规模比最初有了十倍、百倍的增长,软件bug也同样,越来越“失去控制”。
在90年代,整车研发上市时间周期为5年左右,在10年代需要3到5年,现在需要2到3年。
由于研发时间变得越来越短,控制器软件验证时间缩短,甚至整车先卖,软件功能后开发的情况在最近几年上市的新车型中也成了“厂家策略”。
现在,汽车控制器产品工作环境从-40℃到120℃,震动,环境湿度,电磁干扰都很强烈,控制器打开外壳后,基本上再也无法满足控制器原本的要求;安装位置多数也不便于拆卸。
可以通过CAN总线,以太网进行程序刷新的功能成为控制器产品的“必备”。
5功能描述5.1产品特点可导入HEX/S19/BIN文件可自行配置诊断服务并单步运行流程报文可视化并可以保存/清空报文直接下载程序到电子控制器中使用便捷,刷新程序时间短5.2具体功能玄武上位机软件主要是用于整车厂或者供应商下载程序到电子控制器。
知从青龙BOOTLOADER产品手册说明书

知从青龙BOOTLOADER产品手册知从®青龙BootLoader1功能概述知从青龙BootLoader是由知从科技自主研发的程序刷新软件(BootLoader)。
使用知从青龙BootLoader的控制器,可以通过CAN、LIN、SPI等通信方式实现应用程序的更新功能。
目前,知从青龙BootLoader已支持NXP、Infineon、Renesas、ST等多家芯片,并且支持多家整车厂程序刷新规范,可提供定制开发服务。
通常每家整车厂都有各自的程序刷新规范,目前知从青龙BootLoader支持的整车厂程序刷新规范包括:广汽、长安、上汽、一汽、东风商用车、东风、上海通用、吉利、奇瑞、上汽通用五菱、萨博、长城、北汽新能源等(以上排名不分先后)。
2应用领域知从青龙BootLoader可应用于整车各个域中的控制器程序刷新功能。
支持的控制器包括:车身系统车身控制器、空调控制器、车门控制器、网关等动力系统发动机控制器、电池管理系统、电机控制器、整车控制器等底盘系统电动助力转向系统、制动防抱死系统、电气稳定系统等ADAS系统雷达、摄像头系统等3芯片支持4开发背景目前,汽车上的电子电气架构越来越复杂,并伴随着汽车的电动化、智能化、网联化、共享化,软件的研发在汽车上占比越来越大。
软件更新的频率越来越高。
而且,在汽车的整个生命周期中,包括研发阶段、生产阶段、售后阶段,各个阶段都需要实现软件的更新功能。
因此,客户对软件程序更新的需求越来越迫切。
对于整车厂或供应商,BootLoader是控制器开发必备的功能。
并且,不同的整车厂有不同的程序更新规范,同时BootLoader驱动又依赖于不同的芯片。
因此,为了满足不同的整车厂程序更新规范,又适配不同的芯片,知从科技提供了完整的BootLoader解决方案—知从青龙BootLoader。
知从青龙BootLoader既适用于不同的整车厂程序更新规范,又适用于不同芯片厂商的芯片,让客户更专注与自己的控制器产品研发。
bootloader流程

Bootloader 设计分析3.1 Bootloader 的操作模式 (Operation Mode)大多数 Bootloader 都包含两种不同的操作模式[2]:(1). 启动加载(Boot loading)模式:也称为“自主”模式。
即Bootloader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。
(2).下载(Downloading)模式:在这种模式下,目标机上的Bootloader将通过串口或网络连接等通信手段从主机(Host)下载内核映像和根文件系统映像等,然后保存到目标机上的FLASH 类固态存储设备中。
Bootloader的这种模式通常在系统初次安装和更新时被使用,工作于这种模式下的Bootloader通常都会向它的终端用户提供一个简单的命令行接口。
在我们的Bootloader设计中我们同时支持这两种工作模式,采用的方法是:一开始启动时处于正常的启动加载模式,但并不立即启动进入uClinux内核,而是提示延时5秒,等待终端用户如果按下某一特定按键,则切换到下载模式,否则继续启动uCLinux 内核。
3.2 Bootloader 的启动及初始化基于ARM的芯片多数为复杂的片上系统(SoC),这类复杂系统里的多数硬件模块都是可配置的[3]。
因此大多数 Bootloader 都分为 stage1 和 stage2 两大部分。
依赖于 CPU 体系结构的代码,通常都放在 stage1 中,而且在这一部分,我们直接对处理器内核和硬件控制器进行编程,因此常常都用汇编语言来实现。
而stage2则通常用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。
3.2.1 Bootloader的stage1这部分代码必须首先完成一些基本的硬件初始化,为stage2的执行以及随后的kernel 的执行准备好一些基本的硬件环境[2]。
Bootloader的stage1一般通用的内容包括:* 定义程序入口点* 设置异常向量表* 初始化存储系统(包括地址重映射)* 初始化有特殊要求的端口,设备* 初始化用户程序的执行环境* 初始化堆栈指针寄存器,必要时改变处理器的模式* 设置FIQ/IRQ中断处理程序入口* 进入C程序在整个Bootloader的初始化过程中我们都不必响应中断,因此首先禁止系统的中断,然后程序设置CPU的速度和时钟频率,设置CPU内部指令/数据cache,DRAM初始化,DRAM初始化完成后即可拷贝ROM中的代码到DRAM中,然后内存重映射,程序开始进入DRAM中执行,然后再初始化一些用户有特殊要求的端口、设备,比如LED或串口等,可以通过点亮LED,或者向串口打印一些调试信息,以此表明系统的状态是OK还是Error。
bootloader的工作流程

bootloader的工作流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!深入理解Bootloader的工作流程Bootloader是计算机系统启动过程中的重要组成部分,它是操作系统加载前的第一段运行代码,负责初始化硬件设备和加载操作系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全球性的引导加载说明书版本1.4Rick Kacel目录1修订版的历史记录2相关的文件2.1历史文件–仅供参考3定义和缩略词3.1ISO 术语3.2SAE 术语3.3被定义到GMW3110中的GMLAN 的特定术语3.4由此文件定义的术语4概述5总的引导加载要求5.1功能的模变5.2健壮性5.3SPS服务类型和标识符5.4与SPS_TYPE_C ECUs进行通信6引导加载的组件和程序流程6.1系统初始化6.1.1内部的ECU初始化6.1.2引导加载的完整性检查6.1.3运行软件/校正数据的呈现模式确认6.1.4ECU完全初始化6.1.5持续诊断CANID 检查6.1.6初始化ECU输入/输出6.1.7RAM 完整性检查6.2引导加载执行器和编程执行器6.2.1引导加载执行器6.2.2编程执行器6.2.3程序执行器的编程流程6.2.4编程期间的错误6.2.5引导加载执行器返回到正常模式6.3快速编程的程序6.4电源管理6.5诊断服务管理器6.6信息处理器6.7从运行软件到引导加载软件的过渡6.8其它的编程要求6.8.1ECU内存擦/写数据响应处理6.8.2完全的ECU编程对只有校正的编程6.8.3模块编程7GMLAN 层的引导加载实现8内存分区8.1.1引导加载软件分区8.1.2操作软件分区8.1.3校正数据分区8.1.4例外情况8.2快速编程的程序存储9文件结构9.1.1总的标题格式9.2文件标题9.2.1引导加载软件标题9.2.2操作软件标题9.2.3校正数据标题10在下载之后,对被编程的闪存进行完整性检查11文件的呈现模式12兼容性检查12.1实现13模块的识别码14未被使用的字节图1 校正数据结构图2 总的装载引导组件图3 装载引导软件组件图4系统初始化流程图5程序执行器的编程流程1(共4个)图6 程序执行器的编程流程2图7 程序执行器的编程流程3图8 程序执行器的编程流程4图9 返回到正常模式图10 信息处理器模块图图11 从运行软件到引导加载软件的过渡图12 引导加载结构图13 典型的ECU内存布局图14 引导加载软件标题HFI字图15 引导加载标题格式图16 运行软件标题HFI字图17 运行软件标题格式图18 校正数据标题HFI字图19 校正数据标题格式图20 典型的ECU内存显示呈现模式的位置图21 模块标识符设置图22 未使用的填补和填充字节的例子表1 ISO文件中定义的术语表2 GMW 3110V1.5中定义的术语表3 此文件定义的术语表4 SPS_TYPE 标识符表5 不需要校正时的SPS_Type标识符1修订版的历史记录2相关的文件GWM3110 版本1.4,1.5 – GMLAN增强的测试模式说明书2.1历史文件–仅供参考通用汽车北美通用的引导加载模板,版本1.2Vector – GMW _V14_limitations用于Saab 440 要求说明书的通用引导加载,版本1.7对GMW3110 V1.2的引导加载扩展3定义和缩略词3.1ISO 术语此文件使用了ISO 15765 -2公路汽车–诊断系统–对CAN文件的诊断中的术语。
3.2SAE 术语此文件使用了SAE J1930 E/E系统诊断术语,定义,缩写,和首字母缩略词文件这种定义的术语。
3.3GMW3110中定义的GMLAN特定的术语此文件使用了GMW 3110 GMLAN增强的诊断测试模型规范文件中定义的术语。
表2 GMW3110 V1.5中定义的术语3.4由此文件定义的术语表3 由此文件定义的术语图1校正数据结构4 概述引导加载软件组件负责操作软件和校正数据的确认,并被用于ECU中的快速编程。
当操作软件或者校正数据丢失的时候,或者需要对它们进行更新的时候,快速编程将会发生。
引导加载软件应该被存储到一个永久性的内存位置中,作为操作软件或者校正数据的一部分,该位置将不会被更新。
引导加载总是会出现,这样在没有操作软件的时候,ECU模块可以有效地通信以允许ECU编程。
在以前,当编程事件中产生一个中断的时候,模块将变为“不可用的”,从而离开一个部分被编程的ECU.这些模块不能恰当地通信以再次开始编程事件,必须从汽车中被移除并被取代。
引导加载软件的目的是避免这些问题。
引导加载应该在ECU’s的内存映射中有一个单独的,永久性的内存段。
引导加载应该实现GMLAN处理器策略(将在稍后被讨论)的一部分以提供在GMLAN总线上的最小通信量。
此通信足以编程操作软件和校正数据,并对一定的诊断命令作出响应。
引导加载软件负责管理ECU的快速编程。
它会响应与编程有关的特定的诊断命令(被指定到GMW3110中)。
通过使用这些命令,引导加载软件能够快速编程ECU的内存段。
每一个ECU被分配内存段的大小和结构都是独一无二的。
引导加载软件知道ECU的结构且必须与发生的编程进行正确地接口。
一个实用程序文件被用于一个ECU模块的快速编程。
实用程序文件为一个编程工具提供了一个一步一步的编程说明。
实用程序文件概念使工具编程软件的增殖保持在一个最低限度。
实用程序文件包含了成功地编程一个ECU所必需的快速程序和编程解释命令。
它包含了对于编程事件有关的操作软件和校正数据文件的连接。
实用程序文件中包含的信息详见GMW3110V1.5的第11.1.2节。
通用的引导加载组件请详见图2.图2 通用的引导加载组件5 通用的引导加载要求5.1 功能的模变支持操作软件或者校正数据之编程的ECU’s的所有可编程的SPS应该包含引导加载软件。
当ECU没有被完全编程的时候—也就是,操作软件,校正数据,或者二者都没有被编程的时候– ECU应该在引导加载软件之外运行,直到一套完整的操作软件和校正数据模块被编程到ECU中。
5.2 健壮性ECU的设计应该保证它能够无条件地离开一个非编程的状态。
这就意味着如果在操作软件或者校正数据的快速编程期间产生了一个失效,ECU 模块应该能够进行通信并再次开始程序。
如果在编程过程中发生了任何故障或者错误条件,ECU应该能够恢复并被再次编程。
不应该有‘无用的模块’。
下面是一些最常见的中断编程情况,但是不应该是一个完整的清单:•供电连接的损失•接地连接的损失•GMLAN通信的中断(接插件不再支持ALDL接插件)•过压和欠压条件•不正确的实用程序文件也见GMW3110 V1.5 第11.3.2.3.7节对引导软件的总体要求。
5.3 SPS的服务类型和标识符ECU应该被设置一个特殊的SPS类型,该类型取决于模块中的编程水平。
SPS_TYPE_A级别被用于其操作软件和校正数据被完全地编程的ECUs.ECU的永久性诊断CANID总是能够在SPS_TYPE_A模块中取得的。
类型SPS_TYPE_B和SPS_TYPE_C被用于丢失了其操作软件,校正数据,或者同时丢失了操作软件和校正数据的模块。
其区别是什么呢?它取决于当操作软件和校正数据丢失的时候是否引导加载软件知道ECU的永久性诊断的CANID.永久性诊断的CANIDs是被设置到一个模块的标识符,标准的CANID标识符的映射范围为﹩241到﹩25F.标识符可以被永久地设置到易于由操作和引导加载软件取得的的一个内存位置中的模块中,或者它可以在一个可编程的内存位置中,这样操作软件才知道该值。
在后一种情况下,当控制被传送到用于编程的引导加载时,操作软件必须将值传送到引导加载软件。
对于深入的解释,请详见GMW3110 V1.5的第6.4.2,6.4.3,和6.4.4节。
当没有永久性的CANID被设置的时候,一个模块将使用一个被设置的ECU 诊断/源标识符。
这些值是根据其功能被设置到模块的。
此数字的值为﹩00到﹩FF.详见GMW 3110 V1.5附录D中的诊断地址的更多信息。
诊断/源ID被用于请求ECU,并在响应之前加一个﹩3的前缀,最终的得到一个从﹩300到﹩3FF的值。
见第5.4节。
一些例子可以帮助解释其原因:1)一个ECU被用于的一个单一的平台,并且它的永久性诊断的CANID是固定。
CANID被放置到一个不能被编程的内存位置中。
引导加载软件知道该位置并且能够访问其值。
这被视为一个SPS_TYPE_B 类型的ECU.2)一个ECU被用于许多不同的平台。
汽车的结构是不同的,迫使ECU为每一个汽车平台提供一个不同的永久性诊断的CANID.作为操作软件或者校正数据的一部分,每一种汽车的CANID都会被编程,引导加载对此信息没有访问权。
这是一个SPS_TYPE_C类型的ECU。
这些ECUs应该使用它们的设置标识符来回应诊断命令。
它们只可以接收使用了所有节点命令的诊断命令。
对于这些模块来说,必须为它们的响应提供诊断。
3)一个被完全地编程的ECU (SPS_TYPE_A类型)被用于接收新的操作软件和/或校正数据。
在它被编程之前,它是一个如上所述的SPS_TYPE_C模块(在第2项中被描述)。
在准备编程的时候,操作软件将永久性的CANID传送到引导加载软件,这样同样的CANID将在整个编程事件中被使用。
但是在这种情况下,在编程被完成之前,它会被不正常地终止。
这可以由一次电源损失,一次电缆跌落,或者任何异常事件所导致。
如果ECU已经执行了一次重置(例如电源丢失),既然操作软件或者校正数据是无效的,它会进入引导加载软件。
由于引导加载软件没有被从操作软件传送永久性的CANID,ECU将会恢复到一个SPS_TYPE_C的类型。
在这些情况下,引导加载软件不需要保持永久性诊断的CANID.一旦操作软件和校正数据被完全地再次编程以后,永久性的CANID将会被编程。
GMW 3110的第11.1和11.1.1节展示了其细节。
表4展示了不同的SPS类型和表4 SPS_TYPE标识符请注意一个ECU模块的设计可能不需要校正数据。
在这种情况下,ECU SPS 类型会反映校正数据的缺乏。
表5展示出了这些情况。
表5 不需要校正时的SPS_Type标识符5.4 用SPS_TYPE_C ECUs进行通信其永久性诊断的CANIDs没有被编程的ECU模块必须仍然能够响应ECU编程的命令。
SPS_TYPE_C ECUs不应该响应诊断服务信息直到一个编程工具允许它们这样做。
通过第一次接收DisableNormalCommunications﹩28服务之后ECU被允许,紧接着是一个ReportProgrammedState ﹩A2服务。
一旦SPS_TYPE_C被允许,它应该使用其被设置的有一个恒定偏移量的ECU诊断/源标识符。
例如,有诊断/源标识符﹩21的一个SPS_TYPE_C 类型的ECU有如下临时的CANID:﹩021请求CANID﹩321 响应CANID详见GMW 3110 V1.5 第11.1.1节的允许SPS_TYPE_C ECU的诊断响应。