ProF Documentation.chm 附件是INCA软件中用于编制ProF脚本的使用说明手册,根据手册的说明可以轻易地编制出符合UDS协议的刷新工具 一、首先INCA软件是当前主流标定开发软件之一,尤其在动力系统控制器的标定中应用非常广泛;ProF编程脚本是INCA软件提供各种实用功能之一,使用者可根据需求编写ProF脚本对ECU闪存编程等各种自定义操作。 二、然而ProF脚本语言在ETAS的官网或其他网络上并没有专门的使用教程,通常只有ETAS技术支持人员提供的ProF Documentation文档,然而该文档仅涉及ProF语言的函数的使用说明,没有从全局的框架上介绍ProF脚本的层次结构。 三、本人编写整理了ProF脚本语言编写教程,尽自己的绵薄之力与各位共享(若有错误敬请指正) 1、ProF脚本(安装包)架构 ProF安装包结构 profe文件夹 prof文件夹 2、install.ini文件说明, install文件是标准的INI文件格式,定义了ProF安装包的信息(包括ProF名称、版本、文件集内容等) 2.1 [Configuration] ProF配置信息定义 2.2 [ChangePath_XX] 需要变更路径的文件及变更内容(后面章节将说明该属性的作用) File = layout 需要变更路径的文件定义 ConfigPath = c:$profInstall 变更的路径定义 2.3 [Files] prof文件夹内的文件定义 2.4 [LanguageFiles] profe文件夹内的文件定义 3、*.cnf文件 定义了ProF脚本操作对象控制器协议的基础信息,它的格式在ProF Documentation文档中有严格的定义。主要包括通信速率、控制器ID、Memory_layout,Checksum计算方式等信息 举例: 4、layout文件 ProF界面设置文件。这里是最蛋疼的地方(ETAS完全没有说明,只能穷举的方式进行尝试,很多数字都不知道具体含义) 选项1: 当取值是3时,表示此参数采用按键(button)方式选择一个参数,如File name选项所示 当取值是2时,表示此参数采用下来选项方式选择一个参数,如Channel选项所示 选项2:当选项1等于2时,选项2的值表示下拉栏中有多少个选择项 * 当然上述界面仅在进行Action = Flash programming时有效 5、*.prm文件和*.pri文件说明: 一个ProF脚本文件只有一个.prm文件,它类似C语言中的main函数; 而一个ProF脚本文件却可以有一个或者多个.pri文件,它类似C语言中的子函数。 举例: 5.1 上述主流程描述文件大体上逐步按照每个[Section] …[Section_END] 之上而下执行。在每个[Section]内部会根据上一个函数的执行结果来判断下一步跳转的位置 执行INIT_FLASH_PROGRAMMING(ECU_ADDRESS,1,CONFIG”phys.cnf”) 成功时TRUE, 则执行INIT_USB,否则执行DSP_ERROR 5.2 执行子流程文件(子函数) 当prm文件中调用子流程时,CALL ( programECUFlash ) ,ProF脚本会自动跳转到对应的xxx.pri文件中执行对应的procedure , 以下是prog_app_data.pri文件中procedure programECUFlash 子函数/流程的定义 6、重点/难点说明 大家都知道在进行控制器的刷新操作时,可以选择刷新的区域;或者可以选择进行读取控制器信息的操作。那样的话 我们该怎么样对不同的操作需求进行跳转流程控制呢? 6.1 返回查看layout文件,其实当选择不同的Action时,ProF会传递不同的参数进入主流程描述文件中,例如当我们选择 “Download – Application Code, Data” “prog_app_data convert c:$profInstallmain.prm”时 实际上传递了多个参数到prm文件,根据空格符号进行区分。 6.2 再次返回prm文件,在#include “%7.pri” #include “%8.pri” 表示载入参数7名 和 参数8名对应的文件 #include “%7.pri” == #include “prog_app_data.pri” #include “%8.pri” == #include “convert.pri” 在ProF文件夹中编写多个不同名字的.pri文件, 实际主流程描述文件根据用户在Action的选择,而选择了对应文件的xxx.pri子流程文件来执行。当用户选择了”Download – Application Code, Data” “prog_app_data convert c:$profInstallmain.prm”时 实际等价于选择了 main.prm , convert.pri, prog_app_data.pri 6.3 细心的同学会发现,我展示的layout文件略有差异:差异之处在于 参数9中的地址: ProF安装包中layout文件,地址是相对地址 ProF安装安装到本机后文件,变成了电脑中ETAS数据文件夹(ETASDATA)所在的地址 这里就是之前 2.2 章节中提及的 install.ini 安装文件[ChangePath]属性作用,实际上INCA在安装ProF脚本的过程中会自动将install.ini [Files][LanguageFiles] 里面的文件全部复制到INCA指定的目录中。 而后INCA会根据[ChangePath_XX]里面的信息,变更里面指定文件File = XX 指定配置路径的ConfigPath = XX 全部转换成安装后的实际路径 当然也而已采用类似swith语句的方式实现以上操作。 四、总结 ProF脚本还可以调用基于windows的控制台*.exe文件或.dll文件,实现更多扩展功能。各位可参照ProF Documentation文档进行开发。本文基于个人有限的经验整理而得,若有错误敬请指正。
[Configuration] Name=TC_Prof_XXX Version=0301 Description="Software download for XXX Project."
[ChangePath_Install] File=layout ConfigPath=c:$profInstall [ChangePath_Common.PRI] File=common1.pri ConfigPath=c:$profInstall EmptyPath=c:$prof SecurityPath=c:$security
[Files] SecurityFile=seedms6.dll
[LanguageFiles] File=info.txt LayoutFile=layout File=config_func.cnf File=config_phys.cnf File=main.prm File=common1.pri ...
***************************************************************************** ***** Configuration Software download for xxx access ***** ***************************************************************************** ; ECU_ADDR:, 0x7C; ; address of ECU PROJECT_NAME:, Software download for xxx PROG_ST_ADDR:, 0xF1; ; address of tester on K-Line ; PENDING_TIMEOUT:, 5000; ; timeout value for 'pending response' ; ; ; V_Prog = (Vpp * MAX) / 4096 ; 0 Volt 5 Volt 12 Volt 16 Volt frei SSC_UPROG_VALUES:, 0x0000, 0x02bc, 0x0690, 0x08c0, 0x0000; ; ; ; timing parameter for stimulation ; Index p1Max p2Min p2Max p3Min p3Max p4Min ; ;KWP2000_TP:, 1, 0x0014, 0x0000, 0x0032, 0x0037, 0x1388, 0x0000; ; ; timing parameter for maximum speed ; ; ; ; parameter for key71 stimulation ; baud w1 w2 w3 w4Min w4Max w5 ;KWP2000_STP:, 0x14, 0x1e, 0xc8, 0xc8, 0x19, 0x32, 0x1e; ; ; ; parameter for KWP2000 stimulation ; Index tiniL wuP reizLtg reiztyp KWP2000_SP:, 1, 0x0019, 0x0032, 0x00, 0x81; ; ; Index Baudrate i k ; some baud rates for this ECU ;HIGH_BDR:, 1, 500000, 0, 20; ; DIAG_MODE:, 0x02; ; xx Flash programming ; ; index count data SECURITY_ACCESS_MODE:, 1, 1, 0x05; ; SLD security access mode ; ; Routine no. Code for RNC Result flag ; ; no. of loc. routine for erasing Flash LOC_ROUTINE_ERASE:, 0xFF00, 0x21, 0x01; ;direct result ; ; no. of loc. routine for checksum calculation LOC_ROUTINE_CHK:, 0xFF01, 0x23, 0x01; ;direct result ; VERIFY_METHOD:, 0x02; ; code for CRC32 ; CHECKSUM_RESULT_INVERSION:, 0x01 ; activate checksum inversion ; ADDRESS_AND_LENGTH_FORMAT_IDENTIFIER:, 0x44; general setting AALFI_FOR_CHECKSUM_CALCULATION:, 0x44; AALFI_FOR_WRITE_MEMORY_BY_ADDR:, 0x33; AALFI_FOR_READ_MEMORY_BY_ADDR:, 0x33; AALFI_FOR_DYNAMICALLY_DEFINE_DATA_ID:, 0x33; AALFI_FOR_REQUEST_DOWNLOAD:, 0x44; DATA_FORMAT_IDENTIFIER:, 0x00; ; ; MAX_LENGTH:, 0xfc; ; Patch for maximum length of transfer ; ; ERASE_MEM_AREA:, 1, 0x00, 0x00, 0x100000L, 0x13FFFFL; Data section ERASE_MEM_AREA:, 2, 0x00, 0x00, 0x020100L, 0x0FFFFFL; APPL ; ;CAN ;=== ; ECU_TO_INCA_CAN_ID:, 0x000007xx; ;TGT_INCA:, 0xE1; EXTENDED ADDRESS INCA_TO_ECU_CAN_ID:, 0x000007xx; ;TGT_ECU:, 0xE9; EXTENDED ADDRESS ;
3 1 1 "#File name: " 1 1 1 1 1 "*.HEX" 2 1 1 "#Channel: " 1 1 1 1 2 "CAN_HS" "1" "CAN_MS" "1" 2 1 1 "#Action: " 1 1 1 1 4 "Read Identification" "ident noconv c:$profInstallmain.prm" "Download - Application Code, Data" "prog_app_data convert c:$profInstallmain.prm" "Download - Application Code" "prog_app convert c:$profInstallmain.prm" "Download - Application Data" "prog_data convert c:$profInstallmain.prm"
;% ;% <conv>: hex file conversion ;% convert = convert ;% noconv = do not convert ;%======================================================================== #include "define.pri" #include "error_mess.pri" #include "%7.pri" #include "%8.pri" ;---------------------------------------------------------------------------- ; Main programm ;---------------------------------------------------------------------------- [START] DEFAULT_SCREEN_LAYOUT (FALSE) EXTENDED_MESSAGE(FALSE) DISPLAY_MESSAGE ("START section!!! ",FALSE) case TRUE : INIT_CNF default : INIT_CNF [START_END] [INIT_CNF] INIT_FLASH_PROGRAMMING(ECU_ADDRESS,1,CONFIG"phys.cnf") case TRUE : INIT_USB default: DSP_ERROR [INIT_CNF_END] [INIT_USB] UDSB_INIT_COMMUNICATION case FPA_ACK : CONV1 default: DSP_ERROR [INIT_USB_END] [CONV1] CALL (convert) case TRUE : MAIN default: DSP_ERROR [CONV1_END] [MAIN] CALL (programECUFlash) case TRUE : success case ESCAPE: DSP_break default : DSP_ERROR [MAIN_END] [success] EXTENDED_MESSAGE(FALSE) default : EXIT [success_END]
procedure programECUFlash { [INFO] SHOW_PROGRAMMING_INFO (1,"%1."EXT,1) case TRUE : start default : $return [INFO_END] #include "flash.pri" ; common routines [erase] DISPLAY_MESSAGE("", FALSE) DISPLAY_MESSAGE("Erasure of Code area in the TCU Flash ", FALSE) UDSX_ERASE_MEMORY_FORMAT(2, FMT_AALFI, FMT_START_ADDR, FMT_MEM_LEN, 50000) case FPA_ACK : erase_success default : $return FALSE [erase_END] [erase_success] DISPLAY_MESSAGE ("Erase of Code area successfully completed. ",GREEN_FALSE) default : prog [erase_success_END]
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算