读些笔记

make -n 得到makefile的整个过程

make -p 得到makefile中的变量

611A的DDR问题,总线、转接头

每个进程有一个mm_struct,是进程整个用户空间的抽象,mm_struct和vm_area_struct是页面的需求,而page、zone_struct是对页面的供应

 

系统初始化时,根据物理内存大小,建立mem_map,每个page代表系统中的物理页面。物理页面分为zone_dma、zone_normal、zone_highmem,DMA不经MMU,当DMA所需的缓冲区大于一个页面时,要求物理页面连续.

PHYS_OFFSET定义在arch/unicore/mach-sep0611/include/mach/memory.h

PAGE_OFFSET内核虚拟地址开始

TASK_SIZE用户空间的最大大小

 

图形块传送操作:把源位置的数据按照指定方式传送到目的位置

ROP为一个32位整数

3种原始数据:源像素,目标像素,画刷

 

画线之前需要选择一种画笔

填充一个区域之前选择一种画刷

画笔、画刷、字体、区域、路径、图案、位图统称GDI中的对象

画刷:实际上是以8 * 8的位图重复铺开

当前的画笔为虚线。使不连续的部分用指定的颜色绘制。也可以设置位透明与非透明

画刷填充一个区域的时候,线条图案的空隙部分同样接受透明与非透明影响。

绘图模式:

  在前面的内容中,我们都是尝试在DC上用绘图函数画出需要的图形,对于被绘画上去的乡土来说,相当于用画笔或画刷的像素点代替了原来的像素点。但是也可以用画笔的像素点和原来的像素点进行计算以后的值当做新的像素点。这种计算过程叫做光栅运算。

光栅运算符:ROP RASTER OPERATION

 

 

MIPS特点:一切设计以适合流水线为出发点,没有标志位,所看信息存放在堆栈中。只有一种寻址方式:单个寄存器+16位常数偏移。指令对齐,256MB段内转移,没有字节和半字运算,没有对堆栈的特殊支持。起始地址0XBFC00000~映射至0X1FC00000,CPU控制Cache、异常/中断、MMU、杂项(校验、事件计数)

 

1、A a; A aa = a; 这个会调用A(A&a)构造

2、B:A      B b       f(A a);  f(b)会调用A(A&a)不会拷贝虚表

3、对于“ab" < "bc"这种判断用的是地址比较

4、template,如果函数自己实现了, 则优先使用自定义的

5、空类大小为 1

6、A a; a = 100; 优先调用operator = ;没有缺省构造临时变量

7、如何编写malloc函数

8、先调用各个对象成员的构造函数,然后再调用自身的构造函数,析构函数则相反。

 

ARM特点:

RISC通用:大量寄存器、load/store结构、简单寻址

ARM特有:指令带移位,完成指令后自増自减、多数据L/S,条件指令

MMU中4K页:虚拟地址高12位作一级查表,次8位用于二级查表,将得到的20位物理页面地址与低12位合并得到32位物理地址;MMU中的域,首层映射中有4bit的域位移,可以分成16个域,可以将各个域设置成(不可访问、访问时检查访问权限、访问时不检查访问权限)

HDMI与LCDC时序有两种方式:一种HV方式即配置边界回扫时间、一种为DE方式即DE有效时读取数据

 

 

1、spin_lock不可抢占是如何实现的?

2、编译器一般会做哪些优化?

3、busybox为什么会做到一起,相比分开有什么优势?

4、系统调用(细节)?

5、信号量、自旋锁的具体实现?

6、程序运行缓慢瓶颈?

7、修改项目的经历

你可能感兴趣的:(笔记)