C++ primer chapter 1&2 g++ xxx1.cxx -lg++ //有些需要链接c++库。CC xxx1.C xxx2.C //大写CC。CC xxx1.C //大写CC。大写字母 C --> c++ 文件。小写字母 c --> c 文件。
linux 内存管理之五bootmem 分配器 2.4.22 其初始化过程 已在 上篇[ARM 架构物理内存初始化],(https://blog.csdn.net/zsj1126/article/details/116430903)介绍。内核的bootmem 分配器 又叫自举内存分配器,其内涵即 自己初始化自己的一个内存分配器。以页为单位分配,起始地址对齐和计算,如goal 非0 ,则从goal 开始扫描。last_offset: 上次分配的bootmem页内偏移。last_pos: 上次分配的bootmem页结束id。209-210 : 判断是否可以合并分配。
linux 内核页表初始化源码分析2.4.22 一 静态页表初始化如下图,swapper_pg_dir 代表着一级页表,pg0,pg1,分别为这个页表的前两个页表项,包含8m空间,存储内核镜像,由于vmlinux 的编译基址址是PAGE_OFFSET + 1MiB,所以,这里这三个虚拟地址分别为swapper_pg_dir:PAGE_OFFSET + 1MiB +0x1000arch/i386/kernel/head.S............
LINUX nand flash 驱动ECC说明 结构体释义struct nand_ecclayout {uint32_t eccbytes; //表示使用几个ecc字节uint32_t eccpos[128]; //表示ecc占用的位置,因为现在大页面4kbyte也就128个,所以这里写了128,以后有更大页面的,这里也要改了。uint32_t oobavail; //有几个oob可用,这个跟下面的成员有点像,一般用下面的struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES];
LINUX 2.4.22 内存管理 之三ARM物理内存初始化(二) 上一篇:物理内存初始化(一)下一篇:页表管理(上)前文介绍系统启动后 内存的初始化入口,以及BOOTMEM 分配器的初始化,接下来进入paging_init函数,该函数主要负责页表初始化,struct map_desc {unsigned long virtual; //node start vitural addressunsigned long physical; // node start physical addressunsigned long length; //node size
cygwin 的介绍和安装 文章目录简介简介优点安装下载安装程序安装步骤简介简介Cygwin是一个可原生运行于Windows系统上的POSIX兼容环境。它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。优点首先自然是近乎一致的UNIX/Linux体验;完备且相对轻量,普通用户不必安装整个Linux系统或虚拟机,就可以获得近乎一致的体验,Cygwin的程序运行与Windows互不干扰,高效的
解决Kconfig中help信息在窗口不显示问题 今天在 buildroot 下面 make menuconfig 碰到 Kconfig配置的help 无法显示,排查了半天,最后是因为文件格式为dos , 调整回 unix 就OK了vim 下面 输入:setfileformat=unix
arm 汇编指令 文章目录指令格式条件码寻址方式指令集指令格式特点: 精简指令集,译码机制简单 ,目标寄存器在前,源寄存器在后。除几个特例长度只有32 位条件码寻址方式注意 ,IA DA , 多寄存器的顺序是从左到右,而IB, DB 顺序反之,从右到左,如 STMIB R6,{R1-R5} ;R5-> [R6+4],R4 ->[R6+8],R3->[R6+12],R2->[R6+16],R1->[R6+20]将R5 -R1的数据依次存入R6+4 为起始
ubuntu 14.04安装交叉编译工具GCC 2.95.3(一)编译环境搭建 文章目录编译环境搭建安装 GCC 3.4下载deb 包安装配置gcc 版本编译环境搭建1、sudo apt-get install ncurses-dev2、sudo apt-get install bison3、sudo apt-get install flex4、sudo apt-get install build-essential安装 GCC 3.4修改gcc版本,默认是(Ubuntu 4.8.4-2ubuntu1~14.04.4)的,这个版本太高了,改为3.4.6的下载deb 包
LINUX 2.4.22 内存管理 之四 页表管理【中】 [上一篇]ch3 上页表管理文章目录3.4 翻译和设置页表条目3.5 分配和释放页表3.6 内核页表3.6.1 bootstrap3.6.2 第二阶段3.4 翻译和设置页表条目下面这组宏用来地址映射(虚拟地址到物理地址)以及单个的页表条目的设置,ptep_get_and_clear用来保护和修改页表条目或物理页名称功能mk_pte()通过 struct page ......
LINUX 动态调试 DYNAMIC DEBUG 使用 打开动态调试配置CONFIG_DYNAMIC_DEBUG=y,CONFIG_DEBUG_FS=y使用可以按需要,模块,文件,行号,格式,选择调试输出同时也支持打印行号,模块名,等打开调试// 提供NFS服务模块所有的信息nullarbor:~ # echo -n ‘module nfsd +p’ > /dynamic_debug/control// 提供函数svc_process()的所有信息nullarbor:~ # echo -n ‘func svc_process +p’ &
LINUX线程(六)生产者,消费者同步实例 消费者:一,创建并加锁phtread_mutex_t mutex;phtread_mutex_init()phtread_mutex_lockphtread_cond_wait() //等待条件满足,1)阻塞等条件变量2)解锁unlock3)加锁5. 访问共享数据6. 解锁,释放条件变量,释放锁生产者:phtread_mutext_lock生产数据,phtread_mutext_unlockphtread-cond_signal/phtread-cond_broadca
LINUX线程(五)线程同步 线程同步,指一个线程发出同一功能调用时,在没有得到结果之前,该调用不返回。同时其他线程为保证数据一致性,不能调用该功能同步方法锁的使用:建议锁,对公共数据进行保护,所有线程应该在访问公共数据前先拿锁再访问,但锁本身不具备强制性互斥量pthread_mutex_t mutexphtread_mutex_init(&mutex,NULL);phtread_mutex_destroy(&mutex,NULL);pthread_mutex_lock(&mutex)pthre
LINUX 线程 (二)控制原语 函数原型说明进程对应功能接口pthread_t pthread_self(void);返回线程ID,线程ID是进程内部,识别标志(不同进程中,线程ID允许相同)getpidint phtread_create(phtread_t *thread,const pthread_attr_t *attr,void *(*start_routine)(void ),void arg);创建新线程。参数1:传出参数,保存新线程ID;参数2:线程属性默认NULL;参数3:线程体,该函数...
LINUX 线程(四)属性设置线程分离 线程属性初始化int pthread_attr_init(phtread_attr_t *attr); 成功:0 ;失败,错误号销毁线程属性int pthread_attr_destroy(phtread_attr_t *attr); 成功:0 ;失败,错误号设置线程属性 分离状态int phtread_attr_setdetachstate(phtread_attr_t *attr,int detachstate);获取线程属性int phtread_attr_getdetachstate(