
嵌入式软件
coding梦想_起点
自从chatGPT发布以后,大胆预测一下,纯软件的码农是没有前途的,被替代是迟早的事。
不仅软件,还要精通硬件、结构、成本控制等等等等。。。
csdn不会再更新了,10年时间验证下来,这个平台不值得哦
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mplayer 5.0 编译错误
【代码】mplayer 5.0 编译错误。原创 2022-10-26 08:58:17 · 439 阅读 · 0 评论 -
ubuntu 18.04(Linux Mint 19.3) 降级安装perl-5.22.4
由于需要openwrt 15.05编译环境需要用到低版本的perl工具,但是如果默认sudo apt-get install perlbrew安装,就会安装最新版本的perl,导致编译低版本的openwrt,编译不过去会出错,所以需要安装perl-5.22.4来解决1.安装perlbrewLinux Mint(19.3)直接安装perlbrew:$sudo apt install perlbrew2.默认安装的perlbrew版本太低,需要更新perlbrewwget https://raw原创 2022-03-25 08:52:00 · 3443 阅读 · 0 评论 -
svn(subvision)在ubuntu 16.04编译安装
很多人都知道svn在ubuntu的安装方法,一条指令就搞定apt-get install subversion ,但是这种方式直接安装的版本是1.9.3太低,有很多bug,其实可以通过编译方式进行安装最新版本subversion-1.14.1下载最新版本下载地址:http://subversion.apache.org/download/#recommended-releasesubversion-1.14.1.tar.gz编译步骤下载后解压进入subversion-1.14.1目录,.原创 2021-10-31 15:31:56 · 622 阅读 · 0 评论 -
使用mbedtls实现文件以及字符串的AES加密
由于mbedtls主要支持TCP的TLS传输实现,由ARM公司加持,目前这个库的代码质量非常高,也可以用在其他加密解密领域,比如AES、DES、chacha20等加密,当然和libsodium实现互补,有些实现也必须用libsodium更好一些,不过这两个库的代码质量都很高。示例代码展现了AES-256-ECB的加密如何使用,由于库里面有很多加密支持,可以参考mbedtls github原始代码的cipher_wrap.c实现,这里面实现了统一API封装,方便使用,只需要初始化时给出对应的类型参数,即可.原创 2021-08-21 15:27:21 · 3542 阅读 · 1 评论 -
利用mbedtls库实现md5计算校验
由于mbedtls主要支持TCP的TLS传输实现,由于ARM公司加持,目前这个库的代码质量非常高,也可以用在其他领域,比如md4、md5、sha1、sha256等等的计算实现,非常方便,这里给出计算md5的示例代码example1注释给出计算字符串的md5,example2注释给出计算某个文件的md5,非常方便#include <stdio.h>#include <stdlib.h>#include <string.h>#include "mbedtls/n.原创 2021-08-21 11:54:05 · 2223 阅读 · 0 评论 -
sqlcipher for openwrt
默认openwrt并没有sqlcipher的package包,网上介绍的都是单独编译很麻烦,这里给出openwrt环境下的快速编译方案,关于sqlcipher的介绍参考官方仓库地址先创建openwrt/package/libs/sqlcipher目录,同时在.config新增CONFIG_PACKAGE_sqlcipher=y选项再创建对应Makefile,内容如下## Copyright (C) 2006-2020 OpenWrt.org## This is free software,原创 2021-03-27 09:29:31 · 459 阅读 · 0 评论 -
CC2530/CC2538 TI zigbee协调器只有Update Device入网困难bug
目前zigbee领域最稳定的方案仍然是TI的CC25xx方案,没有之一。很多人可能遇到类似问题,CC2530/CC2538 ZNP工程,已经定义了宏TP2_LEGACY_ZC,用于协调器兼容旧zigbee设备(1.2协议)。复现步骤,网络内第一个ZR直接可以入网,第二个ZR通过中间ZR也可以入网,有Update Device之后ZC立马回复Tunnel Transport Key,可以入网,第三个设备通过中间ZR基本无法入网,中间ZR给ZC发送了Update Device,没有任何反应,导致入网失败,之.原创 2021-02-07 09:10:19 · 1044 阅读 · 0 评论 -
openwrt加入leveldb包编译
升级openwrt的cmake工具版本由于标准openwrt发行版没有带leveldb包,需要自己加入,首先openwrt 的cmake 版本必须在3.1.13版本往上。升级cmake方法,修改openwrt/tools/cmake/Makefile如下,同时删掉patchs目录## Copyright (C) 2006-2014 OpenWrt.org## This is free software, licensed under the GNU General Public License原创 2020-10-23 09:31:00 · 551 阅读 · 0 评论 -
secureCRT 7.3.6 winxp版本
secureCRT新版本已经不支持winxp系统了,很多地方找不到适合winxp的版本,另外很多地方下载到的secureCRT注册_机经常报毒,这里给出某度云的链接,带有注册_机无毒secureCRT 7.3.6 winxp,提取码:2pn3...原创 2020-10-17 10:00:17 · 1671 阅读 · 1 评论 -
awtk GUI arm-linux交叉编译CMakeLists.txt实现
openwrt DIY需要,发现原始的W9751G6KB只有64MB内存,想找一颗128MB的pin2pin内存替换上去,经过对比,发现W972GG6KB可以替换,也是128MB,引脚都对的上,只有一个引脚对不上,搜了一下,某宝才3块多钱,谨慎起见,买了6个,经过实际测试,完全可以点亮...原创 2020-06-13 17:26:10 · 1223 阅读 · 1 评论 -
EFR32 zigbee SDK协议栈EmberZnet 使用和下载
最近需要评估一下Silicon Labs zigbee的方案,去官网下载zigbee SDK,发现芯科的做法和其他几家公司不太一样,不直接提供SDK包的下载,取而代之的是必须先拿到开发板,然后用序列号注册之后才能下载,不然只能安装Simplicity Studio开发工具,不能直接下载zigbee的SDK。这里方便其他人用于评估,提供一下某度云的链接,提取码:yy8v ,目前EmberZ...原创 2020-05-05 21:24:03 · 2190 阅读 · 5 评论 -
mtk7688AN openwrt15.05 编译错误undefined PPPOX_ZOMBIE
将以下内容命名为1000-remove-pppoe-PPPOX_ZOMBIE.patch,并放入/target/linux/ramips/patches-3.18目录,重新编译会自动patch--- a/drivers/net/ppp/pppoe.c+++ b/drivers/net/ppp/pppoe.c@@ -313,7 +313,6 @@ static void pppoe_flu...原创 2020-04-28 13:15:52 · 357 阅读 · 0 评论 -
beaglebone black 编译buildroot和kernel(SD启动和emmc烧写方法)
网上其他教程十有八九各种问题,这个教程应该没有任何问题,国产版的没有emmc的请绕道buildroot编译方法:下载最新版本buildroot1、修改buildroot/configs/beaglebone_defconfig内容如下:BR2_arm=yBR2_cortex_a8=yBR2_TARGET_GENERIC_GETTY_PORT=“console”BR2_GLOB...原创 2019-12-31 18:58:13 · 3144 阅读 · 2 评论 -
beaglebone black buildroot启动后提示can't open /dev/ttyO0: No such file or directory
启动后一直打印can’t open /dev/ttyO0: No such file or directory,无法进入系统解决方案在buildroot的make menuconfig里面,在System configuration > Run a getty,将ttyO0改为console,重新编译buildroot,完美启动...原创 2019-12-31 12:38:11 · 1745 阅读 · 0 评论 -
beaglebon black 交叉编译工具链
刚开始我以为在ubuntu 16.04下面直接安装这个工具链sudo apt-get install gcc-arm-linux-gnueabi就可以了,后来buildroot提示不能使用最后编译内核的时候,从地址里面找到了地址,见下面wget -c https://releases.linaro.org/components/toolchain/binaries/6.5-2018...原创 2019-12-08 20:54:24 · 431 阅读 · 0 评论 -
CC2652R TI-RTOS平台实现key down/key up 按键长按效果
由于TI的hal_key.c的实现比较简陋,上层只能收到key down消息,没办法收到key up消息,也就是只能收到按键按下消息,没办法收到按键弹起的消息,所以对于需要实现长按某个按键实现指定功能来说,基本上没办法实现。实现按键长按的原理非常简单,大概是这样的,在按键按下的时候,增加一个timer来计时,在按键弹起的时候,如果timer没超时,则删掉。然后在timer超时的回调函数里面...原创 2018-12-20 19:00:29 · 1125 阅读 · 0 评论 -
TI Z-Stack_Linux_Gateway-1.0.1-src 找回丢失的zstack.proto和server.proto
Z-Stack_Linux_Gateway-1.0.1-src是TI在AM335x平台开发的Zigbee Linux Gateway参考程序,目前是开放源代码状态,但是缺少了一些组件。由于TI出于某些目的,在开放源代码的时候,故意删去了这两个重要的文件,这两个文件用于protobuf-c生成源代码使用,TI只给出了最终的源代码,并没有给出.proto文件,对于那些想在此基础上修改成员变量的...原创 2018-09-20 19:52:28 · 429 阅读 · 0 评论 -
rng-tools 在arm linux(uclibc 库)上实现交叉编译 用于解决linux系统熵严重不足的问题
由于使用tunnel隧道工具进行加密传输,但是运行的时候,提示系统熵不足,导致程序无法运行,解决方法就是使用rng-tools的rngd来自动增加系统的熵,尝试了rng-tools交叉编译,发现只支持GNU libc版本的arm-linux-gnueabi-gcc,并不支持uclibc版本的arm-linux-gcc交叉编译,所以重新修改了实现。如果直接使用原版本编译 rng-tools ...原创 2018-10-14 19:07:23 · 3543 阅读 · 3 评论 -
EFM8SB10 芯科单片机 电容触控调试记录
开发IDESimplicity Studio v4.0注意事项: 由于flash空间限制,所以cslib电容触控支持库,只能在4KB flash以上的MCU上运行,比如EFM8SB10F2G-A-QFN20根本就烧不进去,只是silicon的flash programmer比较愚蠢,明明是firmware的尺寸已经大于flash本身了,也不提示,表面上看是烧写成功了,其实无法正常触控。...原创 2018-10-09 09:14:08 · 2243 阅读 · 2 评论 -
交叉编译monit在openwrt 18.06.1 MTK7620上监控kcptun
由于go写的kcptun比较烂,运行一段时间总是莫名其妙的崩溃,所以一直想找一款可以监控其运行的工具,如果是在ubuntu上可以直接使用supervisor来监控,但是这工具是python写的,在openwrt路由器平台上,flash限制根本跑不了python环境,尝试过两次失败了,还是32M的 flash,很多都只有8M/16M最后找到了monit工具来代替supervisor,目前测...原创 2018-12-01 18:20:17 · 1656 阅读 · 0 评论 -
protobuf-c 只有.c .h源文件没有.proto文件能否恢复.proto文件呢
答案是肯定的,只是想从proto-c生成的源文件恢复.proto描述文件,目前还没有自动化的工具,必须人去识别并恢复.proto文件我们知道,.proto文件里面由enum枚举类型和message消息体组成,message里面可以嵌套enum或者另外一个messageenum枚举类型,和一般的C语言定义枚举类型没什么两样,message的字段修饰由三个关键字来描述,分别是requir...原创 2018-09-18 09:22:04 · 1586 阅读 · 0 评论 -
protobuf 三个关键字required、optional、repeated的理解
required关键字顾名思义,就是必须的意思,数据发送方和接收方都必须处理这个字段,不然还怎么通讯呢optional关键字字面意思是可选的意思,具体protobuf里面怎么处理这个字段呢,就是protobuf处理的时候另外加了一个bool的变量,用来标记这个optional字段是否有值,发送方在发送的时候,如果这个字段有值,那么就给bool变量标记为true,否则就标记为false,接收方...原创 2018-09-18 09:00:25 · 74528 阅读 · 6 评论 -
zigbee 3.0入网Ubiqua Zigbee Analyzer抓包分析
整个入网分析: 首先,0x0000地址是协调器的地址,使能入网开关,Mgmt Permit Joining Req:120,持续120s内网络处于开放状态。 其次,节点开始入网,并发出Beacon Request,然后发出Association Request,协调器相应Association Response:Success。 最后就是发送network key 到节点,然后一步一步就成功...原创 2018-08-02 09:23:52 · 4259 阅读 · 1 评论 -
联通物联卡 显示“已停用”
经过几次测试,可以确定,首次安装的设备,运营商会记住ICCID和对应的IMEI,如果后面更换了设备,就会出现IMIE不一样的问题,运营商就会对物联卡进行锁定,查询状态就会出现“已停用”。虽然可以重新激活卡片,但是总不是很方便,难道就不能像手机卡一样自由更换设备了吗。运营商这样做的目的很简单,就是为了保护用户的权益,防止卡片被终端用户拔掉换别的手机上偷偷使用流量。但显然和灵活性背道而此,...原创 2018-08-09 10:06:03 · 14338 阅读 · 2 评论 -
TI simpleLink CC26x2 ICALL 技术到底是个什么东西?
阅读simpleLink MCU工程源码的过程中,遇到一个叫做Icall的东西,具体是干什么用的呢? 原来就是个中间件(middleware),做过C/C++跨平台开发的人,都知道,要想实现跨平台,必须使用平台无关的API来进行开发,否则一定会遇到移植到其他平台无法使用的问题。java技术之所以能做到一次开发,到处运行,原因就是有一个JVM的东西,作为平台和application的中间件,...原创 2018-05-23 13:47:13 · 2837 阅读 · 0 评论 -
TI CC2530 CC2538 zigbee source routing机制的有效利用(加快单播指令的发送,解决单播丢包问题)
很多人开始对于source routing是十分迷惑的,加之TI的FAE很多时候人力有限,所以会产生很多疑问,既然都有路由表了,怎么还会有个叫做source routing,这些东西不是凭空产生的,都是有产生的历史背景的。 通过对Z-Stack 3.0 Developer’s Guide.pdf文档的阅读,我们发现,source routing作为zigbee PRO协议栈...原创 2018-04-29 18:56:21 · 2079 阅读 · 5 评论 -
zigbee Z-Stack 3.0.1 利用广播的方式修改信道
TI的zigbee协议栈的默认信道是11,如何快速修改为15信道呢?方法就是给0xFFFF发送广播,来进行修改。调用MTsys.c里面提供的MT_ZdoMgmtNwkUpdateRequest函数,给出合理的参数,ZNP上会自动发送广播给所有节点之后,然后再修改自己的信道。最后所有节点都完成了信道的修改。MgmtNwkUpdateReqFormat_t req;req.DstAddr...原创 2018-05-11 18:36:41 · 1646 阅读 · 1 评论 -
IAR warning Pe177 如何抑制
如果有未使用的函数,或者变量,IAR编译的时候就会提示Warning[Pe177],直接按照如下用#pragma抑制掉既可#pragma diag_suppress=Pe177 // never referenced function#pragma diag_suppress=Pe550 // never used variable...原创 2018-04-25 12:50:37 · 3188 阅读 · 2 评论 -
CCS编译CC2652R SDK sample太慢怎么办?
再怎么优化都是没用的,办法只有一个,就是更换IAR for ARM,编译连接速度比CCS快100倍不止,TI基于eclipse开发的CCS就是个鸡肋,好在TI同时还提供了IAR版本的工程。...原创 2018-12-23 14:52:38 · 1690 阅读 · 2 评论 -
CC2652R 支持OTA zed_switch_ota示例程序用IAR编译运行不了
原因有几个CC2652R 如果支持OTA,需要外部spi flash,如果板子上没有外部flash,OTA的bootloader BIM就跑不起来,需要外部加flash,推荐型号MXIC宏旺的另外IAR编译的速度明显比CCS快,如果用IAR编译,因为缺少post-build command脚本,所以直接编译出来的.hex烧写进去是运行不了的。要在post-build command里面添加...原创 2018-12-24 12:57:36 · 1033 阅读 · 0 评论 -
SE4750 二维软解码在德州仪器Omap3平台的调试
1、在调试完成SE4500的二维软解之后,调试SE4750 parallel接口,只需要修改两个参数,分别是://#define SE4500_SENSOR_WIDTH 752//#define SE4500_SENSOR_HEIGHT 480#define SE4500_SENSOR_WIDTH 1360#define SE4500_SENSOR_HEIGHT 9602原创 2016-04-16 09:43:09 · 2636 阅读 · 8 评论 -
MSP430FR2433 用driverlib方式 SPI调试记录
由于MSP430FR2433红板子搞活动,弄了几块玩玩,发现网上很多MSP430系列的SPI很多都使用普通的GPIO模拟SPI,很少有说如何使用driverlib来操作GPIO的,MSP430本身就支持SPI,为何费劲要用GPIO模拟呢?MSP430系列TI提供了driverlib方便用户进行开发,driverlib是对标准的寄存器操作进行了二次封装,用户只需要调用API就可以了,非常方便...原创 2019-06-30 12:30:35 · 2084 阅读 · 2 评论 -
syncthing relay中转服务器客户端SyncTRayzor如何使用?
问?既然会自动relay,为什么要自己搭建relay中继服务器呢,原因是syncthing自带的中继服务器,速度实在是太慢了,如果自己能在openwrt上搭建一个中继服务器自己用,岂不是完美?关于如何搭建自己的relay服务器,见搭建和配置Syncthing发现和中继服务器主要遇到的问题是,搭建好strelaysrv中继服务器以后,客户端怎么使用呢,一般用户都用的windows的客户端...原创 2019-06-13 19:37:10 · 6295 阅读 · 0 评论 -
secureCRT设置自动登陆并cd到指定目录(100%成功)
需求是,每次需要在secureCRT里面登录到ubuntu虚拟机,然后进入到工作目录进行编译,每次打开都要cd整个路径才能进到指定目录,有没有办法能在登录那一瞬间自动切换到指定目录呢,参考了这个链接,有些地方说的不清楚没成功过,后来灵机一动找到问题了,看下图:...原创 2019-05-31 10:09:12 · 1745 阅读 · 1 评论 -
HT42B534 MSOP-10 USB转TTL芯片只能工作在115200,9600波特率,无法工作在1000000bps波特率
刚用这颗芯片,目前使用的版本是Holtek_USB_Bridge_ProgramV102Build20190319Install.zip,win10原装版电脑。发现Holtek USB Bridge Program里面的VID和PID可以修改成功,但是USB TO UART标签里面的波特率始终无法修改成功,发过去55 aa 00 ff也没有任何响应,直接提示失败,第二次之后就一直提示成功...原创 2019-05-28 10:38:12 · 3570 阅读 · 3 评论 -
*.zpscfg扩展名文件是什么格式,如何打开?
这是个超级冷门的内容,原因这个扩展名格式是NXP zigbee平台开发的配置文件,本来做NXP开发的人就是个位数,默认的BeyondStudio for NXP是打不开这个文件的,NXP的IDE是基于eclipse开发的,那如何打开呢,就需要安装一个eclipse插件。点击Help->Install New Software->Add->Local,选择C:\NXP\bs...原创 2019-05-23 20:36:15 · 1434 阅读 · 2 评论 -
curl实现自动重启飞鱼星VW1900路由器
由于公司的VW1900路由器固件实在太烂,目前只连接LAN口,工作在桥接模式,但就是这样,连续工作几十天之后,2.4G网络异常缓慢,重启之后就自动恢复正常了,但是桥接模式下,路由器无法获取ntp时间,定时重启就失效了。解决办法就是局域网内另外一台跑openwrt的路由器可以利用crond定时任务,定时通过curl来给这台VW1900发送重启指令。万能的openwrt再次佩服。经过几次测试,...原创 2019-05-23 17:19:17 · 1409 阅读 · 0 评论 -
openwrt编译提示version `GLIBC_2.27‘ not found错误
ubuntu 16.04 openwrt 17.01 交叉编译应用程序,提示如题错误,原因是glibc版本太低了,ubuntu16.04最爆只支持glibc 2.23版本,网上有很多人说可以升级glibc纯属扯淡,因为很多系统级应用要依赖glibc,一旦升级很多app就崩溃了。解决方法只有一个,那就是升级系统,把系统从16.04升级到最新的18.04.2就没有问题了,我们输入如下命令看一下...原创 2019-05-19 19:20:14 · 19034 阅读 · 3 评论 -
CC2652R ZigBee OTA 调试记录 改为支持 AT25DF041B 512KB flash
TI原始的参考设计,使用了一颗宏旺微电子的 MX25R8035F,容量是1MB的,优点就是宽电压,缺点价格偏贵,零售价都在7RMB左右,而且很多代理商都缺货,所以不得不考虑更换其他品牌的,刚好Adesto有一颗非常适合,就是AT25DF041B,UDFN的封装体积很有优势。CC2652R的OTA分为on-chip和off-chip两种方案,on-chip就是OTA直接下载到芯片内部,目前S...原创 2019-04-05 23:53:57 · 879 阅读 · 2 评论 -
CC2652R Zigbee 利用串口输出log方便调试代码
由于IAR或者CCS的断点调试很多时候无法真实显示变量以及内存地址的数据,这是因为编译器优化的原因造成的,如果去掉了所有优化,有时候因为编译出最终firmware太大的原因,TI-RTOS某些功能也无法正常运行。方法就是利用串口输出log,就像我们在linux平台利用printf打印到标输出一样,在这里先去掉BOARD_DISPLAY_USE_UART宏,TI之所以定义这个宏,就是解决没有...原创 2019-04-04 09:52:01 · 1779 阅读 · 0 评论