wsdl接口
wsdl文档WSDL 文档仅仅是一个简单的 XML 文档。
它包含一系列描述某个 web service 的定义。
WSDL 文档结构WSDL 文档是利用这些主要的元素来描述某个 web service 的:
12345元素 定义<portType> web service 执行的操作<message> web service 使用的消息<types> web service 使用的数据类型<binding> web service 使用的通信协议
一个 WSDL 文档的主要结构是类似这样的:
12345678910111213141516171819<definitions><types> definition of types........</types><message> definition of a message....</message><portType> definition of a port..... ...
ffmpeg移植
1、音视频入门1-1、视频
动画书静态小人书,通过快速翻动,形成动态效果。— 视频原理
视频将一些列的静态影像以电信号的方式进行动态捕捉
一、扩展ffmpeg1ffmpeg -f v4l2 -r 30 -s 640x480 -i /dev/video0 -f alsa -ar 44100 -ac 2 -i default -c:v libx264 -preset medium -tune zerolatency -c:a aac -b:a 128k -f nut - | ffplay -
ffmpeg移植ffmpeg的移植依赖于x264和x265
1、移植x264下载源码,创建build.sh脚本,内容如下。
12345678910111213141516#!/bin/bashmake cleanpath="/home/ygc/Desktop/linux-gcc/2021-6ull/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin"set_path=${PWD}/../expo ...
常见的总线和通讯方式
I2C 总线I2C(Inter-Integrated Circuit,集成电路间通讯)是一种用于在多个集成电路之间进行数据交换的协议,它使用 two-wire(两线)通信协议,通常由两个 GPIO(通用输入输出)引脚组成,通常为 SDA(数据线)和 SCL(时钟线)。I2C 总线具有以下特点:
半双工通信:在同一时间内,数据线(SDA)只能由一个设备控制。以下是一次典型的 I2C 数据传输流程(包含 8 位数据帧):
起始条件:主设备发起起始信号,表示数据传输开始。
从机地址:主设备发送 7 位的从机地址和 1 位的读写位(0 表示写,1 表示读)。
应答信号:从设备接收到地址后,会发送一个应答位(ACK)表示已正确接收。
数据传输:主设备或从设备开始传输 8 位的数据。
应答信号:每传输完 8 位数据,接收方会发送一个应答位。
停止条件:主设备发起停止信号,表示数据传输结束。
如果通讯过程中如果从机反应比较慢,这时候从机是可以把时钟线拉低来让主机等待的,很多拿GPIO模拟的I2C都没实现。还有就是I2C总线是允许多主机的,多主机如何避免冲突等等。实际使用中,像STM32出现I2C ...
蓝牙
角色认识master 和slave属于建立连接之后的概念,一旦建立连接,scanner角色变为master,advertiser变为slave。 根据应用场景的需求,一个设备可以是master,也可以是slave或者二者兼备。 初始化建立连接的设备称为master,负责广播的并接收连接请求的设备称为slave。
ffmpeg
示例ffplay -ar 8000 -ac 1 -f mulaw out.g711u-ar 指定音频采样率-ac 指定音频声道数-f 指定音频格式,这里使用mulaw格式
将wav音频转换为mulaw格式(g711u)ffmpeg -i input.wav -ar 8000 -ac 1 -acodec pcm_mulaw output.ulaw-i 指定输入文件-ar 指定音频采样率-ac 指定音频声道数-acodec 指定音频编码格式,这里使用pcm_mulaw
将mp3音频转换为wav格式,再转为mulaw格式才行,直接转有概率转的不对ffmpeg -i song.mp3 -ar 8000 -ac 1 -ab 8 song.wav-i 指定输入文件-ar 指定音频采样率-ac 指定音频声道数-ab 指定音频码率
PCM(脉冲编码调制)在FFmpeg中有以下常见类型:pcm_s16le16位有符号小端格式(Signed 16-bit Little Endian),常用于WAV文件的默认编码。
pcm_s16be16位有符号大端格式(Signed 16-bit Big Endian), ...
中断
Linux中中断在linux在中,嵌套中断被被禁止。回顾:单片机中,嵌套中断是当前中断发生时,被优先级更高的中断打断,优先执行级别更高的中断。
由于Linux的异步I/O、进程调度等很多重要操作都依赖于中断,中断对于内核的运行非常重要,在屏蔽中断期间所有的中断都无法得到处理,因此长时间屏蔽中断是很危险的,这有可能造成数据丢失乃至系统崩溃等后果。这就要求在屏蔽了中断之后,当前的内核执行路径应当尽快地执行完临界区的代码。
向量表中保存了一系列的跳转指令,当系统发生异常时,由处理器负责将程序执行流转到向量表中的跳转指令,最常见的就是中断向量,应用工程师只需要使用固定的函数名编写中断处理程序,在中断发生时该中断处理程序就会被自动调用,这背后的实现就是中断向量表的功劳。
在 armv7 中,中断向量表可以设置在两个地址:0x00000000 和 0xffff0000,由协处理器 cp15 的 SCTLR 的 bit13 来控制,默认情况下,中断向量表的位置在 0x00000000,实际上,对于操作系统而言,比如 linux,会更倾向于将中断向量表放在 0xffff0000 处,因为 0 ...
arm汇编与C内联汇编
0、常用指令0-1、GNU汇编语法:label:instruction @commentlabel:标号,表示地址位置,有的指令前面有标号,通过标号来定位指令位置。也可以用来表示数据地址,任何以:开头的标号都是数据地址。instruction:指令,表示一条指令。也可以是伪指令。@comment:注释,表示对指令的说明。
用户可以使用.section指令来自定义一个段,汇编系统自定义了一些段名字。.text:定义一个代码段。.data:定义一个初始化的数据段。.bss:定义一个未初始化的数据段。.redata:定义一个只读的只读数据段。
程序默认入口__start,也可以使用链接脚本中ENTRY指令指定程序入口。
123.global __start__start: b main
.global:全局指令,表示定义一个全局标号。相当于C语言中的extern,全局变量.byte:定义一个字节,相当于C语言中的char。.short:定义一个字,相当于C语言中的short。.long:定义一个双字,相当于C语言中的int。.equ:定义一个字节,.equ num,0x12 。相当于 ...
linux内核代码规范
缩进:
使用 8 个空格的制表符进行缩进。函数参数和长表达式在续行时也使用 8 个空格的缩进。行长度:
每行最大长度为 80 个字符。大括号:
大括号前换行,符合 Linux 风格。空格:
赋值操作符前后留空格。控制语句(如 if, for, while)前留空格。行尾注释前留两个空格。其他:
不允许短的 if 语句、循环语句、函数和代码块写在一行。字符串字面量允许换行。指针对齐方式为右对齐。以下是调整后的 .clang-format 文件,确保更符合 Linux 内核的代码规范:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162---BasedOnStyle: LLVMIndentWidth: 8 # 通用缩进宽度为8个空格UseTab: Never # 不使用制表符,只使用空格TabWidth: 8 # 制表符宽度为8个空格ColumnLim ...
数据结构与算法
数据的物理结构数据存储在存储器当中,而存储器相当于内存而言,而光盘,软盘,硬盘等外部存储器的数据组织通常用文件结构来描述。
数据存储的形式有两种:顺序式和链式。、
算法的五个特征:输入,输出,有穷性,确定性和可行性。
特征
解释
输入
0个或者多个
输出
一个或者多个输出
有穷性
不会无限循环
确定性
确定性不会有其他含义
可行性
每一步都是可行的
算法的设计要求1、没有语法错误。2、算法程序对于合法输入能够产生满足要求的输出。3、算法程序对于非法输入能产生满足规格的说明。4、算法对于故意刁难的测试输入都有满足要求的输出结果。
可读性 需要便于后续的修改阅读
健壮性 输入不合理时,算法能够有相应的处理,而不是产生异常、崩溃或者莫名奇妙的结果。 时间效率高和存储量
1、时间复杂度关键在于认识: 时间=执行次数T(n)=O(f(n));这样就可以用O来记时间复杂度一般情况下,随着输入规模n的增大,T(n)增长最慢的算法为最优算法。常见的时间复杂度O(1),O(n),O(n^2),O(log(n)),O(nl ...
通用技术-硬件基础
1、元器件1-1、施密特触发器:
迟滞特性:施密特触发器有两个不同的阈值电压,一个用于从低电平转换到高电平(称为上阈值电压),另一个用于从高电平转换到低电平(称为下阈值电压)。这种迟滞特性使得施密特触发器对输入信号的噪声不敏感。
输入输出关系:当输入电压超过上阈值电压时,输出会跳变到高电平;当输入电压低于下阈值电压时,输出会跳变到低电平。
应用广泛:施密特触发器常用于信号整形、脉冲产生和噪声抑制等场合。施密特触发器在数字电路和模拟电路中都有广泛应用,特别是在需要对不稳定的输入信号进行处理的场景中。如将输入信号进行整形、转化为方波。
1-2、sd卡sd卡是一种广泛使用的存储设备,它基于闪存技术。也就是nand闪存。主要外形有两种,一种是micro sd卡,也就是tf卡,一种是sd卡。下面是两者的区别:卡上标签参数解读:c:写速度等级,u:读速度等级,v:视频的读写速度sd卡和micro sd卡的区别:就是多了一根电源线,sd卡三根电源线,micro sd有两根。
1-2-1、总线类型扩展–扇区和簇的关系定义
扇区(Sector)扇区是磁盘(包括 SD 卡等存储设备)物理结构中的最小可 ...