- 博客(117)
- 资源 (6)
- 收藏
- 关注

原创 IP分片实例分析
IP分片实例分析引言 最近公司要研发一款用于链路通信加密的设备,使用祖冲之算法对OSI七层中的数据链路层数据进行流式加密,在设计技术方案时,发现一个问题,就是广域网上传输的数据包都是有最大长度限制的,对TCP数据包是MSS(最大分段长度), 对UDP数据包是MTU(最大传输单元),而对于我们的项目,TCP的分段不用特殊处理,而IP分片需要在加密设备端主动分片,并且满足IP的包格式。UDP不会分段,就由IP分片;TCP会分段,就不用IP分片。IP分片 下面...
2020-06-05 11:45:51
5078
1

原创 3GPP机密性和完整性算法规范128-EEA3和128-EIA3(二)----祖冲之算法的C语言实现
ZUC算法的C语言实现/* ——————————————————————- */typedef unsigned char u8;typedef unsigned int u32;/* ——————————————————————- *//* the state registers of LFSR */u32 LFSR_S0;u32 LFSR_S1;u32 LFSR_S2;u32 LFSR_S3;u32 LFSR_S4;u32 LFSR_S5;u32 LFSR
2020-06-03 16:18:32
1818

原创 3GPP机密性和完整性算法规范128-EEA3和128-EIA3(一)----密钥生成原理
最近公司要研发一款用于链路通信加密的设备,使用祖冲之算法对OSI七层中的数据链路层数据进行流式加密,对祖冲之算法的密钥生成,机密性和完整性算法都进行了学习。引言ZUC是一个面向字的流密码。它需要一个128位的初始密钥和一个128位的初始矢量(IV)作为输入,输出一串32位字的密钥流(因此,这里每一个32位的字称为密钥字)。密钥流可以用来加密/解密。ZUC的执行分为两个阶段:初始化阶段和工作阶段。在第一阶段,将密钥和初始向量IV初始化,也就是,时钟控制着密码运行但不产生输出(见章...
2020-06-03 16:05:58
8619
1

原创 网络常用端口号大全
端口号---具有网络功能的应用软件的标识号。注意,端口号是不固定的,即可以由用户手工可以分配(当然,一般在软件编写时就已经定义)。当然,有很多应用软件有公认的默认的端口,比如FTP:20和21,HTTP:80,TELNET:23等等,这里就不一一列举了。一个软件可以拥有多个端口号,这证明这个软件拥有不止一个网络功能。0-1023是公认端口号,即已经公认定义或为将要公认定义的软件保留的,而102...
2019-06-18 14:13:11
43890
5

转载 面试常考的常用数据结构与算法
面试常考的常用数据结构与算法数据结构与算法,这个部分的内容其实是十分的庞大,要想都覆盖到不太容易。在校学习阶段我们可能需要对每种结构,每种算法都学习,但是找工作笔试或者面试的时候,要在很短的时间内考察一个人这方面的能力,把每种结构和算法都问一遍不太现实。所以,实际的情况是,企业一般考察一些看起来很基本的概念和算法,或者是一些变形,然后让你去实现。也许看起来简单,但是如果真让你在纸上
2017-12-07 09:57:34
12291

原创 嵌入式软件架构设计----中控机NIOS软件系统架构设计说明书
下面文档系本人开发的流媒体数字会议系统中控机的软件架构,有写的不好的地方,欢迎拍砖1 .引言1.1编写目的和使用范围1.1.1 编写目的本文档用来确定Nios的软件架构,以便帮助软件工程师更好的完成中控机的业务逻辑功能。1.1.2 使用范围本文档适用于飞利信的流媒体总线有线数字会议系统,中控机和终端开发工程师,以及相关产品经理和项目经理。1.2术语表Nios
2017-09-27 16:29:34
2703
1

原创 android源码4.4.2----系统启动过程分析
init进程:linux的根进程,android系统是基于linux系统的,因此可以算作是整个android操作系统的第一个进程;Zygote进程:android系统的根进程,主要作用:可以作用Zygote进程fork出SystemServer进程和各种应用进程;SystemServer进程:主要是在这个进程中启动系统的各项服务,比如ActivityManagerService,PackageManagerService,WindowManagerService服务等等;各种应用进程:启动自己编
2017-06-02 18:16:01
1645

原创 语音识别之自我总结
语音识别之自我总结1.进入语音识别领域因为各种原因,之前单位不想继续了,打算换工作,正好在加入的技术群里面有招聘相关职位,看了下,比较符合(主要是用ARM汇编写过程序,做过代码优化等),顺利进到新公司,开始接触语音识别领域。2.工作和学习过程 工作吗,首先看公司安排,公司打算做一款嵌入式语音识别引擎,经过评估,确定用 CMU Sphinx,之前同事已经做
2015-01-10 12:53:47
1621
原创 Android System Service系统服务--1
因为工作中经常需要解决一些framework层的问题,而framework层功能一般都是system service 的代理stub,然后封装相关接口,并提供给APP层使用,system service则在不同的进程中运行,这样实现了分层,隔离,跨进程等需求。上面的流程在location service和Bluetooth service等流程基本一致,也可以参照上面流程,实现自定义的系统服务,比如车机开发中经常面临这样的需求。里定义一个代表Vibrator服务的字符串。的接口实现里就可以调用。
2024-01-18 10:51:34
799
原创 【AutoSAR】 CP 和 AP
AutoSAR 是由全球各家汽车制造商、零部件供应商以及各种研究、服务机构共同参与的一种汽车电子系统的合作开发框架,并建立了一个开放的汽车控制器(ECU)标准软件架构。ECU更加智能:基于SOA通信使得AP中ECU可以动态的同其他ECU提供或获取服务,动态同其他ECU进行连接更强大计算能力:基于SOA架构使得AP能够更好支持多核、多ECU、多SoCs并行处理,提供更强大的计算能力。
2022-11-21 16:02:14
1508
原创 深入浅出低功耗蓝牙(BLE)协议栈
BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么?协议栈框架一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。如上图所述,要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协议栈上开发自己的应用。可.
2021-12-24 17:26:01
554
原创 BLE协议栈详解
1、目的因最近面试,总有人问到BLE协议栈,据此,记录学习BLE协议栈的过程。2 协议概述所谓协议,即将指定的字节按照一定的顺序排列起来,以便他人使用自己的设备时,能通过该协议同其他设备进行通信。协议一特点,就是有固定的帧格式,通过该格式发送,接收者通过解读帧格式,进而得到新息内容;3 BLE连接过程3.1 前言一般通信协议,一类通信是直接发生数据,当设备接送到数据时,直接对数据进行解析,当接受到的数据合法时,即为有效数据,该类型的通信协议,主要用在有线通信协议中,比如Modbus,Can通
2021-12-24 17:18:19
2178
原创 linux内核中的GPIO系统之(5):gpio subsysem和pinctrl subsystem之间的耦合
1. 前言按理说,kernel中gpio subsystem和pinctrl subsystem的关系应该非常清楚:pinctrl subsystem管理系统的所有管脚,GPIO是这些管脚的用途之一,因此gpio subsystem应该是pinctrl subsystem的client(也可叫做backend、consumer),基于pinctrl subsystem提供的功能,处理GPIO有关的逻辑。不过,实际情况却不是这么简单,它们之间有着较为紧密的耦合(看一看kernel中pinct.
2021-09-24 17:30:28
472
原创 linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结
1. 前言本站之前的三篇文章[1][2][3]介绍了pin controller(对应的pin controller subsystem)、gpio controller(对应的GPIO subsystem)有关的基本概念,包括pin multiplexing、pin configuration等等。本文将基于这些文章,单纯地从pin controller driver的角度(屏蔽掉pinctrl core的实现细节),理解pinctrl subsystem的设计思想,并掌握pinctrl驱动的移植和实
2021-09-24 17:28:25
918
原创 Linux内核中的GPIO系统之(3):pin controller driver代码分析
一、前言对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datasheet会把pin controller的内容放入GPIO controller的章节中),主要功能包括:(1)pin multiplexing。基于ARM core的嵌入式处理器一般会提供丰富的功能,例如camera interface、LCD interface、USB、I2C、SPI等等。虽然处理器有
2021-09-24 17:26:20
1120
原创 linux内核中的GPIO系统之(2):pin control subsystem
一、前言在linux2.6内核上工作的嵌入式软件工程师在pin control上都会遇到这样的状况:(1)启动一个新的项目后,需要根据硬件平台的设定进行pin control相关的编码。例如:在bootloader中建立一个大的table,描述各个引脚的配置和缺省状态。此外,由于SOC的引脚是可以复用的,因此在各个具体的driver中,也可能会对引脚进行的配置。这些工作都是比较繁琐的工作,需要极大的耐心和细致度。(2)发现某个driver不能正常工作,辛辛苦苦debug后发现仅仅是因为其他的dr
2021-09-24 17:24:23
761
原创 linux内核中的GPIO系统之(1):软件框架
一、前言作为一个工作多年的系统工程师,免不了做两件事情:培训新员工和给新员工分配任务。对于那些刚刚从学校出来的学生,一般在开始的时候总是分配一些非常简单的任务,例如GPIO driver、LED driver。往往CPU datasheet的关于GPIO或者IO ports的章节都是比较简单的,非常适合刚入行的工程师。虽然GPIO子系统相关的硬件比较简单,没有复杂的协议,不过,对于软件抽象而言,其分层次的软件思想是每个嵌入式软件工程师需要掌握的内容。我更倾向使用GPIO系统这个名字来代替GPIO d
2021-09-24 17:21:11
539
原创 Linux DTS入门知识
一、dts产生原因.............................................................................................................................................2二、dts基本知识..............................................................................................
2021-09-18 09:48:37
903
转载 Linux内核之 module_init解析 (下)
从上一篇博文http://blog.youkuaiyun.com/richard_liujh/article/details/45669207介绍了module_init宏函数,简单来说上篇博文介绍module_init如何注册驱动的init函数,这篇博文将详细分析kernel启动过程又是如何执行我们注册的init函数。如果了解过linux操作系统启动流程,那么当bootloader加载完kernel并解压并放置与内存中准备开始运行,首先被调用的函数是start_kernel。start_kernel函数顾名思义,
2021-08-25 17:15:52
294
转载 linux内核驱动 之 module_init解析 (上)
原文链接:https://blog.youkuaiyun.com/Richard_LiuJH/article/details/45669207写过linux驱动的程序猿都知道module_init() 这个函数。那么我们来了解一下module_init这个函数的具体功能和执行过程在kernel源码目录中找到include\linux\init.h文件/*** module_init() - driver initialization entry point* @x: function to be..
2021-08-25 17:09:13
540
原创 Linux设备驱动之usb设备驱动详解
原文地址:http://blog.youkuaiyun.com/chenjin_zhong/article/details/63293161.Linux usb设备驱动框架USB是通用串行总线的总称,Linux内核几乎支持所有的usb设备,包括键盘,鼠标,打印机,modem,扫描仪。Linux的usb驱动分为主机驱动与gadget驱动。前者是设备连接到计算机上,通过主机驱动扫描usb设备,控制所连接的设备。而gadget驱动一般用于嵌入式设备,gadget驱动用于控制嵌入式设备。Linux的usb驱动两种类型图
2021-08-06 18:15:53
2002
原创 儿童编程scratch
引子儿子最近放寒假了(神兽出笼啊),因为疫情的关系,得减少出门,于是给他试学了下儿童编程,没想到非常有兴趣,于是下载安装了scratch3.6,并且找了一些视频教程,开始学习。下载安装可以直接在 scratch.mit.edu 下载安装,也可以找其他版本。学习编程不得不说,对于7岁的孩子来说,学习要想有效果还是需要大人的陪伴的,首先看视频(哔哩哔哩上发现了非常好的内容资源,cx-coding.com也是不错的学习资源),他会觉得很简单,但是真的自己做的时候,马上出现了各种问题,最主要的电
2021-02-01 14:37:31
5517
原创 麦克风阵列技术(转载)
非常好的文章,能让人看明白的文章,尝温习之转自:http://news.soundai.com/?id=7本文作者陈孝良,工学博士,声智科技创始人。亚马逊Echo和谷歌Home争奇斗艳,除了云端服务,他们在硬件上到底有哪些差异?我们先将Echo和Home两款音箱拆开来看,区别最大的还是麦克风阵列技术。Amazon Echo采用的是环形6+1麦克风阵列,而Google Home(包括Surface Studio)只采用了2麦克风阵列。这种差异我们在文章《对比Amazon Echo,Googl.
2021-01-29 11:01:14
3368
原创 最新xcode打包IPA----2021.1.18(完整详细图文)
转自:https://blog.youkuaiyun.com/u014599371/article/details/93179084本文详细讲述iOS的App开发后如何进行证书的创建和项目中如何配置证书及上传到苹果App管理后台后如何新增与更新版本。前期准备:① Mac OS电脑② 一款开发完毕的App③ 99美元的开发者证书一个(此证书提供App上传到App Store),苹果的另外一个299美元一年的证书打包流 程一样,只是在后期打包时候的选项不同,会在后文提及.1. 根据App的B
2021-01-18 16:28:22
4943
原创 有符号数在计算机中的表示方法
最近因为要将一个16bit的音频混音算法改成24bit的,复习了有符号数的计算机内的表示方法.对负数的二进制表示有些遗忘,在网上找了一下资料,贴出来已备再次遗忘:假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为:00000000 00000000 00000000 000001015转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。现在想知道,-5在计算机中如何表示? 在计算机中,负数以其绝对值的补码形式表达。什么叫补码呢?
2021-01-04 15:20:18
4681
原创 理解FFT和信号加窗原理及意义
理解FFT和信号加窗原理及意义学习信号时域和频域、快速傅立叶变换(FFT)、加窗,以及如何通过这些操作来加深对信号的认识。1. 理解时域、频域、FFT傅立叶变换有助于理解常见的信号,以及如何辨别信号中的错误。 尽管傅立叶变换是一个复杂的数学函数,但是通过一个测量信号来理解傅立叶变换的概念并不复杂。 从根本上说,傅立叶变换将一个信号分解为不同幅值和频率的正弦波。 我们继续来分析这句话的意义所在。所有信号都是若干正弦波的和我们通常把一个实际信号看作是根据时间变化的电压值。 这是从时.
2020-11-05 16:59:35
2669
原创 网络常用端口号大全----2
常用端口1.公认端口(Well Known Ports):从0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。2. 注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。3. 动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535
2020-07-27 10:05:38
22470
原创 3GPP机密性和完整性算法规范128-EEA3和128-EIA3(五)----文档代码资源
3GPP机密性和完整性算法规范128-EEA3和128-EIA3(四)----文档代码资源
2020-06-03 17:26:05
1348
4
原创 3GPP机密性和完整性算法规范128-EEA3和128-EIA3(四)----测试用例
官方测试用例,已经验证过,注意测试数据的 LENGTH 值不是整32位的情况,需要自己处理一下
2020-06-03 17:21:41
1617
2
原创 3GPP机密性和完整性算法规范128-EEA3和128-EIA3(三)----机密性算法(EEA3)和完整性算法(EIA3)
英文文档,特别提示,文中有EEA3和EIA3的代码1 OUTLINE OF THE NORMATIVE PART Section 2 introduces the algorithm and describes the notation used in the subsequent sections. Section 3 specifies the confidentiality algorithm 128‐EEA3. Section 4 specifies the integrity.
2020-06-03 17:07:33
3952
2
原创 Risc-v 各种版本gcc工具链编译与安装
https://blog.youkuaiyun.com/weiqi7777/article/details/88045720要学习riscv架构,首先第一步,要搞定riscv的gcc交叉编译器。下面就对riscv的gcc交叉编译器,进行详细的介绍。一、riscv gcc工具下载Riscv的gcc交叉编译器,以开源的方式托管在github上。链接如下:https://github.com/risc...
2020-01-14 17:47:40
5784
转载 三大集合:List、Map、Set的区别与联系
List、Map、Set的区别与联系一、结构特点List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合;List中存储的数据是有顺序的,并且值允许重复;Map中存储的数据是无序的,它的键是不允许重复的,但是值是允许重复的;Set中存储的数据是无顺序的,并且不允许重复,但元素在集合中的位置是由元素的hashcode决定,即位置是固定的(Set集合是根据hashcode...
2019-06-13 17:17:39
243
转载 C++经典面试题(最全,面中率最高)
1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要...
2019-06-13 17:16:44
417
原创 MAC地址规则及算法介绍
概述·MAC地址(MAC Address)·MAC(Medium/Media Access Control)地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位)。其中,前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符”(Organizationally Unique Identifier),后三个字节(...
2019-06-12 12:00:37
12967
原创 中国无线电频率分配表
中国无线电频率分配表 1.频段划分及主要用途 名称 甚低频 低频 中频 高频 甚高频 超高频 特高频 极高频 符号 VLF LF ...
2019-01-11 18:04:43
44825
原创 无线电频谱和波段划分
无线电频谱和波段划分 2004-03-10 段号 频段名称 频段范围 (含上限,不含下限) 波段名称 波长范围 (含上限,不含下限) 1...
2019-01-11 17:52:44
8086
原创 为什么要划分通信频段和进行严格的频谱管理
无线通信中使用的频段只是电磁波频段中很小的一部分,定义了无线电波的频率范围。 为了合理使用频谱资源,保证各种行业和业务使用频谱资源时彼此之间不会干扰,国际电信联盟无线委员会(ITU-R)颁布了国际无线电规则,对各种业务和通信系统所使用的无线频段都进行了统一的频率范围规定。 这些频段的频率范围在各个国家和地区实际应用时会略有不同,但都必须在国际上规定的这些范围内...
2019-01-11 16:08:49
7460
原创 嵌入式软件工程师经典笔试题
> 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,...
2018-11-16 11:41:36
977
转载 MySQL基础
MySQL入门1. 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。2. 使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。3. RDBMS特点:1.数据以表格...
2018-07-25 11:04:35
322
转载 FaceNet--Google的人脸识别
引入随着深度学习的出现,CV领域突破很多,甚至掀起了一股CV界的创业浪潮,当次风口浪尖之时,Google岂能缺席。特贡献出FaceNet再次刷新LFW上人脸验证的效果记录。本文是阅读FaceNet论文的笔记,所有配图均来自于论文。 转载请注明:http://blog.youkuaiyun.com/stdcoutzyx/article/details/46687471FaceNet与其他的深度学习方法在人脸上的...
2018-04-23 16:42:00
720
祖冲之文档及代码.rar
2020-06-03
中国无线电频率划分规定
2019-12-12
语音唤醒--支持Android6.0平台
2017-12-14
Android系统Ethernet模块需要添加修改的文件
2017-05-26
Android版本本地语音识别demo
2015-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人