嵌入式
文章平均质量分 73
wangxinyu2011
本人于2011年大学毕业后,一直从事家用网络设备的软件开发工作。从刚入职场的小白,到现在仍在奋斗的路上,一路走来得到了同事、领导、开源社区、技术博客等的帮助。一直想着在自己知识经验范围内,将自己浅薄的总结,提供给需要的人进行参考。技术的共享,开源社区的繁荣,我们每个从事技术开发的人都将受益。
展开
-
Linux嵌入式设备内存问题定位
Linux嵌入式设备的内存一般都不大,可能就只有32M、64M、128M、256M。无线路由器一般以64M和128M居多。之前用的64M内存的方案,由于做海外版本,增加功能,导致了内存不足,因此总结了部分经验,提供给大家,希望大家调试过程少走弯路。原创 2022-10-18 22:39:32 · 1525 阅读 · 0 评论 -
对家庭网络设备行业的理解
本人从事网络设备开发,本文观点限行家庭网络设备的开发,尤其指家用无线路由器(以下行业所指代或以此为出发点)。限于作者水平,必然存在理解的局限,请多包涵和指摘。一、行业发展的动力主要为802.11协议的发展,即无线局域网的技术进步,推动了行业的向前发展。一个行业的发展,有赖于市场环境(用户需求,如笔记本、手机)、其它技术的发展(如制造业、供应、有线、接入网络)等共同形成适用的场景,为其发展铺平了道路,但在其繁荣的过程中,一定会有一条主脉络,促使起向发展。先将无线路由器的主要接入技术进行剖析:8原创 2022-04-05 22:34:57 · 6927 阅读 · 3 评论 -
dB dBm概念及计算
1、dB是一个比值计数,而不是一种单位。比如一个数X = 100 = 100 / 1 , 即100是1的100倍, 则 10*lgX = 10*lg100 = 10 *2 = 20dB比如一个数X = 0.01 = 0.01/1 , 即0.01是1的100分之一, 则 10 *lgX = 10 * lg0.01 = 10 * -2 = -20 dB那就来了, X 可以为0 么? 答案是不行的,因为比值是一个大于0的分数。比如一个数X = 1, 按如上计算, 则为 0dB。2、讲讲原创 2021-09-02 18:47:25 · 4707 阅读 · 0 评论 -
贝叶斯分析思路 通俗讲法
先从一个日常问题入手我们假设 (以下均为假设概率,方便理解没有任何实际意义)A事件为:一个人得癌症。B事件为:一个人吸烟。P(A) 为一个人得癌症的概率。 假设为1%。P(B) 为一个人吸烟的概率。假设为2%。现在你是一名医生,此时一个人来看病,疑似癌症。则根据先验概率(就是上面假设的已知情况),此人得癌症的概率为 1%。 经过你这位老中医一顿望闻问切, 了解到这个人吸烟。现在请问这个人得癌的概率是多少?根据概率算法, 一个人得癌,又同时吸烟,则 P = P(A)*P(B).原创 2021-06-12 23:23:51 · 5039 阅读 · 3 评论 -
服务器扩充后问题总结:Value too large for defined data type
问题描述:服务器扩充后(900G -》 2.7T) , Linux 代码交叉编译出现问题。出现:Value too large for defined data type(eCos产品编译虽然结果不同,但原理应该是一样的)服务器采用了LVM分区,一个LV为2.7T挂载在home目录下,采用xfs文件系统。编译出错日志如下:排除编译权限、代码完整性、依赖环境的问题, 分析可能是扩容后。分析为服务器的文件系统挂载,与编译器之间的兼容性问题:参考资料如下https://w...原创 2021-04-27 14:11:14 · 6494 阅读 · 0 评论 -
autoconf automake使用
cmake 与autoconf automake使用的举例目录一、简介二、示例过程如下1、源文件2、通过autscan命令,产生 configure.scan文件,修改为configure.ac3、执行aclocal,产生aclocal.m4 配置文件4、执行autoconf, 产生configure文件5、执行autoheader 产生config.h.in6、创建Makefile.am文件7、根据情况,创建一些常用的文档文件NEWS README AUTHORS原创 2021-04-18 18:33:01 · 7254 阅读 · 2 评论 -
cmake使用
cmake 与autoconf automake使用的举例目录一、简介二、示例过程1、源文件2、生成CmakeLists.txt3、使用cmake命令生成Makefile编译三、总结一、简介CMake是开源、跨平台的构建工具,在需要编译的目录中,编辑简单的CMakeLists.txt配置文件,即可通过cmake命令来生成Makefile。非常好用。二、示例过程1、源文件在inc目录下为头文件在src目录下为源文件其中编译过程依赖于libm.so.原创 2021-04-18 18:26:50 · 7078 阅读 · 0 评论 -
十 ubus安装编译
ubus是openwrt平台上的一种进程间通信机制,用起来非常方便,且移植性强,符合设计中的迪米特原则,可以异步开发。因此被扩展到很多软件中,通用性好,不用重造轮子,也方便与其它人共同开发。我们自己在Coding过程中,或设计系统框架时,也可以将ubus作为系统的一般机制来使用。目录一、源码包获取1. 源码包可以通过下载openWRT中的源码。2. 或获取ubus的git库3. 或通过下面分享链接 (也是从openwrt里单独提取的,笔者测试过)二、构建过程三、简单测试...原创 2021-03-15 00:18:14 · 15743 阅读 · 8 评论 -
proc文件的简单读写
在开发模块功能时,需要用到一些调试或者传值给模块的方法,最简单的就是构造一个proc文件,然后配置传值或查看 。如下提供了一个简单模板,需要时可以直接复制过去使用。/* Init a test proc file 'btn_test'*/#include <linux/proc_fs.h>static char nvram_query_str[256]={0};static ssize_t btn_test_read(struct file *file, char _原创 2020-11-25 18:12:18 · 19743 阅读 · 0 评论 -
BRCM eCos下的编译及问题
王鑫宇 2015.7.15一、引我们一般编译ecos如下:(1)Make PROFILE=16MB oldconfig(2)MakeOK了,产能了个ecos_lzma.trx 升级就行了。比较奇它是如何产生的,产能的过程,组成的部分。如同Linux下,生成升级文件 ,只需要产生 vmlinuxz-lzma , target.squashfs 再用 BRCM的 trx工具一绑,过程还是很清楚的。但eCos就摸不到头脑了,因为整个eCos就是一个大的可执行文件。最近感觉一直脑袋痛原创 2020-09-06 18:38:46 · 18583 阅读 · 0 评论 -
ecos无线驱动掉线问题解决方案分析
1、无线数据包的主要数据流(从pci总线到phy error)PCIDRVTAB_ENTRYwl_pci_probeàwl_attachnetdev_attachwl_dpcwl_ecos_comm_wlc_dpcwlc_dpc(出现tx phy error)2、出现问题当使用大流量无线数据包冲击路由器的时候,会出现无线掉线丢包严重,甚至掉线问题,(特别是使用迅雷下载)但是正常使用不会出现该现象。3、问题分析分析问题主要是原厂和我方沟通、讨论,最主要的是修改然后验证结果,定位到问题点是大原创 2020-09-06 18:33:34 · 18900 阅读 · 0 评论 -
goahead content-length为0时的问题
gohead问题描述UI将获取扫描无线列表的接口formWifiApScan,由get换成了POST,此时无法获取到数据,通过抓包分析,为webserver未正常及时返回数据,同时看到content-lengthy为0。分析过程今天晚上又与李权跟了一下这个问题,之前良明遇到过,了解了个大概,但还是没完全弄清楚,借这个机会,一起深挖了一下。结果为:处理空悬,未调用注册的回调处理,如果没有超时结束,那么将一直处于此状态,而非循环。几个问题:对于goahead协议状态处理还是不深,socke.原创 2020-08-15 18:18:24 · 19332 阅读 · 0 评论 -
openssl 证书管理
1、 生成密钥openssl genrsa -out usr.key 10242、生成证书请求openssl req -new -key usr.key -out usr.csr -config /var/cert/openssl.cnf3、生成自签发的证书openssl x509 -req -in usr.csr -out usr.cer -signkey usr.key -days 3654、比较csr与证书是否匹配openssl x509 -pubkey -in wxy.cer -noo原创 2020-08-13 16:36:08 · 18510 阅读 · 0 评论 -
Linux下安装PPPOE SERVER
Linux下安装PPPOE SERVER网关研发部:童小琴、王鑫宇安装准备下载pppoe软件包rp-pppoe-3.8.tar.gz(或rp-pppoe-3.10.tar.gz)。 在虚拟机上安装好linux操作系统并且gcc可以正常使用(若不能使用可在软件管理中进行搜索安装)。 画好整体拓扑结构图如下: 上图说明:使用LINUX作PPPOE服务器与使用routeros作PPPOE服务器在网络拓扑上是没有区别的,我们本次是使用eth1网卡连接外网(为...原创 2020-08-07 13:46:40 · 19412 阅读 · 0 评论 -
ubuntu下安装交叉编译的环境脚本
不少同学喜欢使用ubuntu进行嵌入式开发,但缺少不少开发环境和工具,以下为个人多年总结的配置环境脚本,供大家参考。 如sh的配置、vim的配置、smb配置等。可以直接保存为ubuntu.sh ,然后在系统下执行。#!/bin/sh#change /bin/shln -sf bash /bin/sh# add 32 bit support.dpkg --print-architecturedpkg --print-foreign-architecturesdpkg ...原创 2020-07-25 16:02:36 · 18496 阅读 · 0 评论 -
IPv6环境下路由器支持域名登录
问题描述:在IPv6 的环境下,路由器设备默认为桥接模式,域名登录存在访问不了的情况。分析:原来的IPv4环境:浏览器进行IPv4+DNS解析 -----》 符合特定的域名,进行拦截回复----》DNS解析出地址,进行页面访问现在IPv6+IPv4的环境:浏览器进行DNS解析,则会分成如下4类 序号 IP DNS协议 1 IPv4 A(请求IPv4地址..原创 2020-07-09 17:08:05 · 19813 阅读 · 0 评论 -
BRCM SDK 版本IPv6问题
IPv6问题:获取到地址后,ssk进程出现段错误挂掉。打开SSK Debug,在cli命令模式中执行loglevel set ssk Debug很顺利的就定位到挂掉函数,IPv6的配置过程略去。原因为新增加的代码,没有处理好接口地址的获取,即DHCPCv6没有使用IANA字段获取到IPv6的地址,但代码中又去使用这个地址导致。在上级IPv6服务器发的RA报文中,当m标志位为1时,路由器设备才需要请求iana;m标志位为0是直接从ra报文中获取前缀自己生成一个地址;在conns..原创 2020-06-11 22:26:50 · 18363 阅读 · 0 评论 -
安装Sublime Text 支持Go插件
1、安装GO进入GO的国内网站,下载安装https://golang.google.cn/2、环境变更配置重要的是GOROOT 和 GOPATH, 一般安装在C:\GO目录下, 会自动配置GOROOT目录 , 以及在PATH上加入C:\GO\bin3、在命令中进行测试go env 查看环境变更其中GOPATH会在 go install中用到,GO语言会 GOPATH...原创 2020-04-15 09:48:58 · 20637 阅读 · 0 评论 -
XDR3020 WiFi6 11ax使用体验 11ax性能数据
XDR3020是TP推出的一款千兆双频WiFi6路由器,最大的优势是WiFi6,在802.11ax技术发布后,半年内即推出,TP的技术研发、产品生产实力相当强,也算对得起家用网络设备市场老大的地位。千兆双频11AC路由器产品层面大同小异、竞争白炽化,已逐渐为入门级产品。Mesh热潮渐退,11ax的登场,也算带动市场向前。未来EasyMesh、11AX应该是路由器发展的动力、渐为标配。下面就...原创 2020-03-03 19:43:37 · 22360 阅读 · 0 评论 -
一篇文章讲懂Vmware网卡配置,解决常见问题
目录一、搭建环境及背景二、基础知识三、配置过程及注意事项1. Bridged(桥接模式)拓扑示例具体配置如下:注意:应用场景:2. NAT(网络地址转换模式)3. Host-only(主机模式)一、搭建环境及背景Win10 企业版 + VMware 11.1.2其实无论VM多少版本,或在Windows其它版本系统,以下配置均可以适用。本人最开始使...原创 2020-02-14 21:26:02 · 19181 阅读 · 0 评论 -
板子上wget移植
由于系统中使用的是busybox中的wget,命令非常简单,不支持ftp下载,因此考虑移植测试命令:wget ftp://192.168.8.64/image.bin --ftp-user=123 --ftp-password=123下载网址http://ftp.gnu.org/gnu/wget/http://ftp.gnu.org/gnu/ 这是一个非常不错的GNU软件源码下载网...原创 2020-02-04 19:03:05 · 17909 阅读 · 0 评论 -
eCos Mbox机制
背景总结下 ecos mbox这个通信机制。ecos下面的通信机制真的很少,没有信号、消息队列、信号量、unix域…, 当然,我看到里面不少地方用到了 网络socket,如DHCP客户端的开启和关闭。mbox我理解上应该就是Linux下消息队列吧,但是BRCM下面的 rc 中,用到的非常简单,仅仅使用这种机制来传递一个整数,哈哈,真是蛋碎。经过扩展后,能传递字符串了。下面,走进去看下。m...原创 2020-02-03 22:28:32 · 14834 阅读 · 0 评论 -
16位cpu 移位处理
以前和一位交换机的同事看一个问题,是在IC+的一个16位cpu上配置突破口处理的异常的问题:u32 tmp = 0;tmp |= 1<<21;打印tmp的结果为0,非常之不科学。后面发现,修改为:u32 tmp = 0;u32 t = 1;t <<= 21;tmp|=t;打印结果正常。后经过分析,原因为在16位的cpu中,对于 常量 1直接存在 16...原创 2020-02-03 22:16:07 · 14893 阅读 · 0 评论