自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (5)
  • 收藏
  • 关注

原创 stressapptest参数详解

stressapptest

2022-08-26 11:17:49 2614 1

原创 E: Sub-process /usr/bin/dpkg returned an error code (1)

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bksudo mkdir /var/lib/dpkg/infosudo apt-get updatesudoapt-get install -fsudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bksudo rm -rf /var/lib/dpkg/infosudo mv /var/lib/dpkg/info.bk /var/lib/dpkg/info

2021-12-20 09:25:57 1774 1

原创 常用的tar指令

(对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如 gzip 和 bzip 等)进行压缩和解压)-c :新建打包文件-t :查看打包文件的内容含有哪些文件名-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x 不能同时出现在同一条命令中-j :通过 bzip2 的支持进行压缩/解压缩-z :通过 gzip 的支持进行压缩/解压缩-v :在压缩/解压缩过程中,将正在处理的文件名显示出来-f filename :filenam

2021-11-16 11:37:06 644

原创 常用的grep指令

-i:忽略大小写-c:只输出匹配行的数量-l:只列出符合匹配的文件名,不列出具体的匹配行-n:列出所有的匹配行,并显示行号-h:查询多文件时不显示文件名-v:显示不包含匹配文本的所有行-w:匹配整词-x:匹配整行-r:递归搜索...

2021-11-16 11:35:06 625

原创 Secure CRT串口工具log打印时间点

在下列位置添加:%Y%M%D_%h:%m:%s 此时通过串口还是没办法看到时间点,只能在你保存的文本中看大log的时间点。打开保存的文本:

2021-06-22 14:50:43 2928

原创 写一个最简单的Makefile文件

1.写一个最简单的Makefile文件了解程序的编译流程:预处理 编译 汇编 连接gcc -E ***.c -o ***.igcc -S ***.i -o ***.sgcc -c ***.s -o ***.ogcc ***.o -o ***.elf此时我们从上面的过程来理解出一种思想:***.i 依赖 ***.c***.s 依赖 ***.i***.o 依赖 ***.s***.elf 依赖 ***.o操作:a.创建一个hello.c文件b.创建一个Makfile文件Makefile

2021-04-23 14:35:00 524

原创 vim(ubuntu) 编辑文件main函数补全操作

补全的修改:vi ~/.vim/snippets/c.snippets:71行是一个折叠的代码,使用键盘的z o 69 # main() 70 snippet main 71 #include <stdio.h> 72 73 int main(int argc, const char *ar

2021-04-06 11:18:37 2627 2

原创 printf打印数据打印格式

%c 字符%d 整数%ld 长整形%lld长长整形%f 实型 (默认是小数点后六)%.3f (小时小数点后三位)%g 实型 (显示小数点后的有效位)%Lf 显示long double%s 显示的是字符串%o 显示八进制%#o 显示八进制并显示前缀%x 显示16进制%#x 显示16进制的数并显示前缀...

2021-04-06 11:11:57 303

原创 error while loading shared libraries: libjson-c.so.4: cannot open shared object file: No such file

错误:/bin/linkplay_ota: error while loading shared libraries: libjson-c.so.4: cannot open shared object file: No such file or directory好几个项目公用一套代码,但每个项目会有差别。其他工程师在改项目代码时在自己单独的宏定义xxx.mk 文件中加入了一些库文件:PRODUCT_COPY_FILES += vendor/linkplay/common/json-c/a98/li

2021-02-03 10:09:06 1519 3

原创 Bonjour Service

1.Bonjour概念:为什么会出现Bonjour?在过去的二十年中,计算机逐渐从平台特定的协议(如AppleTalk,IPX和NetBIOS)过渡到了Internet协议(IP)。大多数计算机和其他网络设备都使用TCP / IP进行通信。但是,在此过渡过程中,丢失了一项功能-能够将设备添加到本地网络,然后从计算机和网络上的其他设备连接到那些设备的功能,而这些功能几乎不需要进行任何配置。为了使IP设备正常工作,每个设备都需要一个唯一的地址,无论该地址是由DHCP服务器动态分配还是手动分配...

2021-01-13 17:45:07 5492 1

原创 mDNS 协议服务

最近有机会要学习一下mDNS 协议,查阅了几天相关的资料,并且带着一些问题进行学习理解,分享一下自己的总结理解,可能有诸多不足之处,还请谅解。1.什么是mDNSmdns 即多播(组播)dns(Multicast DNS),mDNS主要实现了在没有传统DNS服务器的情况下使局域网内的主机实现相互发现和通信,使用的端口为5353,遵从dns协议,使用现有的DNS信息结构、名语法和资源记录类型。并且没有指定新的操作代码或响应代码。在局域网中,设备和设备之前相互通信需要知道对方的ip地址的,大多数情况,设备

2021-01-07 11:18:09 6440 3

原创 Ubuntu使用vim打开文件时自动显示行号

当我们Ubuntu时,大部分使用vim打开文件时文件内都会自动默认显示行号,但是也有极个别的新搭建的环境使用vim打开文件时不会自动显示行号,这时就需要我们去设置一下,步骤很简单,只需两步:第一步:在终端显示如下命令进入vim配置文件第二步:在适当的位置加入set nu 命令,(注意不要按照他们的格式加,会被注释掉,不会起作用),设置完后wq保存退出即可,即可正常使用,如下:如果成功,请点击一个小赞噢!...

2020-10-20 16:41:55 1047

原创 adb常用命令

adb -d 指示命令到唯一连接的USB设备如果有多个USB设备存在,则返回一个错误adb -e 将命令定向到唯一正在运行的仿真器如果正在运行多个仿真器,则返回错误。adb -s <serial number> 使用以下命令将命令定向到USB设备或仿真器给定的序列号,覆ANDROID_SERIAL环境变量adb -p <peoduct name or path> 简单的产品名称,例如sooner或产品的相对/绝对路径out目录,例如“ out / target / pr...

2020-09-28 21:41:33 790

原创 repo 常用命令

最常用的repo命令:repo abandon xxx 删除xxx分支repo branch 查看当前分支repo branch 查看所有分支repo checkout 切换分支repo cherry-pickrepo diff 显示提交树和工作树之间的更改repo diffmanifests 清单差异repo download 下载并切换到repo grep 打印匹配的行模型repo info 获取有关的分支清单、当前分支或未合并的分支信息repo init 在当前目录中初始化rep

2020-09-28 20:52:02 3108 2

原创 Ubuntu之python3.6版本安装

本人已验证可以,之前照着网上其他的装,总是报错,这次竟然成功了,连接在下方:https://www.cnblogs.com/NolaLi/p/12690499.html

2020-09-24 15:53:50 199

原创 IO进程之创建一个线程

#include <stdio.h>#include <pthread.h>void *my_thread(void *arg) // 回调函数 call back{int num = 5;while(1) { printf("func %s %d \n", __func__, __LINE__); sleep(1); num--; if(num == 0) break;}return NULL; // 线程退出 }int main(

2020-09-22 18:21:32 140

原创 c语言之选择排序

选择排序法:#include <stdio.h>#define N 5int a[N];void show_data(){int i;for(i=0; i<N; i++){printf("%d\t",a[i]);}puts("");}void input_data(){int i;for(i=0; i<N; i++){ printf("please input %d number > ",i+1); scanf("%d",&a[i]);

2020-09-22 18:19:28 128

原创 《c语言》之“冒泡排序”

冒泡排序法:#include <stdio.h>#define N 5int a[N];void show_data(){int i;for(i=0; i<N; i++){printf("%d\t",a[i]);}puts("");}void bubble_sort(){int i,j,temp;for(i=0; i<N-1; i++){for(j=0; j<N-1-i; j++){if(a[j]>a[j+1]){temp = a[j]

2020-09-22 18:18:39 122

原创 嵌入式简历技术描述(适用于应届生、刚转行的)

简历技术描述专业技能有思路,有逻辑一行只体现一条技能/*可以以掌握的程度熟练或熟悉-》掌握或会-》知道或了解*//*应用层到底层编程语言-》数据结构-》io进程(操作系统)-》其他常用API(socket、sqlite3、cgic)-》工程管理-》arm和单片机(裸机开发的技能)-》系统移植-》驱动开发-》硬件-》一些开发工具*/熟练掌握Linux下的C语言编程会使用C++实现简单的QT界面开发了解Java熟悉ARM汇编、Shell程序设计了解SQLite、Mysql

2020-09-22 18:16:05 23123 7

原创 嵌入式工程师面试题汇总(应届、转行)

面试题汇总一 . C基础gcc编译器编译的完整流程,分别有什么作用?答:预处理、编译、汇编、链接。预处理:头文件的展开/宏的替换/去掉注释/条件编译。编译:检查语法,生成汇编。汇编:汇编代码转换成机器码。链接:链接到一起生成可执行文件。什么是回调函数?答: 回调函数是一段可执行的代码段,它作为一个参数传递给其他的代码,其作用是在需要的时候方便调用这段(回调函数)代码。地址能否使用printf函数中的 %u形式打印?答:不能。无论是不是unsigned,内存中存储的char类型的值

2020-09-22 18:13:34 12221 2

原创 c高级常见笔试题

c高级常见笔试题枚举与# define宏的区别有哪些?枚举与宏的概述(1) 枚举:是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内(2) # define宏定义是用一个指定的标识符来代表一个字符串枚举与# define宏的区别(1) 在编译器中可以调试枚举变量,不能调试宏常量(2) # define宏常量是在预编译阶段进行简单替换。枚举常量则是在编译的时候才确定其值(3) 枚举可以一次定义大量相关的常量,而# define宏一次只能定义一个空结构体所占的内存是多少?

2020-09-22 18:10:02 828

原创 c基础常见笔试题

c基础常见笔试题1.gcc编译器编译的四个流程预处理 、编译 、汇编 、链接gcc –E hello.c –o hello.igcc –S hello.i –o hello.sgcc –c hello.s –o hello.ogcc hello.o –o hello2.静态库和动态库区别a.命名上:静态库文件名的命名方式是“libxxx.a”,库名前加”lib”,后缀用”.a”,“xxx”为静态库名;动态库的命名方式与静态库类似,前缀相同,为“lib”,后缀变为“.so”。所以为“lib

2020-09-22 18:08:22 492

原创 Ubuntu搜狗拼音输入法安装教程(常识)

安装搜狗拼音输入法使用 Linux 最大的烦恼就是中文输入法了,但是在 Ubuntu 下面,这都不是事!搜狗拼音已经有 Ubuntu 版本了,所以我们虽然安装的是英文版的 Ubuntu,不过照样可以使用中文输入法。(1)在 Ubuntu 下打开搜狗输入法 Linux 版的官网 http://pinyin.sogou.com/linux/?r=pinyin,并下载你需要的版本,这里选择 64 位版,如图下图所示,选择立即下载 64bit(看自己的Ubuntu是32bit还是64bit的) 以后,然后.

2020-09-19 18:19:02 467

原创 在线词典(服务器,客服端,Makefile)

server:/*================================================================*文件名称:在线词典服务器v1.0.c创 建 者:xiaowang创建日期:2020年04月28日描 述:================================================================*/#include <stdio.h>#include <stdlib.h>

2020-09-19 16:01:49 319 1

原创 十三天学会C语言笔记

day1Linux C基础课程~【1】操作系统的介绍内核:linux unix操作系统:ubuntu redhat centos deepinlinux内核的功能: 文件管理 内存管理 设备管理 进程管理 网络管理 ubuntu:是一个以桌面应用为主的Linux操作系统。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

2020-09-19 15:47:31 1067

原创 Makefile中一些必须知道的规则

定义一些变量NAME=led_asmCROSS_COMPILE = arm-none-linux-gnueabi-编译CC = $(CROSS_COMPILE)gcc链接 将.o文件链接生成.elf文件LD = $(CROSS_COMPILE)ld将.elf文件生成.bin.bin 是纯粹的二进制文件.elf 包含符号OBJCOPY = $(CROSS_COMPILE)objcopy规则all:$(CC) -O0 -g -c $(NAME).S -o $(NAME).o@ # -

2020-09-19 15:32:36 581

原创 写函数实现strcat/strlen/strcpy/strcmp

自己编写strcat strlen strcmp strcpystrcat:char *m_strcat(char *des,const char *src){assert((des != NULL)&&(src != NULL));char *add = des;while(*des != ‘\0’)++des;while(*des++ = *src++);return add;}strlen:Int m_strlen(const char *str){as

2020-09-19 15:29:54 139

原创 驱动学习-日常笔记day10

【1】块设备块设备的特点:按照扇区来访问,访问的单位512字节它可以顺序访问,也可以无序访问。块设备的硬件知识:比如一个移动硬盘:磁头:有多少个盘面磁道:一个面内有多少环扇区:一个环内有多少个扇区,一个扇区512字节磁盘的数据的读取:磁盘数据的读取不会按照存储顺序来读取,因为磁头它是机械结构,通过旋转来访问数据,如果按照数据来访问,需要反复的切换这个物理结构,比较浪费时间。所以磁盘在访问的时候采用电梯优化的算法来完成。即一次将一个盘面上的数据全部读取到,然后切换物理结构,在读取

2020-09-19 15:22:54 254

原创 驱动学习-日常笔记day9

【1】复习platform总线设备端 设备信息结构体: struct resource res[] = { [0] = { .start = 0xc0053000, .end = 0xc0053000 + 24 -1, .flags = IORESOURCE_MEM, }, [1] = { .start = 73, .end = 73, .flags = IORESOURCE_IRQ, } }; struct platform_devi

2020-09-19 15:21:56 266

原创 驱动学习-日常笔记day8

【1】复习1.中断request_irq(irqno,中断处理函数,中断触发方式,名字,传递的参数);free_irq(irqno,传递的参数);2.内核定时 struct timer_list mytimer; mytimer.expires = jiffies + HZ; (1s) //# define HZ CONFIG_HZ mytimer.function = timer_function; //当定时时间到了会执行 mytimer.data = 0; //一般用于传递下一次

2020-09-18 19:44:12 136

原创 驱动学习-日常笔记day7

【1】Linux内核中的中断linux内核中的中断和ARM课程中学习的裸机中的的原理是一样的,都需要遵从四大步三小步骤。在linux内核中注册中断处理函数int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,const char *name, void *dev)功能:在linux内核中注册中断处理函数参数: @irq :软中断号:根据gpio号通过映射得到软中断号 A B

2020-09-18 19:43:37 185

原创 驱动学习-日常笔记day6

【1】IO多路复用IO多路复用:在同一app应用程序中想同时监听多个文件描述符,使用select、poll、epoll在监听,如果数据都没有准备好,selectpoll、epoll就会阻塞。当硬件的数据准备好的时候就会产生中断,在驱动的中断处理函数中唤醒select、poll、epoll即可。当他们被唤醒之后,然后判断文件描述符的集合中哪个文件描述的数据准备好了,如果数据准备好了,就从硬件将将数据读取到用户空间即可。fd1 = open("mma",权限);fd2 = open("mpu",

2020-09-18 19:42:55 118

原创 驱动学习-日常笔记day5

【1】复习1.字符设备驱动的框架inode结构体:只要一个文件在linux系统中存在就会有一个inode结构体和这个文件对应。这个inode结构体时描述这个文件的各种属性信息,驱动 ,设备号等file结构体:只要通过open函数打开文件就会产生file,这个file结构体就会保存在fd_array数组中,这个数组下标就是fd,file结构体是用来描述打开文件时候的各种信息。2.字符设备驱动实现1.分配cdev的对象struct cdev*cdev = cdev_alloc();2.

2020-09-18 19:42:20 148

原创 驱动学习-日常笔记day4

【1】复习1.ioctl函数的使用ioctl(fd,100,100)---------------------unlocked_ioctl(file,cmd,args){printk(“cmd = %d,args = %d\n”,cmd,args);//cmd=100 args=100;}命令码通过 ===>_IO _IOR _IOW _IORW封装2.自动创建设备节点class_createdevice_createclass_destroydevice_destroy

2020-09-18 19:41:46 178

原创 驱动学习-日常笔记day3

【1】复习1.内核模块入口 出口 许可证2.内核中打印函数printk(打印级别 “想要打印的内容”);printk(“想要打印的内容”);3.模块传参sudo insmod demo.ko a=100/sys/module/驱动名/module_param(变量名,类型,权限);module_param_array(变量名,类型,长度,权限);MODULE_PARM_DESC(变量,“字符串”);4.模块导出符号表 EXPORT_SYMBOL_GPL(变量名/函数名);5.

2020-09-18 19:41:09 129

原创 驱动学习-日常笔记day2

【1】复习1.驱动的种类字符设备驱动:按照字节流来访的,并且顺序访问。90%设备都对应字符设备驱动。帧缓存设备驱动:LCD块设备驱动:按照block来访问,访问的单位512字节它可以顺序访问,也可以无序访问。网卡设备驱动:和网络通讯相关的设备2.内核模块 入口 static int __init demo_init(void) { //在安装驱动的时候执行 //资源分配 return 0; } module_init(demo_init); 出口 static

2020-09-18 19:40:06 167

原创 驱动学习-日常笔记day1

【1】课程大纲1.Linux内核模块2.字符设备驱动3.并发和竞态的解决方法4.IO模型5.linux内核中断6.Platform总线驱动7.i2c总线驱动8.spi总线驱动9.块设备驱动10.网卡设备驱动【2】工作岗位Linux设备驱动开发Android设备驱动开发【3】什么是驱动?arm裸机驱动和Linux设备驱动有什么区别?驱动:通过软件驱动硬件工作的代码共同点:都可以驱动硬件工作不同点:arm裸机驱动:只能执行一份代码,在main中按照先后顺序来执行,这份代码

2020-09-18 19:39:00 256

原创 C++常见笔试题(求职)

int f() 与 int f(void) 有区别吗? 如果有区别是什么?在c语言中:int f() 表示返回值为int,接受任意参数的函数f(void)表示返回值为int的无参函数在c++中int f()和 int f(void)具有相同的意义表示返回值为int的无参函数constC语言中的const - 不能定义真正意义上的常量1. 修饰的变量是只读的,本质还是变量2. 修饰的局部变量在栈上分配空间3. 修饰的全局变量在只读存储区分配空间4. 只在编译期有用,在运行期无..

2020-09-18 17:28:43 4010 1

原创 驱动开发中常用的函数2

I/O模型 阻塞态部分: wait_queue_head_t wq; //定义等待队列头 init_waitqueue_head(&wq); //初始化等待队列头<1> wait_event(wq, condition) //不可中断的等待态 wait_event_interruptible(wq, condition) //可中断的等待态 功能:让当前的进程休眠 参数: @wq :等待队列头 (休眠的进程在内核中会被放到一个 队列中,这里的wq就是队

2020-09-18 17:24:04 205

原创 驱动开发中常用的函数

驱动开发中常用的函数: module_param(name, type, perm) 功能:接收命令行传的参数 参数: @name:变量名 @type: 变量的类型 @perm: 权限 0664 0775 例:char a;module_param(a, byte, 0664)MODULE_PARM_DESC(_parm, desc)功能:对命令行传递的参数进行描述参数: @_parm:变量 @desc:描述的字符串例: a.安装驱动的时候传参

2020-08-01 14:37:35 643

Git与Repo入门.wps

Git与Repo入门.wps

2020-10-11

Git简明教程..........

Git简明教程 ,让你通俗易懂的学习理解简单的git应用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2020-10-09

adb调试工具...........

adb调试工具................................................................................................................

2020-09-22

repo包。。。。。。。。

repo包..............................................................................................................................................................

2020-09-22

在线词典(网络编程)

网络编程,实现在线词典,客户端和服务器之间的交互。用户在客户端进行登陆,成功后可进行查找单词,输入要查的单词即可查到他的解释,同时还有历史储存功能,客户自己什么时候查的什么单词都有记录。

2020-09-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除