1、linux启动过程:第一阶段,打开pc加电启动,cpu自动进入实模式,从地址0xffff0000开始自动执行程序**,bios开始自检,按照bios中设置的设备进行启动,启动设备安装的引导程序lilo或grub开始引导linux,获得启动权;第二阶段,进行内核的引导,完成磁盘引导,读取机器系统数据,实模式和保护模式的切换,加载数据段寄存器以及重置中断描述符表;第三阶段,执行init程序,init调用和rc等程序;第四阶段,init启动mingetty,打开终端供用户登录系统,进入shell,启动完成。
3、静态函数库和动态函数库:静态函数库,指编译链接时,将库文件的**全部加入可执行文件中,生成的文件比较大,运行时不再需要库文件,后缀名通常为。a;动态函数库,指在编译链接时没有将库文件的**加入到可执行文件中,而是在程序执行时加载库,节省系统的开销,后缀名为。
so4、嵌入式系统的特点:1)面向特定应用;2)硬件和软件必须进行高效的设计;3)将先进的计算机技术、半导体技术和电子技术具体应用后的产物;4)软件一般固化在存储器芯片中或者单机片本身;5)软件**要去高质量、高可靠性;6)不具备二次开发的能力。
5、常用嵌入式系统:vxnorks,qnx,windows ce,palm os
6、arm,嵌入式微处理器,有三种工作状态:arm状态,执行32位的字对齐的arm指令;thumb状态,执行16位的半字对齐的thumb指令;thunb2状态,处理执行16/32位混合的多类型对齐的指令。
7、arm存储格式:大端格式,字数据的高字节存储在低地址中,而字数据的低字节存储在高地址中;小端格式,低地址中存储的是字数据的低字节,高地址存储的字数据的高字节。
8、交叉编译:在一个平台上面生成可以在另一个平台上面执行的**。
9、icd交叉调试技术,arm处理器的jtag端**术。
10、嵌入式linux内核编译的3个步骤:内核配置,建立依赖关系,建立内核。
11、内核配置的4中方式:make config;make menuconfig;make xconfig;make oldconfig
12、内核源**目录结构:/include,建立内核**时所需要的大部分包含文件;/init 内核的初始**;/arch 所有处理器体系结构特定的内核**;/drivers 包含内核中所有的设备驱动程序。
13、串口通信方式:并行通信,利用多条数据传输线将一个字数据的各比特位同时传送。传输速度快,适用于短距离且传输速度较高的通信。
串行通信,利用一条传输线将数据以比特位为单位顺序传送。通信线路简单,成本低,传输距离长,速度较慢。
14、进程运行的3种状态:执行态;就绪态;等待态。进程的结构:
(3个段)数据段,存放全局变量、常数以及动态数据分配的数据空间。**段,存放的是程序**的数据。堆栈段,存放的子程序的返回地址,子程序的参数以及程序的局部变量。
15、linux进程通信方式:管道、信号、消息队列、共享内存、信号量、套接字。
16、/*将源文件的读写指针移到最后10kb的起始位置*/**。
lseek(src_file, -offset, seek_end);
/*读取源文件的最后10kb数据并将写到目标文件中,每次写1kb*/
while ((real_read_len = read(src_file, buff, sizeof(buff)))0)
write(dest_file, buff, real_read_len);
close(dest_file);
close(src_file);
return 0;
17、写串口程序:
int main(void)
int fd;
chat buff[buffer_size];
if((fd=open_port(host_com_port))<0) /打开串口*/
perror(“open_port”);
return 1;
if ( set_com_config(fd, 115200,8, ‘n’, 1) <0) /配置串口*/
perror(“set_com_config”);
return 1;
doprintf(“input some words (enter’quit’ to exit):”
memset (buff, 0, buffer_size);
if (fgets (buff, buffer_size, stdin)==null)
perror(“fgets”);
break;
write (fd, buff, strlen(buff));
while (strncmp(buff, “quit”, 4));
close(fd);
return 0;
读串口程序:
int main(void)
int fd;
chat buff[buffer_size];
if((fd=open_port(target_com_port))<0) /打开串口*/
perror(“open_port”);
return 1;
if ( set_com_config(fd, 115200,8, ‘n’, 1) <0) /配置串口*/
perror(“set_com_config”);
return 1;
domemset (buff, 0, buffer_size);
if (read (fd, buff, buffer_size) >0 )
printf(“the received words are : s”, buff);
while (strncmp(buff, “quit”, 4));
close(fd);
return 0;
嵌入式linux与嵌入式系统设计
ustc bbs embedded斑竹d j主讲。感谢hongtao chen以及networking斑竹jun zxjun的大量幕后工作!感谢james zhang以及网络中心提供聚会的场地和大力支持!欢迎访问我的主页。聚会详情如下 名称 嵌入式系统设计以及嵌入式linux展望 时间 本周星期天 ...
嵌入式系统linux总结
linux进程调用shmget shared memory get,获取共享内存 来分配一个共享内存块。shmat shared memory attach,绑定到共享内存 shmctl shared memory control 控制共享内存 函数会返回一个共享内存块的相关信息。同时 shmctl...
《嵌入式系统与开发》构建嵌入式Linux系统 实验报告
嵌入式qt编程设计 实验报告。学生姓名。学号。专业班级。指导教师。完成时间。实验4 嵌入式qt编程及使用。一。实验目的。理解qt信号和插槽机制,掌握利用qt creator进行图形软件设计的基本步骤,并掌握将编译好的可执行程序加载到嵌入式开发板并运行的方法。掌握qt应用程序操纵底层硬件设备的基本步骤...