嵌入式系统学习整理-TwoDay-vim编辑器+gcc编译器

文章目录


前言

        我们知道嵌入式开发嵌入式系统开发模式最大特点是软件、硬件综合开发。这是因为嵌入式产品是软硬件的结合体,软件针对硬件开发、固化、不可修改,那么我们如何进行软硬件交互的呢?

        以计算机为例,自计算机诞生以来,其体系结构都为冯诺依曼模型,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成运算器控制器存储器输入设备输出设备)。

        那么计算机的基础构成,都是只能识别高低电平的硬件设备,我们也只能用0、1来进行控制,这就产生了二进制,用来控制硬件结构,而C语言是人用来识别的编程语言,机器识别不了,所以产生了编辑器和编译器,编辑器用来供人完善程序,编译器将高级语言转化成可供机器识别的二进制语言。本文会阐述编辑器的基本用法和编译器的使用。


一、编辑器是什么?

 1.编辑器简介

        编辑器是软体程序,一般是指用来修改电脑档案的编写软件,但也有人称 PE2、HE4(汉书)……等文书软件为编辑器。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器,声音编辑器和视频编辑器等。

        程序编辑器是指用来进行编辑程序的软体程序,能把存在计算机中的源程序显示在屏幕上,然后根据需要进行增加、删除、替换和联结等操作。用户利用此程序对存储在计算机中的文卷进行增加、删除、修改、剪贴等加工处理。

那么vi编辑器又是什么?

        Linux vi 命令也就是指 vi 编辑器,它们是一个意思。vi 编辑器是 Linux/UNIX 环境下经典的编辑器。Linux vi 命令非常强大,熟练地使用它可以高效的编辑代码,配置系统文件等,是程序员和运维人员必须掌握的技能。

        可以说每一个 Linux 程序员都是从学习使用 vi 开始学习 Linux 环境编程的。因此,即使是在集成开发环境盛行的今天,是否能够熟练使用 vi 仍然被看做是衡量 Linux 程序员基本功的标准之一。

        vi 编辑器只是一个文本编辑程序,它没有菜单,只有命令,且命令繁多。虽然学习这些命令比较费时费力,但是一旦你掌握了这些命令,你就会发现 vi 十分高效和强大,丝毫不逊色任何一款 Windows 上的编辑器。

        其实,现在的 UNIX/Linux 大都使用 vim 代替了 vi。vim 是 vi 的增强版(vi Improved),与 vi 编辑器完全兼容,而且实现了很多增强功能。vi 编辑器会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。

2.vi编辑器的基本操作

2.1 vi编辑器的进入方式

        vi 文件名 或 vim 文件名

2.2 vi编辑器的基本操作

        vi编辑器的三种模式:

                命令模式、插入模式、底行模式

        2.2.1 命令模式

                刚进入编辑器的模式就是命令模式

                命令模式主要作用就是对代码进行复制粘贴等操作

                怎样进入命令模式:

                刚进入编辑器的模式就是命令模式

                在其他模式中按ESC键即可进入命令模式

                从命令模式切换到插入模式的方法:

                a 从光标所在字符的后面进入插入模式

                i 从光标所在字符的前面进入插入模式

                o 从光标所在行的下一行进入插入模式

                A 从光标所在行的末尾位置进入插入模式

                I 从光标所在行的起始位置进入插入模式

                O 从光标所在行的上一行进入插入模式

        命令模式常用操作:

                yy 复制光标所在的这一行

                p 粘贴

                nyy 赋值n行

                dd 剪切一行

                ndd 剪切n行

                u 撤销

                gg 光标移动到第一行

                ngg 光标移动到第n行

                G 光标移动到最后一行

                x 删除光标对应的字符

                X 删除光标对应的前一个字符

                /xxx 查询当前代码中所有出现的内容xxx,并高亮显示

                        使用n光标指向下一个,N光标指向上一个

        2.2.2 插入模式

                插入模式主要作用就是写代码

        2.2.3 底行模式

                底行模式主要作用就是对文件进行保存退出等操作

                如何进入底行模式:

                在命令模式下输入:进入底行模式

                底行模式常用操作:

                w 保存

                q 退出

                wq 保存并退出

                q! 强制退出,不用保存就可以退出

                noh 取消高亮显示

                vsp 文件名 左右分屏打开此文件

                sp 文件名 上下分屏打开此文件

                wqa 所有打开的文件保存并退出

                x 保存并退出,或者在命令模式下输入shift zz也可以保存并退出

                %s/a/b/g 将文件中所有的a替换成b

                m,ns/a/b/g 将文件第m行到第n行的所有的a替换成b

                注:以上只是部分基础命令。

二、第一个C代码

2.1 打开文件

        首先通过vi编辑器打开指定文件然后编写代码,

        如果是C语言代码,文件一般后缀名为.c,用于标识是一个C语言代码

        vi hello.c

2.2 编写代码

#include <stdio.h>
int main(){
        printf("helloword!\n");
        return 0;
}

        写完代码在底行模式下保存并退出即可。

三、编译工具 -- gcc编译器

        C语言代码是没有办法让计算机直接识别的,计算机直接识别的只有二进制码,所以编译的流程就是先将C语言代码编译成汇编代码,然后将汇编代码编译成二进制代码,最后计算机执行即可

3.1 gcc编译器基本使用

3.1.1 不指定可执行文件的名字

编译代码:
    gcc hello.c  
        编译完毕后会自动生成可执行文件a.out
运行可执行文件:
    ./a.out    

 3.1.2 指定可执行文件的名字

gcc编译器默认的生成a.out的二进制文件,后面接-o可以自己命名生成文件。

注:生成文件后缀切记不要用.c,这与原C文件重名会替换掉原C文件。

编译代码:
    gcc hello.c -o hello
运行可执行文件:
    ./hello

 

3.2 代码注释方法已经中英文切换

        中英文切换:

                使用ctrl+space键切换中英文(不同版本设置可能不同,可以查看快捷键确认)

        C语言程序中的注释方法:

        方法1:注释一行

        //...

        方法2:注释多行

        /*

                ...

                ...

                ...

        */

        方法3:注释很多

        #if 0

                ...

                ...

                ...

        #endif

3.3 第一个代码的基本解释

//#include:#开头的代码称之为预处理指令,一般结尾不加;
//          include用于包含调用函数的头文件
//          stdio.h是printf函数的声明所在的头文件,
//                 所以要使用printf函数,就需要包含这个头文件
//          注意:如果是包含头文件,一般使用<>或者""       
#include <stdio.h>

//int main()
//int:函数返回值类型
//main:主函数,是C程序代码的入口,
//      一个C程序必须有并且只能有一个main函数
//():括号里面用于指定参数,如果没有参数可以不写,但是括号必须加
int main()
//{}:大括号里面对应的就是这个函数的指定代码块
{
//printf:是一个函数,功能是向终端输出一个字符串,这是一条程序代码,
//        所以每一条语句后面需要加;
//\n:换行符
	printf("hello, world!\n");
//return:函数执行完毕之后要返回的值就在return的后面指定即可
//        返回的值的类型必须与函数名左边的类型一致
//        主函数最后返回0一般标识当前程序执行结束
	return 0;
}

3.4 gcc编译之后出现问题的解决方法

如果在编译的时候出现警告,例如

大多数的警告都可以忽略,出现警告还是可以生成可执行文件的,所以大多数情况都不会有影响,但是最好将警告也处理了

如果代码在编译的时候出现错误,是不会生成可执行文件的

        出现错误之后是一定要解决,一般gcc编译器会告诉你错误的位置在哪,需要定位到代码的位置之后作出修改,但是有时候位置不太准确,需要在定位的位置的上一行或者下一行去找错误;

上面图片一般的错误表示少;

下图片中的错误是使用了中文的标点符号

以下图片中的错误是函数名写错或者头文件未添加;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有人叫我注孤生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值