【嵌入式烧录/刷写文件】-1-详解Motorola S-record(S19/SREC/mot/SX)格式文件
目录
1 什么是Motorola S-record
2 Motorola S-record的格式
2.1 Motorola S-record的结构
2.1.1 “Record type记录类型”的说明
2.1.2 “Record length记录长度”的说明
2.1.3 如何计算“Checksum校验和”
2.2 Record order记录顺序
2.3 Text line terminator文本行终止符
2.4 Comments注释
结尾
优质博文推荐阅读(单击下方链接,即可跳转):
点击返回「Autosar从入门到精通-实战篇」总目录
点击返回「《Autosar_BSW高阶配置》总目录」
1 什么是Motorola S-record
Motorola S-record是一种文件格式,由摩托罗拉在20世纪70年代中期为Motorola 6800处理器创建,以ASCII文本形式传达二进制信息的十六进制值,其文件格式也可能为*.SRECORD,*.SREC,*.S19,*.mot,*.S28,*.S37,*.SX,*.s,*.s1,*.s2,*.s3,*. exo,*.mxt。
Motorola S-record通常用于对microcontroller微控制器、EPROM、EEPROM和其他类型的可编程逻辑器件中的flash memory进行编程。在一个典型的应用中,compiler编译器或assembler汇编器将程序的源代码(如C或汇编语言)转换为machine code机器码,并将其输出为HEX文件。然后,程序员导入HEX文件,将机器码"刻录"到非易失性存储器non-volatile memory中,或传输到目标系统中进行加载和执行。
2 Motorola S-record的格式
2.1 Motorola S-record的结构
S | Type | Byte Count | Address | Data | Checksum |
一个SREC格式文件由一系列ASCII text record组成,一个S-record的长度将小于或等于78字节。这些record从左到右有以下结构:
举例:
1.Record start:每条record以大写字母"S"字符(ASCII 0x53)开始,代表该Record的开始;
2.Record type:一个"0"到"9"的十六进制数字字符(ASCII 0x30到0x39),定义该Record的类型;
3.Byte count:两个十六进制数字字符(既,1个字节,"00"到"FF"),表示该Record其余部分(Address + Data + Checksum)中的字节数。该段的最小值为3(16-bit address field为2字节,checksum field为1字节),最大值为255(0xFF),其"00"/"01"/"02 "是非法值;
4.Address:四/六/八个十六进制数字字符(既,2/3/4个字节),由Record type决定。Address byte以big-endian格式排列:从左往右,地址依次增加;
5.Data:2n个十六进制数字字符的序列(既,n个字节)。对于S1/S2/S3 Record,每条Record最多32个字节是典型的,因为它将适合于80个字符宽的terminal screen,尽管16个字节会更容易视觉解码特定地址的每个字节;
6.Checksum:两个十六进制数字字符(既,1个字节),是Byte count、Address和Data的两个十六进制数字字符对所代表的数值之和的最小有效字节LSB的补码。在C语言中,Sum通过以下方式转换为checksum: 0xFF - (sum & 0xFF)。
2.1.1 “Record type记录类型”的说明
下表描述了10个可能的S-record。S4是保留的,目前没有定义。S6最初是保留的,但后来被重新定义。
Record field | Record purpose | Address field | Data field | Record description |
S0 | Header | 16-bit | 适用 | 该record包含供应商特定的ASCII文本注释,表示为一系列成对的十六进制数字字符。该record的数据通常是以空尾字符串的格式出现。文本数据可以是任何东西,包括以下信息的混合:文件/模块名称、版本/修订号、日期/时间、产品名称、供应商名称、PCB上的memory代号、版权声明、签名。这是很常见的情况:48、44、52,这是字母 "H"、"D"、"R "的ASCII表示。 |
S1 | Data | 16-bit | 适用 | 该record包含从16-bit address开始的数据。该record包含的数据字节数是"Byte Count Field "最小为3("16-bit Address Field "的2个字节,"Checksum Field"的1个字节)。该record通常用于8位和16位处理器。 |
S2 | Data | 24-bit | 适用 | 该record包含从24-bit address开始的数据。该record中包含的数据字节数是 "Byte Count Field"最小为4("24-bit Address Field "的3个字节," Checksum Field "的1个字节)。该record通常用于32位处理器。 |
S3 | Data | 32-bit | 适用 | 该record包含从32-bit address开始的数据。该record包含的数据字节数是"Byte Count Field"最小为5("32-bit Address Field "的4个字节," Checksum Field"的1个字节)。该record通常用于32位处理器。 |
S4 | Reserved | — | — | 该record是保留的。 |
S5 | Count | 16-bit | 不适用 | 该可选的record包含一个S1/S2/S3 record的16-bit count。如果record count小于或等于65535(0xFFFF),则使用该record,否则将使用S6 record。 |
S6 | Count | 24-bit | 不适用 | 该可选的record包含一个S1/S2/S3 record的24-bit count。如果record count小于或等于16777215(0xFFFFFF),则使用该record。如果小于65536 (0x10000),那么将使用S5 record。 注意:这个较新的record是最近的变化(它可能不是正式的)。 |
S7 | Start Address | 32-bit | 不适用 | 该record包含32-bit address的起始执行位置。这是用来终止一系列的S3 record的。如果SREC文件只用于对一个memory设备进行编程,并且执行位置被忽略,那么可以使用一个0的地址。 |
S8 | Start Address | 24-bit | 不适用 | 该record包含24-bit address的起始执行位置。这是用来终止一系列S2 record的。如果SREC文件只用于对一个memory设备进行编程,并且执行位置被忽略,那么可以使用一个0的地址。 |
S9 | Start Address | 16-bit | 不适用 | 该record包含16-bit address的起始执行位置。这是用来终止一系列S1 record的。如果SREC文件只用于对一个memory设备进行编程,并且执行位置被忽略,那么可以使用一个0的地址。 |
2.1.2 “Record length记录长度”的说明
record count的长度随着Record field的变化而变化。历史上Unix O/S文件中的一个手册页指出:"一个S-record文件由一连串特殊格式的ASCII字符串组成。一个S-record的长度将小于或等于78字节"。"本手册页是唯一记录了总record length 78字节限制或data length 64字节限制的地方。"。
Record field = S1,4-hex-character address,64-hex-character data和2-hex-character checksum,共record count = 70-hex-character = 23 Byte(这个计数忽略了行末的字符串终止符)。
Record field = S2,6-hex-character address,64-hex-character data和2-hex-character checksum,共record count = 72-hex-character = 24 Byte(这个计数忽略了行末的字符串终止符)。
Record field = S3,8-hex-character address,64-hex-character data和2-hex-character checksum,共record count = 74-hex-character = 25 Byte(这个计数忽略了行末的字符串终止符)。
注意:
如果忽略78字符的历史限制,一个S-record的最大长度将是514个字符。假设字节数为0xFF(255),则Record Type field为2,Byte Count field为2,Address / Data / Checksum field为2*255,共514个字符。
以下图S0为例,Address + Data + Checksum长度超过了78字符:
2.1.3 如何计算“Checksum校验和”
下面的record为例,来介绍Checksum的计算:
S10DFC004303030B01004259010104
Checksum计算过程:
1.对所有Byte count + Address + Data十六进制字节求和:0D + FC + 00 + 43 + 03 + 03 + 0B + 01 + 00 + 42 + 59 + 01 + 01 = 1FB。
2.保留最后一个LSB字节,即十六进制字节FB,其二进制为1111 1011。
3. LSB的二进制补码为0000 0100,即十六进制字节04。或checksum=FF - FB = 04
2.2 Record order记录顺序
尽管一些Unix文档指出 "文件中S-record的顺序并不重要,也不需要假定特定的顺序",但实际上大多数软件都对SREC record进行了排序。
典型的record顺序是从一个(有时是可选的)S0 header record开始,接着是一个或多个S1/S2/S3 data record的序列,可能有一个可选的S5/S6 count record,最后是一个适当的S7/S8/S9 termination record。
16-bit address record:
S03E0000433A5C55736572735C757365725C4465736B746F705C424E5C455642434D5C62696E5C53565F43383133335F62335F332E31312E315F4259312E31C6
S123C000CF2600C6055B134A81E6FE4A81BCFE0005C015DA670FE60018E60FA000020C0FE0
S123C020B0000E3C0FC0000EC70FD0000E1600000000000000000000000000000000C70094
S123C040FC00E900E200E400E000E500E700EA00EB00E800EF00EE00EC00C400C500C900AD
......
S123FBC00600C0003013880000A5000001F403E803E800000400FFFFFFFFFFFFFFFFFFFF26
S123FBE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03DA954962
S10DFC004303030B01004259010104
S110FC203230313630363232313732360070
S105FF7AD7FEAC
S105FF8AD8E4B5
S105FFD4D872DD
S105FFDED9AE96
S107FFE4D960D9B54E
S107FFF0D722D871C7
S105FFFEC0003D
……
S9030000FC
24-bit address record:
S2240F7CE04E128840E5D49440D6CD9340866194408B66AC402D41AD407729B240462FB24059
S2240F7D00D70CA940D70CA940D70CA94041A7B14041A7B14041A7B140DAADC7401151AB4085
S2240F7D20D266BD40B8EDBF406A17A540BDFC8A4021F187404E128840E5D49440D6CD934069
S2240F7D40866194408B66AC402D41AD407729B240462FB240D70CA940D70CA940D70CA940BF
S2240F7D6041A7B14041A7B14041A7B140DAADC7401151AB40D266BD40B8EDBF406A17A5404A
……
S804000000FB
32-bit address record:
S00600006C7463B6
S32580054924203889A4B409A57470D882186DFF12E6857F3EA060FC54CF160A74CF6DFFD0E661
S3258005494454CF6F1F16806DFF05E6857F70D8C82F14FF5E1454CF16033C0454CF160B960804
S3258005496474CF6DFFBDE654CF74AF820854AFDF085482857670D8857F02B082044964080A88
S3258005498460FFD445857F06B054F060F2095F02090245D46754217E05095006095F012500E6
S325800549A4857F0AB0821560F5857F0EB05450745FD4450951020974F1D4450951020974F1BF
S325800549C4D44F09F1060974218201A0BF8F11003082320F32002026027625DA020F3F00F0E3
S325800549E4A6F4C211FCF4BD074B00F657857F0AB060FF857F0EB074FFD46F857F0AB0A07408
……
S30FA00F20C0916000E8D9EE5EEFDC0E8A
S30FA00F20E0916000E8D9EE72DFDC0E66
S705A0048020B6
2.3 Text line terminator文本行终止符
SREC Record被一个或多个ASCII行termination character终止符隔开,使每条Record单独出现在一个文本行上。这通过视觉上划分Record的边界来提高可读性,同时也提供了Record之间的填充,可以用来提高机器的解析效率。创建HEX Record的程序通常使用符合其操作系统惯例的行终止符。例如,Linux程序使用一个LF字符(line feed换行,ASCII字符值为0x0A)来终止行,而Windows程序使用一个CR字符(carriage return回车,ASCII字符值为0x0D),后面跟着一个LF字符。
2.4 Comments注释
除了S0 header record中的ASCII-hex转换的注释外,SREC文件格式不正式支持人类可读的ASCII注释,尽管有些软件忽略了所有不以 "S "开头的行和/或忽略了Checksum field(因此尾部文本有时被用于(不兼容)注释)后的所有文本。
部分内容摘自:
SREC (file format) - 维基百科https://en.wikipedia.org/wiki/SREC_%28file_format%29
结尾
获取更多“汽车电子资讯”和“工具链使用”,
请关注CSDN博客“汽车电子助手”,做您的好助手。
相关文章:
![](https://csdnimg.cn/release/blog_editor_html/release2.2.4/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N2N8)
【嵌入式烧录/刷写文件】-1-详解Motorola S-record(S19/SREC/mot/SX)格式文件
目录 1 什么是Motorola S-record 2 Motorola S-record的格式 2.1 Motorola S-record的结构 2.1.1 “Record type记录类型”的说明 2.1.2 “Record length记录长度”的说明 2.1.3 如何计算“Checksum校验和” 2.2 Record order记录顺序 2.3 Text line terminator文本行终…...
![](https://img-blog.csdnimg.cn/f5a7453c91a044b5b1087c0dc5bad13f.png)
图形视图界面 图形效果
Qt的标准图形效果类: QGraphicsBlurEffect提供模糊效果QGraphicsColorizeEffect提供染色效果QGraphicsDropShadowEffect提供阴影效果QGraphicsOpacityEffect提供透明效果 QGraphicsBlurEffect(模糊效果) 模糊效果会模糊源。此效果对于减少细…...
ElementUI学习笔记
目录 一、简单介绍 二、安装 1、下载 2、引入 三、布局 1、简介 2、使用 3、好处 四、布局容器 1、常见排布 2、调整样式 五、按钮 1、简单引用 2、改变样式 3、加载中效果 六、表格 1、简单使用 2、样式修改 七、对话框 1、简单使用 2、添加自定义内容 3、…...
![](https://img-blog.csdnimg.cn/738aa14efddc4c23b28a5e0ba534548c.png)
安装KVM并创建虚拟机及基本使用
#环境说明:Centos7 环境准备: CPU开启虚拟化,给宿主机的CPU和内存分配足够多的配置 安装KVM 1.安装相关软件包 yum -y install qemu-kvm libvirt virt-manager virt-install virt-viewer 软件包简介: qemu-kvm: 为kvm提供…...
![](https://img-blog.csdnimg.cn/bed086c824e34a9c8ce6625a4706b678.png)
一种LCD屏闪问题的调试
背景 项目使用ESP32-S3 RGB接口驱动的LCD, 框架 idf-v5.0, LVGL-v7.11 显示画面正常, 但肉眼可见的像是背光在闪烁, 背光电路是应用很久的经典电路, 且排查背光驱动无错, 但开机一段时间后, 闪烁会明显减轻 记录 这块屏的显示驱动芯片为ST7701S, 查看芯片手册有说明特定的上…...
![](https://img-blog.csdnimg.cn/8c111f3c41ba4151a5972e2b37e678f3.jpeg#pic_center)
Java程序运行在Docker等容器环境有哪些新问题?
第30讲 | Java程序运行在Docker等容器环境有哪些新问题? 如今,Docker 等容器早已不是新生事物,正在逐步成为日常开发、部署环境的一部分。Java 能否无缝地运行在容器环境,是否符合微服务、Serverless 等新的软件架构和场景&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
C语言面试最常问的三个关键字
文章目录前言一,static关键字的作用二,const 关键字的作用2.1, 修饰局部变量2.2,修饰指针2.3, 修饰函数形参2.4,修饰函数的返回值三,volatile关键字的作用前言 面试的时候,C语言最常…...
![](https://img-blog.csdnimg.cn/973d3325cdbe46e4ac757461172e065f.png)
【Linux】-初识Linux
作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【Linux】 分享:逆着光行走,任风吹雨打。 ——《起风了》 主要内容:Linux的一些最基本指令,Linux的小程序,Linux关于连…...
![](https://img-blog.csdnimg.cn/img_convert/c71589e13843201327806d08d3513a43.jpeg)
精选7个 Python 学习资源库,助你成为优秀的开发者
当你在学习编程时,很容易被大量的资源所吓到,不知道该从何开始。 GitHub 仓库是一个很好的起点,因为它们提供了一种非常实用的方式来了解实际的编程应用。你可以查看其他人的代码,并将其与自己的代码进行比较和学习。 当涉及到 …...
![](https://img-blog.csdnimg.cn/0dc1a6b7422b4dfb8565cbadb059b280.png)
【大数据处理与可视化】三 、Pandas库的运用
【大数据处理与可视化】三 、Pandas库的运用实验目的实验内容实验步骤一、使用pandas库分别创建Series对象和DataFrame对象,并对创建的对象使用索引、排序等相关操作;练习DataFrame对象的统计计算和统计描述的功能。1&2、创建一个DataFrame(d…...
![](https://img-blog.csdnimg.cn/ea5e95cbdf2c4b68b86015820e732d89.png)
FPGA解码SDI视频任意尺寸缩放拼接输出 提供工程源码和技术支持
目录1、前言2、SDI理论练习3、设计思路和架构SDI摄像头Gv8601a单端转差GTX解串SDI解码VGA时序恢复YUV转RGB图像缩放FDMA图像缓存实现拼接HDMI驱动4、vivado工程详解5、上板调试验证并演示6、福利:工程代码的获取1、前言 FPGA实现SDI视频编解码目前有两种方案&#…...
![](https://www.ngui.cc/images/no-images.jpg)
线索二叉树结构
线索二叉树结构1.线索二插树的作用2.线索二叉树的定义3.线索二叉树的结构4. 线索二叉树的操作4.1. 建立一棵中序线索二叉树4.2. 在中序线索二叉树上查找任意结点的中序前驱结点4.3. 在中序线索二叉树上查找任意结点的中序后继结点4.4. 在中序线索二叉树上查找任意结点在先序下的…...
![](https://img-blog.csdnimg.cn/6abd1e2f88e3453ba395c69c42e08b1c.png)
6.网络爬虫——BeautifulSoup详讲与实战
网络爬虫——BeautifulSoup详讲与实战BeautifulSoup简介:BS4下载安装BS4解析对象Tag节点遍历节点find_all()与find()find_all()find()豆瓣电影实战前言: 📝📝此专栏文章是专门针对网络爬虫基础,欢迎免费订阅&#…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue:路由管理模式
三种模式 Vue.js 的路由管理有三种模式: Hash 模式(默认):在 URL 中使用 # 符号来管理路由。例如,http://example.com/#/about。这个模式的好处是可以避免浏览器向服务器发送不必要的请求,并且不需要特殊…...
![](https://img-blog.csdnimg.cn/0f5d8d6936574ed588f5aedbb3c83129.png)
7个最好的PDF编辑器,帮你像编辑Word一样编辑PDF
PDF 是具有数字思维的组织的重要交流工具。提供高效的工作流程和更好的安全性,可以创建重要文档并与客户、同事和员工共享。文档的布局已锁定,因此无论在什么设备上查看,格式都保持不变。这是让每个人保持一致的好方法——尤其是那些使用Micr…...
![](https://img-blog.csdnimg.cn/958eb4e438d344d0b5a5760f6c9d5a05.png)
【数据结构】树的介绍
文章目录前言树的概念及结构树的概念树的表示树在实际中的运用二叉树的概念及结构二叉树的概念现实中的二叉树特殊的二叉树二叉树的性质二叉树的储存结构顺序存储链式存储写在最后前言 🚩本章给大家介绍一下树。树的难度相对于前面的数据结构来说,又高了…...
![](https://img-blog.csdnimg.cn/img_convert/a5a3a5c2e395552d1a818b9a7ff90f21.png)
CoreDNS 性能优化
CoreDNS 作为 Kubernetes 集群的域名解析组件,如果性能不够可能会影响业务,本文介绍几种 CoreDNS 的性能优化手段。合理控制 CoreDNS 副本数考虑以下几种方式:根据集群规模预估 coredns 需要的副本数,直接调整 coredns deployment 的副本数:k…...
![](https://www.ngui.cc/images/no-images.jpg)
前端三剑客常见面试题及其答案
目录 1、什么是 HTML? 2、什么是 CSS? 3、什么是 JavaScript? 4、什么是盒模型? 5、什么是浮动? 6、什么是定位? 7、什么是选择器? 8、什么是事件? 前端的三剑客指的是 HTML…...
![](https://img-blog.csdnimg.cn/3a297cd8f156439caa5d919c4a4c0fa8.png)
【DFS专题】深度优先搜索 “暴搜”优质题单推荐 10道题(C++ | 洛谷 | acwing)
文章目录题单一、模板 [极为重要]全排列DFS组合型DFS指数DFS二、专题烤鸡 (指数BFS)P1088 火星人 【全排列】P1149 火彩棒 [预处理 ]P2036 PERKETP1135 奇怪的电梯 暴力P1036 [NOIP2002 普及组] 选数 (组合)P1596 [USACO10OCT]Lake Counting …...
![](https://www.ngui.cc/images/no-images.jpg)
微信小程序自定义组件生命周期有哪些?
微信小程序自定义组件的生命周期函数分为三类: 创建时执行的生命周期函数、更新时执行的生命周期函数和销毁时执行的生命周期函数。 下面是具体的生命周期函数及其触发时机: 创建时执行的生命周期函数: created:在组件实例刚刚…...
![](https://img-blog.csdnimg.cn/37feb105606e44cab8ee853de1e3433b.png)
Linux就该这么学(六)
一、从“/”开始 Linux 系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、rooT 均代表不同的目录,并且文件名称中不得包含斜杠(/)。Linux 系统中的文件存储结构如下图所示。 在 Linux 系统中,最常见的目录…...
![](https://img-blog.csdnimg.cn/30e5b2b753f44f71aa4d753d7499893f.png)
目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)
超越CIOU/SIOU | Wise-IoU助力YOLO强势涨点!!! 论文题目:Wise-IoU: Bounding Box Regression Loss with Dynamic Focusing Mechanism 论文链接:https://arxiv.org/abs/2301.10051 近年来的研究大多假设训练数据中的…...
![](https://img-blog.csdnimg.cn/5db05f8beb5d49a589223d566362be10.png)
【蓝桥杯选拔赛真题39】python输出数字组合 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
目录 python输出数字组合 一、题目要求 1、编程实现 2、输入输出...
![](https://img-blog.csdnimg.cn/img_convert/740d57948dbfd82d378e1c0423901849.png)
网络安全工程师做什么?
网络安全很复杂。数字化转型、远程工作和不断变化的威胁形势需要不同的工具和不同的技能组合。 系统必须到位以保护端点、身份和无边界网络边界。负责处理这种复杂安全基础设施的工作角色是网络安全工程师。 简而言之,网络安全工程师是负责设计和实施组织安全系…...
![](https://img-blog.csdnimg.cn/img_convert/ec15fa4b3648c919db36f25f0c558dfa.png)
总结:K8S运维常用命令
一、部署./kubectl apply -f biz-healing-pod.yaml 二、查看部署的资源1、podkubectl get pod -A:获取所有pod没有IP?用-o wide参数看详细信息:./kubectl get pod -n deepflow -o wide2、service查看hubble-manager命名空间下有哪些service/d…...
![](https://img-blog.csdnimg.cn/329c77c4b3e6446cb7e7a753a0e04ef2.png)
你是真的“C”——进行动态内存分配库函数的使用详解
你是真的“C”——申请动态空间库函数的使用详解😎前言🙌一、为什么需要动态内存分配?💞free 函数😘malloc 库函数😘calloc 库函数😘realloc 库函数😘总结撒花💞…...
![](https://img-blog.csdnimg.cn/f7e18769afab4970b9ea3878830df158.jpeg#pic_center)
Python|蓝桥杯进阶第五卷——数论
欢迎交流学习~~ 专栏: 蓝桥杯Python组刷题日寄 蓝桥杯进阶系列: 🏆 Python | 蓝桥杯进阶第一卷——字符串 🔎 Python | 蓝桥杯进阶第二卷——贪心 💝 Python | 蓝桥杯进阶第三卷——动态规划 ✈️ Python | 蓝桥杯进阶…...
![](https://www.ngui.cc/images/no-images.jpg)
用Python实现单例模式
什么是单例模式单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象…...
![](https://img-blog.csdnimg.cn/2d816937cec940108e39de4becb1d194.png)
交叉编译说明:工具链安装和环境变量配置
目录 一 简单了解交叉编译 ① 什么是交叉编译 ② 为什么需要交叉编译 ③ 宿主机和目标机 二 搭建交叉编译工作环境 ① 安装工具链 ② 配置环境变量 ● 配置临时环境变量 ● 配置永久环境变量 三 交叉编译宿主机和目标机 ● 宿主机编译生成的可执行文件下载到目…...
![](https://img-blog.csdnimg.cn/img_convert/b345c07d9c0b2686d81f64f104c81e09.png)
文件上传的多种利用方式
文件上传的多种利用方式 文件上传漏洞除了可以通过绕过检测进行webshell的上传之外,还有多种其它的漏洞可以进行测试。 XSS漏洞 文件名造成的XSS 当上传任何文件时,文件名肯定是会反显示在网页上,可以使用 XSS Payload做文件名尝试将其上传到…...
宁波招聘网站开发/软文营销文章案例
综述 最近数据结构课设的第二个要求做一个基于后缀数组的字符串操作程序。 后缀数组我就不多说了,关于性质和使用可以参见: 后缀数组详解 环境 QTcreator 作者 山东大学 基地Frankdura 效果图 程序 下面直接给出源程序 dialog.cpp #include &…...
![](https://img-blog.csdnimg.cn/0fdfb49d5bdc4c11b9259563aad9f097.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5q-V5Lia5a2j55qE6L-36Iyr,size_14,color_FFFFFF,t_70,g_se,x_16)
工程建设/seo黑帽培训
最近在做QT项目中遇到一个问题,在Qt中调用MFC编写的动态库,出现内存泄露,没找到原因。由于这些库年代久远,内部代码也比较复杂,又不能轻易丢弃。于是我想把它们做成COM组件再试试。以下是一个简单COM组件编写和调用的完…...
![](https://img2018.cnblogs.com/blog/1462365/201908/1462365-20190812002005518-1646428342.png)
0基础网站建设模板/公司网站建设服务机构
软件环境 Blender 2.80 参考教程 Blender 2.8 Beginner Textures and Materials Tutorial https://www.youtube.com/watch?vfZSD7pVIUkY Render Result 制作流程记录 材质 手柄使用木纹材质(Displacement材质结点,使材质看上去有凹凸感,效果…...
![](/images/no-images.jpg)
mac电脑装wordpress/外贸网站都有哪些
文章目录一 事务性 sink 连接器1 预写式日志接口2 两阶段提交接口二 kafka连接器0 导入依赖1 写入kafka2 读取kafka三 写入redis0 导入依赖1 代码编写四 写入MySQL1 自定义向MySQL中写入数据一 事务性 sink 连接器 事务写入 sink 连接器需要和 Flink 的检查点机制集成…...
![](/images/no-images.jpg)
竹中建设官方网站/郑州百度推广开户
31-40题31、写一个交互脚本,直接运行脚本,出现提示,选择一个数字:1:重启 httpd 服务,2:重启 mysqld 服务 3:重启vsftpd服务,加选项--httpd重启 httpd 服务,加…...
![](/images/no-images.jpg)
网站在线答题怎么做/网站维护工程师
jQuery中attr()设置属性,css()设置style里的样式。属性如Html标签内部的title,src,style这些,style本身是标签的属性。转载于:https://www.cnblogs.com/npk19195global/p/4535630.html...