- 博客(28)
- 资源 (6)
- 收藏
- 关注
转载 编译某基于openwrt的sdk
由于自己的linux系统比较新,导致编译个基于openwrt的sdk问题多多,在此记录解决过程1.问题:freadahead.c: In function 'freadahead':freadahead.c:91:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report
2021-10-15 17:47:54
1715
转载 证书与签名是什么
1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2. 鲍勃把公钥送给他的朋友们—-帕蒂、道格、苏珊—-每人一把。3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4. 鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。5. 鲍勃给苏珊回信,决定采用”数字签名”。他写完后先用Hash函数,生成信件的摘要(digest)。...
2021-08-06 17:55:17
940
转载 uC/OS-III&FreeRTOS区别
在阅读完uC/OS-III(V3.03.01)和FreeRTOS(V10.0.1)的源码后,我对RTOS有了较深的认识。现将它们之间的一些区别总结出来,有利于大家理解这两个RTOS。1、uCOS-III中所有的内核对象(如任务控制块、消息队列、信号量等)都是静态创建的,需要用户提供。FreeRTOS中的内核对象支持动态和静态两种创建方法。(PS: 其实系统提不提供动态创建功能并不那么重要,因为在静态创建的方法的基础上加入内存管理机制,就能自已封装实现动态创建函数)2、uCOS-III中的任.
2021-05-20 14:04:55
1725
1
转载 RSA ~ 非对称加密算法
RSA:非对称加密,加密与解密使用的密钥不是同一密钥,对中一个对外公开,称为公钥,另一个只有所有者知道,称为私钥。用公钥加密的信息只有私钥才能解开,反之,用私钥加密的信息只有公钥才能解开(签名验签)。代表:RSA算法。速度慢,适合少量数据加密。对称加密算法不能实现签名,因此签名只能非对称算法。RSA算法非常简单,概述如下:找两素数p和q取n=p*q取t=(p-1)*(q-1)取任何一个数e,要求满足e<t并且e与t互素(就是最大公因数为1)...
2021-04-25 18:03:31
1085
转载 C++利用mongoose搭建web服务器
0、前言Mongoose是c语言写成的网络库。它为TCP、UDP、HTTP、WebSocket、CoAP、MQTT实现了事件驱动型的非阻塞api。其具有以下特性:跨平台:可在linux/unix macos QNX eCos Windows Android Iphone FreeRtos上运行;原生支持PicoTCP的嵌入式tcp/ip协议栈,支持LWIP嵌入式tcp/ip协议栈;单线程,异步,非阻塞核心与简单的基于事件的API。...
2021-04-25 16:59:40
2493
1
转载 __attribute__((section(x))) 使用详解
无论是GNU还是ARM的编译器,都支持__attribute__所指定的编译属性,这里着重讲解一下在KEIL环境下__attribute__中的section的使用方法。section关键字可以将变量定义到指定的输入段中,下面以具体的例子来讲解section的使用方法. #define SECTION(level) __attribute__((used,__section__(".fn_cmd."level))) #define CMD_START_EXPORT(...
2020-12-16 19:13:38
2058
转载 WAV文件格式详解
.概述Waveform Audio File Format(WAVE,又或者是因为WAV后缀而被大众所知的),它采用RIFF(Resource Interchange File Format)文件格式结构。通常用来保存PCM格式的原始音频数据,所以通常被称为无损音频。但是严格意义上来讲,WAV也可以存储其它压缩格式的音频数据。常见的声音文件主要有两种,分别对应于单声道(11.025KHz 采样率、8Bit 的采样值)和双声道(44.1KHz 采样率、16Bit 的采样值)。采样率是...
2020-12-06 16:11:50
24998
转载 wps原理及实现
这篇文章基于《Wi-Fi Simple Configuration Technical Specification Version 2.0.5》文档, 更详细的内容请直接参考文档,这里只将自己的想法做一些简单的记录。一、WSC的三种实现 WSC(wifi simple configuration),一看这名字就知道这个协议是用来偷懒用的,所以我将它翻译为“快速接入无线网”协议,这个协议主要包括三种快速连接方式: 1. WPS: 看这篇文章的人,应该会知道wps是干嘛用的,但是相信也...
2020-10-15 17:59:51
8072
9
转载 智能家居Zigbee和蓝牙哪个发展潜力更大?
今年的CES Asia 2019展几乎就是智能家居、智慧城市、智能生活的天下,只不过不同智能家居设备制造商的产品标准、生态不同。小米、华为、苹果、亚马逊这样的平台本来就在构建自己的智能家居生态,Signify、小燕科技这些智能家居制造商也在组建各自的生态。更重要的是,无论是平台还是制造商,所用的无线通讯标准还各不一样:比如小燕科技以Zigbee为主,而BroadLink则强调Wi-Fi,米家有越来越多BLE Mesh设备。这些看来碎片化的状况,可能会让普通人不知从哪里入手;或者这种碎片化是否对行业本身的
2020-07-31 19:46:32
4435
1
转载 Diffie-Hellman密钥交换
DH密钥交换是一种安全协议,它可以让双方在不安全的信道上创建一个密钥。双方互相发送的数据就算被第三方知晓,也无法知道加密信息的密钥。其解决问题的主要思想可以用下图来解释:Alice和Bob想要协商出一个只有它们两人知道的颜色,不能让第三方知道,怎么办呢?解决办法如下:先从它们共同拥有的颜色(图中为黄色)开始,这个黄色是大家都知道的,第三方知道也没有关系。Alice选了一个只有自己知道的颜色(图中为红色),并将之混入大家知道的黄色中,形成新的颜色(图中为棕色)。Bob也选了一个只有自己知道的
2020-07-14 17:27:18
553
转载 OPENWRT启动流程分析
先来看框图 OPENWRT 系统启动流程框图:既 Linux 内核从 flash 中读取,再看 MT7628AN 的 Flash 分区布局:
2020-06-05 19:48:07
439
转载 人声分离攻破“鸡尾酒会”效应,将为语音识别带来哪些新可能?
“时隔65年,在近日Google Research软件工程师Inbar Mosseri和Oran Lang发表的论文《Looking to Listen at the Cocktail Party》中,采用了一个全新的视听模型为“鸡尾酒会”问题提供了一个合适的解决之道,这一突破为语音识别不仅带来了更多新可能,同时也成为该领域一个划时代的分水岭。”在嘈杂的室内环境中,比如在鸡尾酒会中,同时存...
2020-05-07 19:30:58
2412
原创 MCU小型调度OS之四:调度OS与RTOS的本质区别
一、RTOS原理与机制: 图1 如上图1,这个是UCOSII,大同小异,RTOS一般都是很多任务并行运行,如何切换任务呢,一般是在一个信号量pending或者OSTimeDly的时候切换,不然一个任务一直抢占着资源,优先级低的任务永远不能执行。如果OSTimeDly之后,切换到其他任务工作,待会儿该任务就绪,又重新把当前任务的临时变量、PC指针等环境资源重新恢复到当...
2020-01-16 16:33:36
1054
原创 MCU小型调度OS之三:任务调度机制
一、结构体类型: 图1 图2 如上图1,task_list是任务节点的结构体,具体参数如下: 1、task_id是任务ID,一般对某个任务操作时用来区分具体哪个任务; 2、stat是任务的当前状态,状态类型如图2,三种状态依次为挂起休眠,就绪运行,超时; 3、pointer是当前运行指针...
2020-01-14 15:21:54
2595
原创 MCU小型调度OS之二:定时器
一、结构体类型: 如上图所示,timer_list就是定时器的结构体,其中timer_id是定时器ID;enable是该定时器是否启动;expires是定时时间长度,function是定时器超时函数,p_arg是定时器传参数;next是下一个定时器节点。二、硬定时器: 定时器分为硬定时器和软定时器,区别为: 1、硬定时器超时直接...
2020-01-13 15:07:57
1244
1
原创 MCU小型调度OS之一:由ODM项目引起跨平台、跨系统的兼容、可移植
项目背景: 最近公司在做一个ODM项目,需要把公司内部的协议栈交互与加密方式封装成一个SDK,提供给ODM厂家调用,达到其他公司只做适配BSP,而核心业务由我们自己掌控,达到ODM厂家更换任意平台芯片,任意RTOS或者逻辑,我们都能适配,因为公司协议栈内部有交互(设备与APP之间有命令交互和阻塞等待超时等场景),因此需要制作一个跨平台的调度机制,又能保证性能和兼容性...
2020-01-03 10:43:06
1330
原创 Zigbee疑难问题定位以及思路方法分享 (四)
接着上回继续分析公司遗留的问题四,问题四的需求就是,假如其中一个网关坏了,拿了一个新的网关,能够替换接管旧网关下面的所有设备,由于搞ZigBee也有两个月了,802.15协议以及ZigBee协议也蛮熟悉了,抓包也抓过了,对ZigBee通讯多少有些了解。 实现该问题思路有几点:1、理论上,入网成功后,设备通讯都是短地址,网关时0x0000,数据包里面有panID,推...
2019-07-12 19:16:34
875
原创 Zigbee疑难问题定位以及思路方法分享 (三)
接着上回继续分析公司遗留的问题三分析,问题三就蛮棘手的,因为是隐性问题,不容易复现,有时候,一个月才复现一次,出现这样的问题给定位带来了很大的困难,首先说一下我们产品的掉线、重连机制。 产品掉线重连机制:设备正常通信的时候倒还好,如果出NWK_ERROR_ASSOC_CNF_DENIED情况,也就是失网的情况下,停止设备上报数据,初始化网络,进入NLME_Orph...
2019-07-12 18:22:54
1214
原创 Zigbee疑难问题定位以及思路方法分享 (二)
接着上回继续分析公司遗留的问题二分析,问题二就是入网速度慢、入网后概率性的掉线。先普及一下我们入网的流程,因为不同的网络有不同的PANID,因此目前入网的方式有三种:1、每个设备出厂时候读取它的MAC地址,生成二维码贴在设备上,入网之前用手机扫描一下,把MAC地址导入到网关端,因此尝试关联的时候网络允许其关联;2、每个设备上做一个NFC标签,设备可以通过I2C等总线读取NFC标签...
2019-07-12 15:27:26
587
原创 Zigbee疑难问题定位以及思路方法分享 (一)
最近换了家新公司,花了两个月从不懂ZigBee到解决了不少遗留偶发BUG,有了不少心得体会,下面分享下自己定位思路,以及分析问题的方法。 刚进公司,接手了另一个工程师做的ZigBee项目(采用CC2530方案),遗留不少问题BUG,前两周看代码,熟悉ZigBee协议,当前遗留了有不少BUG,其中丢包率高、经常性的掉线并且不能自恢复、入网速度慢、入网后概率性的掉线这...
2019-07-05 19:13:52
1297
4
转载 程序员专用接私活,靠谱的七个平台
程序员除了在公司上班之外,有时候也需要接私活赚些外快补贴家用,那么国内有哪些渠道可以提供大量的职位呢? 我寻找了一些靠谱的方法推荐给大家,以下是几个国内主流并且不同业务类型的平台,供大家筛选1、程序员客栈:程序员的经纪人2、快码众包-让互联网产品开发更快速!认准域名Kuai.ma3、Coding 码市 - 基于云技术的软件外包服务平台 coding码市4、开源中国众...
2019-04-18 14:46:49
2894
转载 从一个普通程序猿到CTO,要经历哪几个阶段?
不想当CTO的技术开发,不是好程序员,那么从一个普通程序员到顶级的CTO都要经历哪些关键阶段,又都需要具备怎样的工作能力呢?今天小编就给大家分享一篇关于程序员进阶历程的文章,希望对你未来的职业规划有所帮助。1.程序员程序员,英文名 coder/programmer,大家常自嘲叫码农的阶段。这个角色职责是把需求或产品实现为用户可用的软件产品。此职位为执行级别。另外因为经验较少,一般需要求...
2019-04-18 14:44:58
419
原创 嵌入式产品偶发性问题定位总结
本人从事嵌入式研发多年,从有线到无线都略有涉及,下面谈谈我对关于嵌入式产品问题定位的思路和方法。因为普通软件的话,通过打印、仿真、屏蔽二分法都可以判断出来,今天就不多说了,今天分享下一些隐形问题或偶发性问题的定位思路。 一、有线类 第一步,查看总线硬件特性。顾名思义,有线类产品分为uart、spi、i2c、sdio、usb等等,如果出现问题,由...
2019-04-18 12:02:51
599
原创 Linux ALSA声卡驱动之四:machine和dai_link的作用和实现
一、模块化管理 alsa音频驱动模块化管理,是linux驱动比较典型的代码架构,app调用snd_pcm_open、snd_pcm_writei、snd_pcm_readi等接口到alsa_lib后,也根据一系列的操作(具体详细调用以及设备节点的操作下节会详细解释)后,调用到alsa_soc,这也是alsa驱动架构的核心,一般情况下,这个alsa_soc基本不会变,从而调用到...
2019-03-14 15:13:34
8113
1
原创 Linux ALSA声卡驱动之三:component、dai、codec以及platform之间的关系
一、背景概述 上节说到platform_device加载,触发mt76xx_i2s_driver、soc_driver、mt76xx_pcm_driver驱动程序的probe,这里面做了哪些工作,如下图二、snd_soc_component与snd_soc_dai的关系1、mt76xx_i2s_drv_probe的实现 在...
2019-03-12 18:32:17
10911
4
原创 Linux ALSA声卡驱动之二:音频设备与驱动的衔接、注册
1、背景概述 本方案基本MT7628平台,wm8960为codecs,i2s总线播放,相关代码随后上传,结合代码进行分析会更清晰2、设备注册与驱动触发综上所述,soc_mtk_i2s_dev、mt76xx_audio_device、soc_mtk_pcm_dev、设备挂载到platform平台上,从而触发mt76xx_i2s_driver、soc_driver...
2019-03-08 18:21:49
4095
2
原创 Linux ALSA声卡驱动之一:ALSA架构概述
一、概述1、硬件由上可见,播放音频时,通常CPU通过总线传送给CODEC音频PCM数据,然后CODEC进行DA转换、放大、增益等一系列处理,最后传送给speaker,录音流程反之。2、软件架构用户空间的alsa库对应用程序提供统一的API接口,这样可以隐藏了驱动层的实现细节,简化了应用程序的实现难度。内核空间中,alsasoc其实是对alsa驱动的封装统一,为了兼容不同平台的驱动,同时风格更...
2019-03-08 16:29:33
3174
1
原创 openwrt编译问题解决
make V=99make[3]: Leaving directory '/home/louis/Code/mt7628/openwrt-3.10.14/package/libs/ocf-crypto-headers'make[3]: Entering directory '/home/louis/Code/mt7628/openwrt-3.10.14/package/libs/ope
2017-10-28 10:07:46
5373
基于MCU小型调度OS(跨平台、占用资源小)
2020-01-02
openwrt在STA模式(中继模式下动态切换信道关联热点
2018-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人