一些碎片知识
csdnjianghu
这个作者很懒,什么都没留下…
展开
-
linux下的命令,自用
用到过的记不住的命令:ulimit -n查看linux下一个进程可打开的socket数量,默认1024可用ulimit -n m改为m个待续原创 2020-08-01 14:08:25 · 78 阅读 · 0 评论 -
libjpeg开源库的使用
libjpeg库移植下载源码jpegsrc.v9.tar.gz与准备交叉工具链解压源码并进入解压后的目录。1.配置:/opt/libdecode 是自定义的文件夹,用来存放.so .a和头文件arm-none-linux-gnueabi 是交叉编译工具,改成自己的./configure --prefix=/opt/libdecode --host=arm-none-linux-gnueabi 执行之后会生成Makefile2.修改 Makefile:CC=gcc 改为 CC=a原创 2020-07-24 14:06:27 · 832 阅读 · 0 评论 -
LINUX下DEBUG宏
linux下DEBUG宏使用方法:#define DEBUG#ifdef DEBUG#define debug(...) { fprintf(stderr,"[debug][%s:%s:%d] ",)\ __FILE__,__FUNCTION__,__LINE__); \ fprintf(stderr,__VA_ARGS__); }#else#defin原创 2020-07-23 18:56:32 · 978 阅读 · 0 评论 -
UART,IIC,SPI
UART和USART:USART:通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)UART:通用异步收发器(Universal Asynchronous Receiver and Transmitter)同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。同步是阻塞模式,异步是非阻塞模式。UART是全双原创 2020-07-22 20:38:11 · 237 阅读 · 0 评论 -
tftp服务器在ubuntu 20上的搭建
以及,使用tftp远程下载linux内核到DDR中(注意加载地址),运行bootm启动内核原创 2020-07-21 12:41:34 · 983 阅读 · 0 评论 -
sizeof(数组名)和sizeof(指针)的区别
sizeof(数组名) 和sizeof(指针)的问题#include <stdio.h>void fun(char array[]);int main(){ char arr[] = "123456"; char *p = "123456789"; printf("%d\n",sizeof(arr)); //测试1 printf("%d\n",sizeof(p));//测试2 fun(arr);//测试3 return原创 2020-07-19 10:29:10 · 393 阅读 · 0 评论 -
C++调用C库
C++调用C库时,方法一:查看C库的头文件中有没有加extern“C”声明(应养成这个习惯,为了防止以后被C++调用),没有的话自己加上。#ifdef __cplusplus //C++中定义的宏extern "C"{#endifvoid func(); //函数声明。。。#ifdef __cplusplus}#endif方法二:如果C头文件没有定义extern “C”,可以在C++调用C头文件时用extern “C”将头文件包起来extern “C”{ #includ原创 2020-07-12 16:32:25 · 1610 阅读 · 0 评论 -
关于指针类型的写法
第一种:基本数据类型和类型修饰符放一起,与变量名用空格隔开int* a;这种写法在下面情况时会让初学者产生误解:int* a,b;//会让人误以为int* 同时作用于a和b实际上基本数据类型是 int 而不是 int* ,类型修饰符(*,&)仅仅修饰了变量名而已,对一条语句中的其他变量名 b 不产生任何作用第二种写法:修饰符和变量名在一起int *a;这种情况下会产生另一种误解:变量名是*a。实际上变量名只是 a, *不过是修饰符而已。总结:以上两种写法都正确,应当选择并坚持原创 2020-07-09 12:42:12 · 676 阅读 · 0 评论 -
ubuntu zip解压和压缩
解压:unzip FileName.zip Dirname/ 压缩: zip -r Dirname.zip Filename/原创 2020-06-29 09:22:25 · 299 阅读 · 0 评论 -
总线式扩展和非总线式扩展 的外设
通过总线连接的外设:DDR,norflash等,可以直接通过地址访问非总线式扩展:nand,SD等,需要通过一定的时序访问,所以需要IIC,SPI等通信协议原创 2020-07-09 09:36:57 · 162 阅读 · 0 评论 -
可重入函数和不可重入函数
简单来说可重入函数就是可以被中断的函数,该函数可以在被执行时中断而不会出现错误,不可重入函数由于调用了一些系统资源,如全局变量区,中断向量表等,被中断的话可能出现问题,所以不能在多任务环境下运行。一般满足下列条件的函数多数是不可重入的:(1)函数体内使用了静态的数据结构;(2)函数体内调用了malloc()或者free()函数;(3)函数体内调用了标准I/O函数。__interrupt double compute_area (double radius){ double原创 2020-06-25 20:03:32 · 511 阅读 · 0 评论 -
使用fastboot命令给开发板刷系统
fastboot 是uboot中用来快速下载镜像的一个命令同时也是windows上的一个软件刷机前要装好驱动,还要连接usb线(fastboot使用usb传输数据)fastboot常用命令(在windows cmd下使用):fastboot devices 查看当前连接的设备fastboot flash xxx 烧录命令fastboot reboot 重启系统刷机过程:这是开发板已经烧录过uboot的情况下,如果是第一次需要使用SD或在linux中用dd命令或其他方式烧录uboot。原创 2020-06-23 16:23:06 · 1162 阅读 · 0 评论 -
UBOOT常见命令 ping ipaddr
首先要插上网线连接主机和开发板1 开发板运行linux下和虚拟机ubuntu的ping通:虚拟机必须使用桥接方式虚拟机菜单中的“虚拟网络编辑器”要设置桥接到有线网卡,默认是自动连接到无线网卡,如果使用有线网卡连接开发板,必须设置此项虚拟机中使用ifconfig 命令设置IP地址(必须和开发板同一网段,即子网掩码一致)然后就可以执行ping命令了,开发板ping虚拟机、虚拟机ping开发板都可以2 开发板运行uboot下和虚拟机ubuntu的ping通:在开发板启动时进入uboot命令行原创 2020-06-22 22:00:24 · 2629 阅读 · 0 评论 -
uboot1.3.4源码,start_armboot函数,分析(1)
for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { if ((*init_fnc_ptr)() != 0) { hang (); } }分析,指针类型,方法,目的原创 2020-06-22 14:56:13 · 128 阅读 · 0 评论 -
进程的状态 学习笔记
就绪态:所有条件就绪,等待CPU调度运行态:得到了CPU,工作状态僵尸态:进程消亡,父进程还没来得及回收资源阻塞态:等待某个资源,资源来了就进入就绪态挂起态:暂时被淘汰出内存的进程(可以被恢复,然后进入就绪态)...原创 2020-06-13 21:34:07 · 81 阅读 · 0 评论 -
ARM 的7种工作模式 学习笔记
usr 用户态sys 系统svc 管理irq 中断fiq 快速中断abt 终止und 未定义原创 2020-06-13 21:25:41 · 139 阅读 · 0 评论 -
栈的作用 学习笔记
1.作为局部变量的存储域, 包括函数的非静态局部变量以及编译器自动生成的其他临时变量2.上下文切换时保存数据3.传递参数:汇编调用C函数进行传参原创 2020-06-13 20:40:11 · 266 阅读 · 0 评论