吴孝宇7.12的博客日记

1:两者有无操作系统。

1)传统式开法耦合度高,导致软件的移植性差。

2)传统式开发软件人员要求高,导致企业人才欠缺及产品创新不足。

3)嵌入式开发提供多任务机制

4)嵌入式开发提供网路协议栈。

5)嵌入式开发提供了开源的软件和工具。

2:好处:1)嵌入式开发提供多任务机制

2)嵌入式开发提供网路协议栈。

3)嵌入式开发提供了开源的软件和工具。

3:岗位划分:1)应用软件工程师:精通一门语言(C,C++);熟悉一款操作系统。

2)系统软件工程师:精通C语言;熟悉汇编;理解操作系统的实现;熟悉硬件工作原理。

4:人工智能不可能没有嵌入式,嵌入式开启了人工智能的进程;
大数据是人工智能的养料来源,没有大数据,机器就无法学习,机器不学习就无法实现智能;
有些对时间响应性相求不是很高的人工智能的应用,就可以把它直接部署到云端实现,因为云端服务器的运算能力比较强,本地的运算能力比较差。

5CPU:中央处理器

   DPU:深度学习处理器

   TPU:张量处理器

   GPU:图像处理器 

6:操作系统有:Vxworks,Symbian,WinCE,Linux,UcossII

   VXwork:有硬实时性,高用型

   UcossII:免费性的

7:实时性:在规定时间内完成规定动作

  硬实时性:Vxworks

   软实时性:WinCE

  无实时性:Linux 

8:嵌入式的就业前景:从现在市场需求和走势看出,在以后的几年内。市场对嵌入式Linux开发工程师的需求旺盛。而目前熟练的Linux应用人才很少。由于嵌入式Linux开发人才的缺乏也带来了这个行业可观的薪酬待遇,嵌入式Linux的从业者薪酬比其他IT业同行大约高出50% 

嵌入式开发的发展方向:一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoaderBoard Support Package(像PCBIOS一样,往下驱动硬件,往上支持操作系统)

另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果这类人对硬件原理和接口有较好的掌握,也完全可以写BSP和硬件驱动程序。

9:特点:安全可靠,
1.模块化程度高
2.源码公开
3.广泛的硬件支持
4.安全性及可靠性好
5.具有优秀的开发工具
6.有很好的网络支持利文件系统支持
7.UNIX完全兼容 

10:LinuxUnix区别:

1):LinuxUNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。

2):另外两大区别: UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上

3):UNIX是商业软件,而Linux是自由软件,免费、公开源代码的。

11:虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
虚拟机的优点:
1.演示环境,可以安装各种演示环境。
2.保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序,或者测试用的程序在虚拟机上运行。
3.避免每次重新安装,银行等常用工具,不经常使用,而且要求保密比较好的,单独在一个环境下面运行;
4.想测试一下不熟悉的应用,在虚拟机中随便安装和彻底删除;
5.可以体验不同版本的操作系统,如LinuxMac等。

主流虚拟机有:XenKVMVMwarehyper-vVirtualBoxVMware Workstation

12POSIXLinuxUnix当初制定的一个协议,当初制定的一个可移植性操作系统,是双方都可以运行。

   GNUGNU计划中的,它是为了Linux公司创建一个自由的操作系统。

   GPL是让所有人都可以运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。 同时GPL还规定:只要这种修改文本在整体上或者其某个部分来源于遵循GPL的程序,该修改文本的整体就必须按照GPL流通。

13:发行版:UbuntuDebian GNU/Linux Red Hat

RedHat:注重性能和稳定性以及对硬件的支持

Ubuntu:安装映像包含Try Ubuntu功能,可以让你在硬盘真正安装之前尝试Ubuntu,很炫

14:Linux的操作比较复杂,windows的比较简单.
Linux速度比较快,安全性比windows
1,文件格式是不同。windows 操作系统内核是NT,而linux shell

2,windows 硬盘文件格式是fat32NTSF,而linux 需要的文件格式是ext2ext

3,用户界面不同;

4,硬件配置要求不同;

15:-:普通文件;d:目录文件;b:设备文件;l:链接文件;p:管道文件;s:共享文件;f:堆栈文件

16chmod:修改权限,ls:查看文件,touch:创建文件,cat:查看文件内容,rm:删除文件,rm -f:强制删除,gedit:编写程序,gcc:编译文件。

171)vim可以分为三种状态,分别是命令模式、插入模式
和底行模式

1、插入模式
按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
2、从插入模式切换为命令行模式
按「ESC」键。

2) Emacs,TextMate,Sublime Text 

18:Linux命令来压缩解压文件。

解压缩文件:tar cvzf  压缩文件名 被压缩文件名

解压文件:tar xvzf 解压文件名

19gcc编译器的优点:可制定静态库与动态库;gcc是一款价交叉编译平台

C语言编译平台: visual c++6.0 
2visual studio 3win-tc非常方便:
3Turb C(只能编译C语言)

20:交叉编译器是GNU计划中的,gcc就是此计划中提出的,也就是交叉编译器

交叉编译器作用:可以将一个CPU平台上编译出的程序在评一个CPU平台上运行

因为不同的处理器有不同的汇编,不同汇编生成不同的机器码。 

21:执行文件要经过:预处理---编译---汇编---链接

预处理:将头文件展开;进行宏替换;条件编译

编译:进行语法检查

汇编:j将程序翻译成机器识别的机器语言

链接:进行符号表格的建立

22<>:搜索路径实在系统的头文件中目录中寻找

“”:先在当前目录中寻找,找不到再去系统的头文件目录中寻找

23-l:指定要链接的库

-w:显示目前系统的登陆的用户信息

-Wall:显示警告信息

-O3:进行优化,支持函数集成优化

24:库文件是:用来保存函数或者变量。

特点:只能使用,而看不到具体实现。

25:有静态库以及动态库。

存放路径:存放在根目录下的lib/目录下

26:静态库:缺点:可执行文件大,不易于升级。优点:执行速度快,易于代码部署

动态库:缺点:执行速度慢,不易于代码部署。优点:可执行文件小,易于升级

27:静态库创建:gcc -c 文件名;    ar rcs  库名  文件.o

静态库的使用:gcc  文件名 -l指定库 -L

动态库的创建:gcc -shared -fpIc -o库名.so 源文件.c

动态库的使用:gcc 源文件.c ./库名.so -o可执行文件 

28GDB特点:GDBGNU计划发布的一款功能强大的调试工具;能够启动被调试的程序;能够让被调试的程序在指定位置停止。

29run:继续运行程序

break:在指定位置停止

Info:查看信息

continue:跳出断点的的代码往下执行

finish:让子函数运行完成

30.make1)可进行自动编译

2)脚本文件可用来做批处理

3)可存放多个.c文件,以及图片,文档,视频文件

31:目标体:依赖体

Tab) 命令

32

子目录下的Makefile:将目录下的.c文件编译成.o文件

总控下的Makefile:将各个子目录下的.o文件生成可执行文件

Scipts目录下的Makefile:相当于C语言的头文件,定义了一些变量

第一个:int main()
  3 {
  4     int i;             //定义两个变量,作为二维数组
  5     int j;
  6     int a[100][100];          //定义一个二维数组    
  7     for(i=0;i<11;i++)         //此循环让扬辉三角的第一列和每一行的最后一列的
    值为1
  8     {
  9         a[i][0]=1;
 10         a[i][i]=1;
 11     }
 12         for(i=2;i<11;i++)     //此循环是为了得出扬辉三角的其他值
 13         {
 14             for(j=1;j<=i-1;j++)
 15                  a[i][j]=a[i-1][j-1]+a[i-1][j];  //每个值是上一行对应位置的>    结果加上前面一个值
 16         }
 17         for(i=0;i<11;i++)           //对应扬辉三角的每一行每一列用for循环
 18         {
 19             for(j=0;j<=i;j++)    //此循环为了输出完整的扬辉三角
 20             {

 21                 printf("%5d",a[i][j]);

第二题: int main()
  3 {
  4     float a;      //定义四个变量,一个输出,一个运算符号,两个输入值
  5     float b;
  6     char s;
  7     float c;
  8     scanf("%f,%c,%f",&a,&s,&b);       //从键盘输入算式
  9     if(s == '+')       //判断运算符,分为四种情况
 10     {
 11         c = a + b;         //让得出的加法结果赋值给c
 12         printf("a + b = %f\n",c);
 13     }
 14     if(s=='-')
 15     {
 16         c=a-b;
 17         printf("a-b=%f\n",c);        //让得出的减法结果赋值给c
 18         }
 19    if(s=='*')
 20     {
 21         c=a*b;

 22         printf("a*b=%f\n",c);       

 }
 24    if(s=='/')
 25     {
 26         c=a/b;
 27         printf("a/b=%f\n",c);           //让得出的结果赋值给c,然后输出
 28     }
 29 }
 30 第三题:  1 #include<stdio.h>
  2 int main()
  3 {
  4     int n;      //定义一个变量显示为n阶乘
  5     int i;      //定义一个变量作为中间变量
  6     int s = 1;
  7     scanf("%d",&n);        //从键盘输入n的值
  8     for(i=1;i<=n;i++)          //此循环将阶乘反过来从1开始一次往上进行乘法运
    算
  9     {
 10         s=s*i;
 11     }
 12     printf("%d\n",s);          //输出最终的结果
 13     return 0;
 14 }
~ 第四题: int main()
  3 {
  4     char str[100];         //定义母串的数组变量
  5     char substr[100];              //定义字串的数组变量
  6     int i;             //定义两个变量分别作为母串和字串的中间变量
  7     int k;
  8     int count = 0;        //定义一个变量作为计数次数的变量      
  9     printf("请输入母串str:");
 10     scanf("%s",str);           //输入母串
 11     printf("请输入子串substr:");
 12     scanf("%s",substr);                //输入字串
 13         for(i = 0,k = 0;str[i] == substr[k],str[i] != '\0';i++,k++)   //此循
    环是将母串和字串一个字符一个字符的寻找对比,知道母串结束跳出循环
 14         {
 15             if(substr[k+1] == '\0')     //此判断语句是判断子串是否全部对比结
    束
 16             count++;          //每有一次对应次数加一
 17         }
 18 printf("substr在str出现的次数为%d\n",count);          //输出最终结果
 19 return 0;
 20 }                                                                             
~             

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值