嵌入式Linux C(一)——概述

简介: 嵌入式Linux C(一)——概述

C语言知识体系


C语言概述(历史、特点、标准)

数据类型(基本数据类型、输入输出)

基本语句及表达式、运算符(条件语句、循环语句、多路分支、goto语句)

数组(一维数组、二维数组、多维数组)

指针(一维指针、多维指针、数组指针、指针数组、函数指针、函数指针数组)

内存管理(内存是稀缺资源,内存泄露)

函数(函数声明、定义、调用、库函数的使用(字符串处理函数、时间函数、随机数函数))

编码规范(华为编码规范)

预处理(宏定义、宏函数、条件编译)

关键字(static、extern、register、const、typedf、volatile、inline)

位操作(位运算)

复合数据类型(struct、union、enum)

文件操作(打开、关闭、读写、属性设置)

进度安排

day1:1,2

day2:3,4,5

day3:5,6,8

day4:6,7,8

day5:10,9

day6:11,12


学习目标:


1.代码量:1w+;

2.书籍阅读:5+;

3.笔记:教材


学习要求:


1.代码量:力扣(每天1道,30分钟)

2.书籍:C语言三剑客、C program、C语言接口与实现、高质量编程……


一、C语言概述


1.1 嵌入式开发中为什么选择C语言


嵌入式开发中操作系统是核心、需要一直,并在上层和底层做开发,而操作系统最核心的是:内核,所有的内核都是由C语言开发,


1.2 为什么内核开发选择C语言


1.C语言能直接访问和控制硬件(C(硬件复杂操作) VS 汇编(硬件初始化))

2.C语言运行效率快(运行时语言)解释性语言 VS 运行时语言(C VS java \ C VS C++)

3.移植性


1.3 C语言的缺点


面向结构(代码的复用性差、代码的维护性差、代码的扩展性差)


1.4 C语言实现面向对象编程


?????????


1.5 C语言的开发方向


操作系统(上层(库)、底层(BSP、驱动)、实现(内核))、硬件、中间件(sdk)


1.6 C语言发展


一点问题都没有


C语言基础知识


1.机器码(运行效率、访问硬件能力)

2.C语言之父:丹尼斯-里奇

3.C语言语法标准:K&RC 、c89、c99、c11

4.C语言语言版本:GNU C + ASCI C

5.gcc:100%c89 + 部分c99

6.什么语言可能以后会替代C语言?

Go 和 Rust(替代不了)


相关文章
|
5月前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
166 1
|
3月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
|
2月前
|
Linux 测试技术 API
Linux PWM接口概述 【ChatGPT】
Linux PWM接口概述 【ChatGPT】
|
3月前
|
传感器 人工智能 网络协议
:嵌入式 Linux 及其用途
【8月更文挑战第24天】
170 0
|
4月前
|
Ubuntu 算法 Linux
嵌入式Linux的学习误区
**嵌入式Linux学习误区摘要** 1. **过度聚焦桌面Linux** - 许多学习者误将大量时间用于精通桌面Linux系统(如RedHat、Fedora、Ubuntu),认为这是嵌入式Linux开发的基石。 - 实际上,桌面Linux仅作为开发工具和环境,目标不应是成为Linux服务器专家,而应专注于嵌入式开发工具和流程。 2. **盲目阅读Linux内核源码** - 初学者在不了解Linux基本知识时试图直接研读内核源码,这往往导致困惑和挫败感。 - 在具备一定嵌入式Linux开发经验后再有针对性地阅读源码,才能有效提升技能。
|
4月前
|
Linux 编译器 调度
【Linux】对共享库加载问题的深入理解——基本原理概述
【Linux】对共享库加载问题的深入理解——基本原理概述
|
5月前
|
消息中间件 安全 Java
【嵌入式软件工程师面经】Linux多进程与多线程
【嵌入式软件工程师面经】Linux多进程与多线程
65 1
|
5月前
|
存储 缓存 Unix
【嵌入式软件工程师面经】Linux文件IO
【嵌入式软件工程师面经】Linux文件IO
49 1
|
4月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
消息中间件 缓存 Unix
[面试必备]嵌入式Linux内核开发必须了解的三十道题
[面试必备]嵌入式Linux内核开发必须了解的三十道题