嵌入式C语言

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式C语言相关的知识,希望对你有一定的参考价值。

1.我有不错的C语言基础,现在想转向LINUX平台进行开发,请问我要学哪些方面的知识,请推荐一些必要的书籍。
2.什么是嵌入式,我对这个词不太明白,请懂的人用自己的话说明。

Linux C编程一站式学习这本书,我感觉不错,还是免费的,GPL的,感觉讲得蛮详细的,而且比较细节...

本书有以下特点:

不是孤立地讲C语言,而是和编译原理、操作系统、计算机体系结构结合起来讲。或者说,本书的内容只是以C语言为载体,真正讲的是计算机的原理和程序的原理。

强调基本概念和基本原理,在编排顺序上非常重视概念之间的依赖关系,每次引入一个新的概念,只依赖于前面章节已经讲过的概念,而绝不会依赖后面章节要讲的概念。有些地方为了叙述得完整,也会引用后面要讲的内容,比如说“有关XX我们到XX章再仔细讲解”,凡是这种引用都不是必要的依赖,可以当它不存在,只管继续往下看就行了。

尽量做到每个知识点直到要用的时候才引入。过早引入一个知识点,讲完了又不用它,读者很快就会遗忘,这是不符合认知规律的。

如果仅仅是应用,那么在 LINUX下还是在windows 编程相差不是特别大的,系统都会提供api让你调用...但windows下IDE做得相对较好些,linux 下要自己写makefile组织工程,不过现在应该也有IDE的一些工具提供应用编程的吧,不过在linux下,makefile 很重要,还是有必要了解的..

至于嵌入式,主要是可移动,是为某个专门功能开发的,记得就是计算机的简化版..
参考技术A 嵌入式就是单片机+操作系统。
转LINUX就要搞明白LINUX的系统下编程,或者就是LINUX的API。
参考技术B 《Beginning Linux Programming》我有这本书的第2版英文版、中文版,可以问我索要。
没有Linux基础的话推荐一本《鸟哥的Linux私房菜》。
我也在学习中,希望共同进步。
参考技术C Linux嵌入式开发视频之C语言基础http://you.video.sina.com.cn/a/2144683-1320045357.html
类型运算符表达式1
http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#17113539
类型运算符表达式2
http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#16566482
函数与程序结构1 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#16566668
函数与程序结构2 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#16566780
结构体联合体位字段1 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#16561159
结构体联合体位字段2 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#16561197
结构体联合体位字段3 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#16561239
4.数组与指针1 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#16561009
4.数组与指针2 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#16566864
4.数组与指针3 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#16566908
控制流1
http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#24479600
控制流2 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2144683&uid=1320045357&t=1#16560817

嵌入式高级C语言进阶培训
C语言概述-01C语言概念、发展历史、特点http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24675555
C语言概述-02C基本程序结构等http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24679413
C语言概述-03C语言第2个程序第3个程序http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24679415
C语言概述-04C程序开发过程http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24676741
C语言概述-05C语言开发常见错误分析http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24676797
C语言概述-06C语言 开发语言和开发工具的关系http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24684950
C编程基础-01C语言基本数据类型http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24683553
C编程基础-02常量和变量http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24688154
C编程基础-03const类型修饰符概念http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24677311
2C编程基础-03const类型修饰符实例
http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24720572
C编程基础-04volatile类型修饰符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24685486
C编程基础-05extern,static存储http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24677519
C编程基础-06register存储类型说明符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24685644
C编程基础-07auto存储类型说明符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24685678
C编程基础-08操作符-算术操作符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24677935
C编程基础-09操作符-sizeof操作符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24686154
C编程基础-09操作符-关系逻辑操作符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24678079
C编程基础-09操作符-位运算操作符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24686402
C编程基础-10表达式http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24678315
C编程基础-11if条件判断结构http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24686640
C编程基础-12switch条件判断结构http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24686726
C编程基础-13for循环结构http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24686792
C编程基础-14while循环结构http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24678685
C编程基础-15跳转语句http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24679987
C编程基础-16模块化设计方法http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24678881
C编程基础-17函数的声明和定义http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24687236
C编程基础-18函数的调用http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24679113
C编程基础-19递归函数http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24679189
C编程基础-20函数返回值http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24680021
C编程进阶-1数组http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24688354
C编程进阶-1字符串http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24688500
C编程进阶-3指针http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24691778
C编程进阶-4函数指针http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24680581
C编程进阶-5动态类型分配http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24688820
C编程进阶-6指针常见错误http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24688856
C编程进阶-7指针与数组http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24691814
C编程进阶-8编译预处理http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24682609
C编程进阶-9结构体基础http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24682671
C编程进阶-10链表http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24683653
C编程进阶-11共用体http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24682755
C编程进阶-12位段http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24690968
C编程进阶-13枚举http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24690978
C编程进阶-14文件http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24691004
C编程总结http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24691044

嵌入式C语言面向对象编程 --- 封装

大部分使用 C 语言进行开发的工程师,在接触更高级的编程语言之前,都认为 C 语言是面向过程的。事实也是如此,对于一些小规模的单片机应用程序,一般都是使用“面向过程”的思维进行单片机C语言编程开发。

但是,如果是需要用C语言开发一些规模比较大的软件的时候,比如操作系统内核,文件系统底层,数据库底层,等等,这个时候,就需要用面向对象的思想去考虑和设计整个软件框架了。

嵌入式Linux的内核,虽然是使用 C 语言编写的,但里面的设计大部分都使用了面向对象的编程思想。

 图片来源公众号:码农翻身

很多单片机工程师或者嵌入式Linux驱动初学者,有时候会觉得驱动入门特别困难,很大一部分原因是,他们会用“过程式思维”去尝试学习驱动框架和内核框架,而非从“整体对象”的思维方向出发,这样容易导致水土不服。

任何编程语言只是一种工具,而编程思想是指导我们用好这个工具的关键。C 语言只是工具,而面向对象是一种编程思想,用来指导我们如何用从另一种思维模式去使用 C 语言。

以上是关于嵌入式C语言的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式C语言重点知识点

嵌入式开发—C语言面试题

嵌入式 Linux C语言——C语言模块化编程

嵌入式 Linux C语言——C语言的安全问题和指针陷阱

嵌入式编程是否应该用C++替代C语言

嵌入式 Linux C语言——C语言基础