2024年嵌入式Linux C基本知识点总结_linnux版本嵌入式c,2024年最新2024物联网嵌入式开发春招面试经历

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

使用工具:程序生成工具GCC、程序调试工具GDB、工程管理工具为make和Makefile。
开发流程:使用编辑工具编写C语言源文件,然后编译生成机器代码为主的二进制可执行程序。
编译流程:C语言经过编译-汇编-链接,最终生成可执行程序格式。可执行程序包含两部分内容:程序头和程序主体。

嵌入式C语言的开发环境

程序的生成一般使用的是从x86到目标机的编译工具,程序的开发工具是运行于x86机器上的可执行程序,而是用开发工具生成的目标是以目标机器代码为实体的映像文件或者可执行程序,这个工程称为“交叉编译“。
和普通Linux环境下开发相比,更需要掌握一些几点:

\* 库函数和系统调用 
\* C语言高级应用
\* C语言在嵌入式中的特殊语法(大小端,内存对齐等)
\* 资源性能考虑(运行效率与存储空间)

二、 基本开发工具
Linux文本编辑工具VI

主要这个掌握VI三种模式的切换:命令模式、文本输入模式、和末行模式,以及VI编辑器的各种命令与操作。
学习VIM的使用,编辑vimrc文件,gedit ~./vimrc修改功能(比如显示行数、颜色加亮等)。

GCC程序开发工具

GCC能完成从C、C++、Objective-C等源文件向运行在特定CPU硬件上的目标代码的转换。对于通用计算机,一般使用GCC生成x86的可执行代码;对于嵌入式开发系统使用交叉编译的GCC,生成目标机可以运行的程序。
利用GCC/G++生成应用程序可以分为以下四步:
(1) 预处理:生成.i文件(预处理器cpp)
(2) 编译:将预处理后的文件转换为汇编语言,生成.s文件(编译器gcc)
(3) 汇编:由汇编代码生成目标代码,即机器代码,生成.o文件(汇编器as)
(4) 链接:由各个文件的目标代码,生成可执行程序(链接器ld)
这里涉及到另外一个知识点就是静态链接库和动态链接库的生成。

Make工程管理工具

Makefile是一个决定怎样编译工程的文本文件,有一定的书写规则。在工程更新的时候,使用GNU的make工具根据当前的Makefile对工程进行有选择的编译。
自动生成Makefile的工具有autoconf、automake。其他的类似工具比如cMake等。

GDB调试工具

在使用GDB之前,需要对源程序增加-g编译选项,此时编译出来的程序包含需要调试的信息,可以利用GDB进行调试。主要使用的命令是run(开始运行程序)、break(设置断点)、next(执行一行且不进入函数)、step(进入函数)、continue(继续程序运行)。
调试分为本地GDB调试和远程GDB调试,远程GDB更适合嵌入式系统的调试手段,使用个目标机端的GDB服务器和主机端的GDB调试器完成调试工作。

三、 基本学习函数
C语言标准库函数

(1) 标准输入/输出类函数 scanf printf putchar getchar putc getc puts ungetc等。
(2) 字符处理及转换函数
isdigit isalpha sprint strncat stncpy strlen strchr strstr strrev memset memmove memcpy memcpy等。
(3) 数学计算类函数 div acos/asin pow exp log ceil abs floor fmod等
(4) 数据结构和算法类函数 bsearch lfind lsearch qsort rand srand等
(5) 文件I/O操作类函数 fopen fclose fgetc fputs fseek fwrite ffush等
(6) 时间日期类函数 clock time gmttime mktime asctime 等
(7) 错误处理及工具函数 clearer feof perror errno assert setjmp longjmp等

Linux C中C语言的扩展库函数

(1) 文件I/O操作函数 open close read write lseek ioctl fcntl mmap dup create等
(2) 文件权限相关函数 access chown chmod utime umask link stat unlink等
(3) 用户操作函数 getgid/setgid getegid/setegid geteuid/seteuid 等
(4) 信号及进程类函数 kill raise alarm signal getpid fork sleep exec _exit等

四、 C语言高级编程

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

如果你需要这些资料,可以戳这里获取

本书所附光盘使用说明 本光盘中包括了书中所有示例的源代码和书中所有的插图,具体说明如下。 程序代码文件夹中包含了本书的所有源代码。 程序代码\chapter02 文件夹中包含了第2章的示例源程序。其中hello.c和hello.h是2.3.2的源代码,gdb.c是2.4.1的源代码,test.c是动手练练的源代码。 程序代码\chapter06 文件夹中包含了第6章的示例源程序。其中pointer1.c是6.2.2的第一个源代码,pointer2.c是6.2.2的第二个源代码,pointer3.c是6.2.2的第三个源代码,pointer4.c是6.2.3的第一个源代码,pointer5.c是6.2.3的第二个源代码,pointer6.c是6.2.3的第三个源代码,pointer7.c是6.2.3的第四个源代码。 程序代码\chapter08 文件夹中包含了第8章的示例源程序。其中binary_tree.c是二叉树的源代码,list.c是线性链表的源代码。 程序代码\chapter09 文件夹中包含了第9章的示例源程序。其中lock.c是文件锁的源代码,seri.c和seri.h是串口设置的源代码,read_seri.c是读串口的源代码,write_seri.c是写串口的源代码。 程序代码\chapter10 文件夹中包含了第10章的示例源程序。其中alarm_read.c是设置信号函数的源代码,dameon.c是守护进程的源代码,zombie.c是僵尸进程的源代码。 程序代码\chapter11 文件夹中包含了第11章的示例源程序。其中socklib.c是网络相关通用函数的源代码,tracert.c是traceroute的源代码,webserv.c是web服务器的源代码。 程序代码\chapter12 文件夹中包含了第12章的示例源程序。其中skull.c是skull驱动程序的源代码,s3c2410fb.c和s3c2410fb.h是LCD驱动的源代码。 程序代码\chapter13 文件夹中包含了第13章的示例源程序。其中args_cmd.h是解析命令相关的头文件,ctrl.c和ctrl.h是控制命令的源代码,proc_cmd.c是具体操作的源代码,thread.c和thread.h是线程相关的源代码,types.h是类型相关的源代码,net_send.h是网络相关的源代码。 书中插图包含了本书所有的插图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值