长沙开福区嵌入式C语言培训

    2015-03-07发布, 次浏览 收藏 置顶 举报
  • 上课班制:

    随到随学

  • 授课时间:

    周末班,晚上班,白天班

  • 授课对象:

    想提升技能者

  • 网报价格:¥电询    课程原价:¥电询
  • 咨询热线:400-998-6158
  • 授课地址:长沙天心区
  • 课程详情

  • 机构简介
  • 地图信息
  • 预约试听

课程关键词:长沙开福区嵌入式培训机构

U-Boot:了解 U-Boot的作用及工作流程;了解Bootloader的代码结构、编译过程;移植U-Boot;掌握常用的U-Boot命令。 
1、Bootloader介绍
2、u-boot工程介绍 
3、u-boot的编译使用
4、u-boot源码分析
5、u-boot资源分配
6、配置编译u-boot
7、u-boot移植过程
8、U-Boot常用命令操作
9、添加u-boot新命令
10、设置u-boot环境变量
11、u-boot驱动添加,如网卡:DM9000
LINUX内核移植:熟悉内核的原码结构和kbuild Makefile语法;掌握和内核、驱动模块编译相关的原理及方法。
1、Linux内核介绍
2、Linux内核特点
3、Linux内核源代码结构
4、Linux内核选项解析
5、Linux内核编译链接
6、内核模块编译、使用方法

LINUX根文件系统

1、busybox包移植、编译
2、Linux跟文件系统制作过程
3、根文件系统介绍

4. nfs文件服务器系统搭建

除了赋值运算和自增自减运算之外,任何表达式都不会影响原操作数的值。

单目运算: 操作数只有一个。
双目运算: 操作数有两个。
三目运算: 操作数有三个。

在同一个表达式中出现两个以上的运算符则称为复合运算。

在复合表达式中要分清优先级,优先级高的要先运算。

例如: a = b + c * d;

遇到同级优先级要看结合性。

例如: a + b - c;
  a = b = c;

单目运算(后缀++和后缀--除外)、三目运算、赋值运算都是右结合性,要优先计算右操作数。

类型转换:C语言的类型转换分为两种, 隐式转换和显式转换。

其中基本类型(int/short/char/float)可以自动隐式转换;复杂类型(*/struct)需要强制转换。

有符号数和无符号数间:编译器先将所有的有符号数隐式转换为无符号数,结果为无符号数。

例如:int a = -10; unsigned int b = 20;
if (a < b)
puts("YES");
else
puts("NO");
以上结果打印"NO".

不同宽度的整数间:编译器会先将所有的类型隐式转换为两者间宽度更大的类型。例如:
char short short
int char int
short int int

浮点数和整数间: 编译器会现将所有的类型转换为浮点数并运算,表达式的结果为浮点数。例如:
int float float
char float float
float short float
int double double

单精度浮点和双精度浮点间:编译器会现将所有的类型转换为双精度浮点数并运算,表达式的结果为双精度浮点数。例如:
float double double
double float double

总结一下简单规律:宽度不同结果向宽扩展,遇到浮点结果为浮点。

布尔型和其他类型的转换:

任何类型都可隐式转换为布尔类型,此时非零为真,零为假。

布尔型可以隐式转换为整数型:真为1, 假为0。

算术运算:用来进行常规计算,包含加、减、乘、除、取模(取余)、自增、自减。

+、-、*、/、%、++、--

注意:
前缀++或前缀--的运算方法是先运算后取值。
例如: int i = 10; ++i表达式的结果是11。
后缀++或后缀--的运算方法是先取值后运算。
例如: int i = 10; i++表达式的结果是10;但是运算之后变量i的值变为11。

逻辑运算:逻辑运算用来测试一个表达式结果的真假。包含&& || !

逻辑运算的结果是布尔值(逻辑值),只有真假两种结果。

真值表:
与:&&
真 假 假
真 真 真
假 真 假
假 假 假
或:||
真 真 真
真 假 真
假 真 真
假 假 假
非:!
真 假
假 真

短路特性:在与或运算中,如果左边表达式的结果已经能够决定整个与或运算的结果时,则右边表达式不再执行。

例如:
int a = 10; int b = 20;   if (a > 0 || a += 10) /* 因为a > 0为真,能够决定整个表达式的结果, 所以a+=10不执行 */
if (b <= a && b++) /* 因为b <= a为假,能决定整个表达式的结果, 所以b++不执行 */
if (a > 5 && a++) /* 因为a > 5为真,不能决定整个表达式的结果,所以a++执行 */

关系运算:用来进行数值比较,包含> >= < <= == !=。

注意:
关系运算的结果值是逻辑值(布尔值),只有真假两种结果。
等于运算是==。
>= <= == != 这些运算符都是两个符号,中间不能有任何间隔。

位运算:用来进行位操作,可以通过运算操作数据中某一位。包含& | ~ ^ << >>。

位与:参照逻辑运算的真值表。
6 110 & 
5 101
4 100
位或:参照逻辑运算的真值表。
18 10010 |
15 01111
31 11111
异或:^ 相同为0, 不同为1。
1010101 ^
0100111
1110010
左移:符号位不变,整体左移,高位移出,低位补零。
1010110 << 2 
1011000

赋值运算:用来更改一个变量的值。表达式的结果取左值。
包含: += -= *= /= %= <<= >>= |= &= ^=

三目运算:可用来对分支语句进行简单替代。
if (a > b)
max = a;
else
max = b;
可替换为:
max = a > b ? a : b;

逗号表达式:使用‘,’符号间隔子语句。表达式的结果取右值。
例如:ret = (a = 10, b = 20, c = 30); ret的值是30。

注意上述表达式的优先级,因为逗号比赋值的优先级低,所以要用圆括号包含起来。 其他符号: [] -> . & *



更多培训课程,学习资讯,课程优惠等学校信息,请进入 长沙芙蓉区嵌入式培训长沙天心区嵌入式培训 网站详细了解,免费咨询电话:400-998-6158

预约试听
  • 姓名: *
  • 性别:
  • 手机号码: *
  • QQ:
  • 微信:
  • 其它说明:
  • 验证码: *  看不清,请点击刷新
相关课程