3 林凡_123

尚未进行身份认证

暂无相关简介

等级
TA的排名 8w+

指针和内存的关系

1、如何描述内存:(1)一段内存需要有一个地址和内存的大小才可以描述;(2)一个内存可以说是一个buffer,那么这个buffer就是一个指针,然后还需要一个buffer_size;(3)也可以用头指针和尾指针来描述,其实尾指针减去头也就是size;2、具体代码(1)要注意一个函数如何实现传内存的指针进去,如何修改这个指针的所指向的内容;(2)使用memcpy函数,将内...

2020-01-09 20:31:55

使用FAAD库对AAC格式的音频进行解码

1、AAC音频文件格式(1) AAC的音频文件格式有ADIF & ADTS: 我主要做的是ADTS,我们就分析ADTS格式,下面的图可以反映问题。 可以参考:https://www.jianshu.com/p/b5ca697535bd 但是这里的ADTS Frame帧中AAC ES的大小不是固定的,这就造成每一帧ADTS数据大小都...

2019-12-29 20:27:09

pthread_mutex_t 和 pthread_cond_t 配合使用的简要分析

1、需求有消费者A和生产者B线程,共享变量n,生存者对n++,消费者对n--,消费者线程A必须要等到n>0才可以执行下去,当然生产者B线程就执行n++,让消费者能执行下去。2、生产者和消费者模型中互斥锁和条件变量的使用流程图如下,其中蓝色代表消费者的执行流,红色是生产者的执行流。3、几个函数/* 初始化一个条件变量 */int pthread_cond_init ...

2019-11-21 11:43:08

uboot启动第2阶段总结

uboot启动阶段就是start_armboot开始的init_fnc_t cpu_init 空的 board_init 初始化dm9000网卡,机器码和启动参数 interrupt_init 中断初始化,...

2019-10-14 21:14:28

uboot的文件夹和文件目录的介绍

1、文件(1).gitignore,git工具的文件,git是一个版本管理工具(类似的还有svn),这个文件和git有关。(2)arm_config.mk,后缀是mk,是一个Makefile文件,将来在某个Makefile中去调用它。(3)三个Changlog文件,修改记录文件,该文件记录了这个uboot项目的版本变迁以及每个版本修改对的记录。(4)config.mk,这个和arm...

2019-09-26 16:57:01

poll函数

1、函数原型:int poll(struct pollfd fds[], nfds_t nfds, int timeout);2、函数的作用:和select函数基本相同,为了提高程序的运行效率,把阻塞原来阻塞的函数编程非阻塞。并可以设置如果超过时间未发生事件,则直接返回。3、参数:(1)fds,一个数组名,数组成员里面存的类型为struct pollfdstruct p...

2019-09-17 09:44:05

select函数

1、select函数函数原型:int select(int nfds, fd_set *restrict readfds, fd_set *restrict writefds, fd_set *restrict errorfds, struct timeval *restrict timeout);(1)函数的作用:read和wr...

2019-09-16 16:13:00

linux内核源码目录

(1)arch文件夹,arch是architecture的缩写,意思就是架构。arch里面有很多个不同的架构的CPU子目录,譬如ARM这种cpu的所有文件都在arm子文件目录下面(2)block,英文是块的意思,在linux中block表示块设备(以块(多个字节组成的整体,类似于扇区)为单位来整体访问),SD卡,iNand,Nand,硬盘等都是块设备,可简单的认为块设备就是存储设备。block...

2019-09-12 16:12:47

linux多线程编程中使用信号量同步与互斥锁

一、什么是信号量线程的信号量与进程间通信中使用的信号量是一样的,它是一个特殊的变量。可以被增加和减少,但对其的关键操作访问必须保证原子操作。如果一个程序中有多个线程试图改变一个信号量的值,系统将保证所有的操作都依次进行。二、信号量的函数信号量的函数都是以sem_开头,线程中使用的基本信号量函数有4个,在头文件semaphore.h中。1、sem_init函数该函数用于创建信号量...

2019-09-09 16:57:27

线程的引入

1、进程的劣势(1)进程间切换开销大(2)进程间通信特别麻烦而且效率低2、解决方案就是线程技术(1)线程技术保留了进程技术实现多任务的特性。(2)线程的改进就是在线程间切换和线程间通信上提升了效率。(3)一个简单的例子实现一个进程中多线程,实现同时读键盘和鼠标#include <stdio.h>#include <sys/stat.h>#i...

2019-09-06 20:46:12

C++的ostream的用法,输出符符号重载

ostream是标准的输出流,我们经常使用cout直接输出,但是我们想过没有去直接用cout打印一个类下面的代码就直接对"<<"进行符号重载,可以直接打印一个类Point.h#ifndef _POINT_H_#define _POINT_H_#include <iostream>using namespace std;class Point{p...

2019-06-27 20:53:53

static在C++中的几种情况

1、存在于全局和局部的作用域中的静态变量1、被static修饰的全局变量,只能在本文件中使用,在其他文件不能使用。2、被static修饰的局部变量,只能在函数体中被调用,多次调用该函数时,也只能被初始化1次。#include <iostream>using namespace std;static int i = 0; //静态全局变量void displ...

2019-06-26 18:22:00

C/C++中const的用法

C/C++中的const的使用方法1、修饰常量const int i = 4; //i是常量2、修饰指针 主要看const是在*前还是*后面,在*前是指针所指向的内容是常量,在*后面是指针是常量const int *p; //指针所指向的内容是常量int const *p; //指针所指向的内容是常量int * const P; ...

2019-05-03 12:55:03

C++访问限定符public、project、private和继承

1、被private限定符修饰的成员,只能在类内进行访问(被类的成员函数进行访问)2、被public限定符修饰的成员,可以在类内和内外都可以进行访问3、被project限定符修饰的成员,可以在类内进行访问,在类外不能进行访问(和private相似)5、类可以进行继承,就会产生父类(基类),子类(派生类)下面看代码和注释Person.h#ifndef _PERSON_H_...

2019-04-16 15:01:54

uboot中mkconfig的详细解说

一、1、在uboot的主Makefile中2589和2590这两行代码是进行配置的2、$(@:_config=) 这里的意思就是x210_sd_config转换层x210_sd3、执行make x210_sd_config就说执行mkconfig x210_sd arm s5pc11x x210 samsung s5pc110 $# = 6 $0 = ...

2019-03-23 15:58:21

linux socket函数编程

服务器socket->bind->listlen->accept->write在写这个服务器的代码过程中遇到很多容易出错的地方1、serveraddr.sin_port = htons(portnumber); 这里一点记住是htons()函数,用htonl会出错,有大小端问题,端口号会变2、if((newfd = accept(sockfd,(...

2019-03-14 16:32:55

signal sigaction alarm函数

1、信号是一种异步通信机制(和单片机里面的中断很像)2、信号的目的:用来通信3、信号的本质是int 型的数字编号,在/usr/include/i386-linux-gnu/bits/signum.h被宏定义(ubuntu系统)4、常见的信号介绍(1)SIGINT 2 Ctrl+C是OS送给前台进程...

2019-03-05 17:37:16

写一个简单的守护进程

1、进程查看命令ps(1)ps -aux偏向于进程占有各种资源(CPU、内存)(2)ps -ajx偏向于显示进程各种有关的ID号(父进程的ID ppid,进程组ID pgid,进程会话ID SID)2、守护进程(1)deamon,表示守护进程,简称d(进程后面带d的基本都是守护进程)(2)长期运行(从开机到关机)(3)与控制台脱离(普通进程和控制台绑定,控制台关闭,进程结...

2019-03-04 15:17:22

atexit和return、exit、_exit之间的关系

1、atexit函数的原型int atexit(void (*function)(void));2、用来注册函数,进程死亡,之前调用被注册的函数 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 5 void func1(void) 6 {...

2019-02-27 12:36:23

大小端模式

大端模式:高地址放低位  其中51单片机是大端模式小端模式:高地址放高位   ARM都是小端模式用共用体的方式来检测大小端模式1 #include <stdio.h> 2 3 union endian 4 { 5 int a; 6 char b; 7 }; 8 9 //共用体都是从低地址进行访问的 10 void ...

2019-02-24 12:23:23

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。