姓名 | 韦庆宏 |
今日学习任务
| 做问答题目 C语言测试 |
今日任务完成情况 | 完成题目 32个问答题 4个C语言题 |
今日开发中出现的问题汇总
| 不会递归函数 字符串,字符数组问题 双引号,单引号问题 |
今日未解决问题 | 递归函数,正在学习 |
今日开发收获 | 对常用命令理解更深 熟练运用case语句 学习递归函数 |
自我评价
| c语言基础知识,常用函数需要复习一下 许多知识点还不是很清楚,还需要多多复习 |
其他
| 复习了前面学到的一些理论知识 编写程序过程中对命令理解更深 |
c语言程序:
1. 嵌入式开发与传统开发的区别?(同类问题:单片机开发与嵌入式开发的区别)
相对于嵌入式开发,传统开发的耦合度高,硬件的移植性差,不能适应各种硬件平台。同时传统开发对于人员的要求较高,需要精通软硬件,导致传统开发的人才欠缺,创新不足。嵌入式开发就解决了传统开发的耦合度过高与对开发人员要求过高的问题。并且提供了多任务机制,网络协议栈与开源软件和工具。
2. 移植操作系统的好处有哪些?
移植了操作系统,解决了传统开发软硬件耦合度过高的问题。同时降低了对于软件开发人员的要求,解决了人才欠缺,创新不足的问题。
3. 嵌入式工程师的岗位划分有哪些?所具备的能力是什么?
分为应用开发工程师和系统软件开发工程师。应用开发工程师要求为1.精通一门语言2.熟悉系统操作。系统软件开工程师要求为1.精通c语言2.熟悉汇编3.理解操作系统的实现4.熟悉硬件工作原理。
4. 人工智能和嵌入式之间有什么关系?人工智能和大数据、云计算的关系? 人工智能所需要使用的大数据就来自于嵌入式设备。人工智能即机器具有人的思维,要求机器具有机器学习和深度学习的功能。而机器学习需要大量有用数据的支撑,和对数据进行筛选和分析,这就使用到了大数据。而对于大数据中庞大数据进行处理,这就使用到了云计算的功能。
5. CPU、GPU、DPU、TPU 分别是什么?
CPU是指中央处理器。GPU指图像处理器。DPU深度学习处理器,即AI芯片。TPU张量处理器。
6. 嵌入式操作系统有哪些?vxwork 的特点?ucossii 的特点?
操作系统有:Vxworks,winCE,Linux,Embeded,ucossii
Vxworks特点:它是嵌入式实时操作系统,可以在规定时间内完成规定任务。价格较贵,不提供源代码。
Ucossii:开源性、可固化、可移植性、占先式、多任务。
7. 什么是实时性?哪些操作系统具有实时性?
实时性是指系统在限定时间内对规定任务作出作出处理。具有实时性的操作系统有:VxWorks uC/OS-II RT-Linux2.0 QNX6
8. 嵌入式的就业前景和以后的发展方向如何?
嵌入式的就业前景广泛,根据前程无忧网发布的调查报告,嵌入式软件开发是未来几年最热门和最受欢迎的职业之一,随着嵌入式技术及相关产品不断渗透到人们日常生活,大大小小公司对于嵌入式开发人才招聘需求猛增。嵌入式开发的发展方向主要有:应用程序开发、操作系统移植和底层驱动开发。
9. Linux 操作系统有哪些特点?
我认为Linux操作系统的特点有:模块化程度高、开源性、广泛的硬件支持、安全性及可靠性高、具有优秀的开发工具、有很好的网络支持、有很好的文件系统支持
10. Linux 和 unix 操作系统的区别?
我认为Linux和unix操作系统最大的区别是Linux操作系统是开发源代码的自由系统,unix是对源代码实施保护的传统商业系统。另外,Linux操作系统可运行在大多数硬件平台上,而unix操作系统大多是与硬件配套的。
11. 虚拟机的作用是什么?主流的虚拟机有哪些?
虚拟机的主要作用是通过软件模拟出具有完整硬件功能的并且运行在一个完全隔离环境中的计算机,以满足不同用户的不同需求。目前主流的虚拟机主要有VMware和Virtual PC,还有VirtualBOX等。
12. 分别阐述 POSIX、GNU、GPL 的理解?
POSIX表示可移植性操作系统接口,POSIX标准定义了操作系统应该为应用程序提供的接口标准,主要是为了获得源代码级别的软件移植性。
GNU是”GNU ‘s Not Unix”的缩写,GNU计划又称革奴计划,旨在建立一个完全自由的操作系统。
GPL协议保障原作者的知识产权,避免有人利用源代码复制并开发类似产品。
13. Linux 发行版有哪些?各自的特点是什么?
RHEL:收费版本,稳定性优秀,适合服务器使用;
CentOS:RHEL的克隆版本,免费,稳定性也非常好,同样适合服务器使用;
Ubuntu:界面设计友好,对新款软件具有极强的适应能力,容易上手,是最适合做桌面的Linux发行版本;
14. Linux 和 windows 的区别?
操作系统内核不同:Windows是NT,Linux是shell;
文件格式不同:Windows硬盘文件格式是fat32或NTSF,Linux是ext2或ext3;
操作方式:Windows操作方式较为简单,Linux较为复杂;
15. Linux 文件类型有哪些?
四大基本文件类型:
普通文件 -开头
目录文件 d开头
设备文件 c或者b开头
链接文件 l开头
又有:
特殊文件 p开头
共享文件 s开头
堆栈文件 f开头
16. 罗列 Linux 下文件操作的命令有哪些?(常见面试命令)
cd 目录名 进入目录
cd .. 返回上一级目录
pwd 查看当前路径
mkdir 0710 创建目录
mkdir -p 0710/kk/mm/nn
touch 创建文件
rm -f 文件 强制删除文件
rm -rf 目录 对目录进行操作加-r
cp 复制 cp /root/a.c /tmp/
mv 剪切,重命名
ls 显示
cat 查看
17. 如何配置 vim 编辑器?Linux 下还有哪些比较常用的文本编辑器?
常用命令:
set number 设置行号
settabstop tab 长度设置为 4
setnobackup 覆盖文件时不备份
setcursorline 突出显示当前行
setruler 在右下角显示光标位置的状态行
setautoindent 自动缩进
终端下的编辑器除了vi(vim)之外,此外还有nano,emacs。
18. 如何压缩、解压文件?命令是什么?
tar cvzf 文件 压缩
tar xvzf 文件 解压
19. gcc 编译器的优点有哪些?还知道哪些 C 的编译器?
我认为gcc的优点有支持更多平台,更流行,广泛使用,支持完备 ,基于 C,不需要 C++编译器即可编译。还有MSVC、Cygwin、MingW等编译器。
20. 什么是交叉编译器?交叉编译器的作用?为什么需要交叉编译?
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译器。
作用是在当前CPU编译出可供其他CPU使用汇编的编译器。
之所以需要交叉编译是因为不同CPU有不同汇编。
21. C 语言中源文件到可执行文件经历哪几个步骤?每个步骤具体做哪些工作?
预处理:头文件展开,宏替换,条件编译;
编译:语法检查,词法分析;
汇编:汇编处理;
链接:符号表的建立。
22. #include <stdio.h> 和 #include “stdio.h”的区别?
主要是搜索路径的不同:<>搜索系统头文件目录,“”先在当前目录寻找,再到系统头文件目录搜索
23. 分别阐述-I -w -Wall -O3 的作用?
-l 指定需要链接的第三方库
-w 不提示警告信息
-Wall 开启所有警告
-O3 提供最高级的代码优化
24. 什么是库文件?库文件的特点?
库文件是用来保存函数或者变量,只能使用函数或者变量,但看不到具体源码的文件。库文件的特点是只能使用但看不到具体的使用过程。
25. Linux 下库文件的分类有哪些?库文件的存放路径是什么?
静态库和动态库,存放路径为usr/lib/或/lib/
26. 静态库和动态库的区别?
静态库:静态库对函数库的链接是放在编译时期完成的。
动态库:动态库在程序运行时链接到目标代码中。
27. 如何制作和使用静态库和动态库?
静态库:
1). 生成对应的.o文件 -- .c --> .o -c : gcc -c *.c -I../include
2). 将生成的.o文件打包成静态库: ar rcs + 静态库的名字(libMytest.a) + 生成的所有的.o,生成.a文件后mv到lib目录下
3).指定需要链接的第三方库,指定路径: gcc main.c -l库名 -L.
动态库:
1)gcc -shared -fPIC -o lib/libadd.sosrc/add.c
2)gcc src/main.c -Llib -ladd -o main
28. GDB 的特点有哪些?
功能强大,使编译过程可视化
29. 分别阐述 run break info break continue finish 命令的作用?
run 执行
break 设置断点,可以简写为b
info 查看信息
continue 继续运行程序,可简写为c
finish 子函数运行完
30. make 工程管理的作用?
gcc进行编译,会将没有修改的源程序再进行编译,但是make工程管理就省去了对于未修改源程序的编译过程,提高了编译效率。
31. makefile 的语法是什么?(定义、执行顺序)
目标文件:依赖文件
tab command
从第一行开始编译,如果所需要的依赖体不存在就跳转到生成所需依赖体的那行。
32. 企业级工程目录是如何创建?分别描述三个不同 makefile 的作用?
建立总目录,在下面创建需要的各个子目录与scripts目录,以及总控Makefile文件,接着在scripts创建Makefile文件,在子目录下建立scr以及makefile文件,最后将对应的c文件放到对应的src目录中。总目录下Makefile用于将子目录下.o文件生成可执行文件。子目录下makefile 文件用于将.c文件编译成.o 文件。Scripts目录中Makefile 相当于头文件。定义了一些变量。