嵌入式
文章平均质量分 60
被追杀的晨曦
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ARM32平台系统crash(系统崩溃) 问题定位的一种解决方法
ARM32平台系统crash(系统崩溃) 问题定位的一种解决方法,系统崩溃,rtos,liteos,段错误原创 2023-01-06 11:25:51 · 4317 阅读 · 0 评论 -
ubuntu移植编译Google的Protobuf-C以及开发流程
1、移植PC版本的ProtoBuf的相关文件和可执行程序1、获取[Protobuf源码](https://github.com/google/protobuf)2、编译宿主机版本Protobuf软件,因为Protoc-C依赖Protobuf的库文件和头文件(配置编译环境可执行文件)1)下载完源码后,执行./autogen.sh2)生成一个configure可执行程序3)执行./configure --prefix=/homelisx/usr/local/protobuf没有错误输出,生原创 2022-03-29 10:54:18 · 2869 阅读 · 0 评论 -
C进阶---函数宏的封装方式
函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。第一种:#define INT_SWAP(a,b) \ int tmp = a; \ a = b; \ b = tmp但是这种方式作用域在遇到if、while等不使用{}会在第一个分号就结束了。第二种:#define INT_SWAP(a,b)\{ \ int tmp =.原创 2021-07-13 18:54:52 · 718 阅读 · 0 评论 -
__attribute__((section(”XXXX“)))的编译属性---section
__attribute__((section(”name“)))是gcc编译器支持的一个编译特性(arm编译器也支持此特性),实现在编译时把某个函数/数据放到name的数据段中。原创 2021-06-18 19:57:43 · 1744 阅读 · 1 评论 -
FreeRTOS浅析:解决两个任务运行冲突,系统停止一个任务唤醒另一个任务的方法
FreeRTOS中的任务和多线程的概念差不多,但是任务的本质是把时间片无限的切小,小到人分辨不出来,其实还是一个时间只能运行一个任务,这是和多线程的根本区别。FreeRTOS中的任务有几种运行态:如果我正在运行A任务,但是B任务起来的时候我需要把A任务挂起,等B任务结束A任务继续运行,不能冲突。下面是demo。首先运行一个主程序,开启一个任务,里面再开启两个任务extern ...原创 2020-01-16 11:15:14 · 5377 阅读 · 0 评论 -
cmake方式导入第三方.a静态库以及编译库时出现ninja: error: '../../../../src/libs/armeabi-v7a/xxx.a', needed by '../../.
自 android studio 2.2 +后就集成了ndk开发, 自带cmake 编译器. 编写ndk时候,配置很简单。再也不需要用android.mk配置文件。如果要添加第三方的xx.a链接库通常把第三方提供的h文件夹,放在cpp的include里面。这是规范,不是必须。我的就没放,而xxx.a库放在/src/main/libs/armeabi-v7a/目录下。本文章以添加li...原创 2019-09-03 14:41:20 · 14871 阅读 · 2 评论 -
AudioTrack的使用
AudioTrack 一般用来实现播放原始音频数据(PCM)public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode); /** 默认声音 **/public static ...原创 2019-09-03 14:32:36 · 1096 阅读 · 0 评论 -
I2C驱动框架时序以及运用(可直接移植)
最近运用SN7326做了一个I2C驱动,由于没有多的I2C,所以用GPIO口模拟了I2C来通信,做一个记录,便于以后复习运用。I2C最麻烦的就是时序问题,调试起来有点困难,最好是按照标准时序来调试,不然 会出现一些莫名其妙的错误,比如收到的数据为0xFF,比如没有ack回复,收不到数据等等。 下面这是I2C时序图:大概的原理是这样的,I2C一般是两根线,一根是SCL,一根是SDA...原创 2019-05-14 15:01:32 · 2201 阅读 · 0 评论 -
配置和编译Santiago内核(nxp4330平台)
把stash文件夹拷贝到Leapfrog目录下1.先进入Leapfrog/stash路径.2.输入命令行cd3.然后./setup_santiago_build4.cd stash5.cd linux-3.4.396.之后输入配置脚本./build_santiago.sh如果在输入脚本编译的时候出现以下错误:root@SZPST72-42:~/Leapfrog/sta...原创 2018-06-06 10:28:52 · 570 阅读 · 0 评论 -
santiago机器用DFTP连接PC上传、下载和挂载文件
连接机器,串口 和usb口lcd d:\bogota\deploy : 到PC端要发送到机器的文件所在的目录stor uImage-3.4.39 : 把文件发送到机器bogota的根目录stor modules-3.4.39.tar : 把文件传到bogota的根目录Retr ./a.out : 把机器bogota目录的文件下载 到串口挂载PC发送给sant...原创 2018-11-23 09:14:39 · 307 阅读 · 0 评论 -
Linux挂载(mount)命令例程
我们经常在服务器上编译完kernel之后需要把文件复制到机器上运行,但是linux不能直接复制,所以需要挂载在机器上才能复制,这就需要mount命令:mount命令格式: mount [-t vfstype] [-o options] device dirmount参数很多,下面是其中一些,1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型...原创 2018-11-08 11:13:00 · 485 阅读 · 0 评论 -
初学者关于linux深入学习的路线(kernel和linux应用)
1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S.Tanenbaum 写的那本。以MINIX为例子讲解操作系统的概念。2.非常推荐,还有一本基础教材叫做Linux内核情景分析。下面是看这本书的建议: (1) 首先重点阅读“第1章预备知识”和“第2章存储管理 ”这两章,特别是对于不太熟悉X86架构和段式/页式内存管理的读者。这不仅是因为这两章奠定...原创 2018-10-18 17:24:16 · 8803 阅读 · 0 评论 -
linux下c++运行shell获取返回值
c++中运行shell脚本一般有三种方法,分别是system、exec和popen,都是调用/bin/sh来执行参数指定的命令,/bin/sh 一般是一个软连接,指向某个具体的shell,比如bash,-c选项是告诉shell从字符串command中读取命令; 在该command执行期间,SIGCHLD是被阻塞的,好比在说:hi,内核,这会不要给我送SIGCHLD信号,等我忙完再说;...原创 2018-08-08 18:32:44 · 4750 阅读 · 1 评论 -
ubuntu系统GCC编译器4.84升级到4.94
因为ubuntu本身自带的gcc编译器早版本太低只有4.84,导致项目中的sscanf_s函数库中没有,所以编译不通过报错,只有c11以后的库中才含有这个函数,所以需要升级gcc版本。看gcc版本输入命令行gcc -v可查看,检测自己的库版本是多少可以用检测程序:#include<iostream> #include<cstring> #include<cctyp...原创 2018-06-25 14:39:50 · 1459 阅读 · 0 评论 -
关于1946 ILI2117A触摸屏驱动的移植和修改
TP芯片的log打印路径是在kernel\drivers\input\touchscreen\ilitek_drv_common.h里1022行#define CONFIG_TOUCH_DRIVER_DEBUG_LOG_LEVEL (0) 的这个宏,1代表log打开,0代表log关闭.触摸屏的触点位置和显示位置正好相反,因为厂家主要供应手机厂商,所以分辨率为1024*600,X为600,Y为102...原创 2018-06-04 17:52:57 · 2780 阅读 · 1 评论 -
烧写Firmware-Mfg-emmc.lfp步骤
1.把文件下载下来存放在文件夹.2.由于设备号不匹配,所以需要修改设备号,mfgdata get bid16,会打印出来设备号0x7013.修改至匹配的0x401,需要输入命令mfgdata set bid 0x4014.再打印就会出现0x401显示已经修改成功.5.reboot重启机器.6.在OmegaTerm.exe中把Firmware-Mfg-emmc.lfp烧写进去(与烧写mf...原创 2018-05-11 11:15:54 · 759 阅读 · 0 评论 -
kernel.img内核的制作和烧写
1.首先进入到/mnt/sdc1/he0809/rk/20180105_1102/git-InnoTab_3in1路径中2.编译命令在makeimage_TVBOX_eng.sh脚本中,可以打印cat ./makeimage_TVBOX_eng.sh看一下命令3.然后cd ./kernel/4.rm ./kernel.img5.在此目录下make rk3168_box_rk616_8723au_d...原创 2018-04-26 09:51:31 · 4765 阅读 · 0 评论 -
Android.bin文件的加密操作
1准备脚本mksqfs放入mksqfile_newmksqfs的脚本命令行如下:chmod -R 777 $1rm -rf $2*mksquashfs $1 $2.temp./encryption $2.temp $2 e toolchmod 777 $2rm -rf $2.temp命令行原理:先对传递进来的一个参数,也就是文件夹进行权限升级到最高,然后调用mksqua...原创 2018-04-09 15:29:22 · 1820 阅读 · 0 评论 -
Android编译系统执行文件步骤
1.首先登入linux系统把权限升到root才能编译,不然后面会报错没有那个权限,命令为:sudo -s2.然后进去到脚本所在的当前路径,我的路径为root@vtech:/mnt/sdc1/he0809/rk/20180105_1102/git-InnoTab_3in1# 3.再配置安卓的编译环境,如果不记得命令在 makeimage_LOG_SU_PIANO.sh的脚本中有命令参照 然后执行...原创 2018-04-09 15:12:08 · 397 阅读 · 0 评论
分享