嵌入式驱动开发学习之路 Day2 Linux环境下vi编辑器以及gcc编译器的使用 2023/10/25

上节知识补充

1.Linux下打开文本编辑指令   相当于Windows下的记事本

gedit filename.txt

Ubuntu窗口下可以使用快捷键ctrl+s保存,用Alt+F4 关闭窗口

查看文件内容:

cat path/filename

 vi/vim编辑器的使用

打开 编辑器 

vi path/filename

注:(文件不存在时会自动创建)

此时进入标准模式

    1.标准模式(默认)Normal:

在标准模式下,可以执行以下操作
  复制 : 将光标移动到需要复制的行 n + yy
  粘贴 : 将光标移动到需要粘贴的行 p
  剪切 :将光标移动到需要剪切的行 n + dd
 撤销 : u
  选中操作: v + 移动选中范围 + y(复制)、d(剪切) + p (粘贴)
查询: /关键词  寻找时按键盘 n下一个,上一个:shift + n;
    2.插入模式:键盘的输入会定向到文件内容缓冲区;  标准模式 => 插入模式:按键盘的“i”键位

 插入模式 => 标准模式;Esc
    3.命令模式:键盘的输入会定向到底行命令缓冲区;
    标准模式 => 命令模式:shift“:”+ 命令

其中的命令有以下几种:
    w: 写入;
    q: 退出;
    !:强制执行
    wq:保存并退出
    q!:强制退出
    水平分屏: vsp + path/filename
     垂直分屏: sp + path/filename
        切换:ctrl + ww
        wqa: 全部保存并退出;

常用的操作是按Esc退出插入模式 ,然后按shift+: 输入wq  保存编辑并推出。

:wq

第一个c语言代码

编辑源码:不带.c后缀 没有高亮提示
         

vi/vim  hello.c
#include<stdio.h>   //包含头文件
int main(void)      //主函数函数首部
{
    printf("Hello world!\n");
    return 0;
}

编译源码:不带.c后缀 不能编译
    gcc  + xxx.c
    warning :警告 在编译过程中,遇到未知风险;
    error:    错误 在编译过程中,遇到致命问题;  

无论是警告⚠,还是错误❌ 都需要去改错。
  编译出可执行文件 (绿色)并起名  gcc xxx.c -o xxx.out

使用  ./xxx.out 来执行文件

进制转换  注: 此部分参考【精选】超详细进制转换(二进制、八进制、十进制、十六进制)详解_爱躺平的威威的博客-CSDN博客

这里选择一些我比较薄弱的地方进行复习。

整型有4种进制形式:
1.十进制,简写为D: 都是以0-9这九个数字组成,不能以0开头。
2.二进制,简写为B: 由0和1两个数字组成。
3.八进制,简写为O: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。
4.十六进制,简写为H:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。

十进制=>其他进制

1.十进制转二进制的原理:

整数部分:十进制数除以2,余数为权位上的数,得到商继续除以2,直到商为0终止,然后反向取余数。

小数部分:乘2取整,直到符合要求为止,顺序输出

如78.725的整数部分为78,小数部分为0.725

 

78=64+8+4+2     =>    1001110          这步可以按128 64 32 16 8 4 2 1分别对应位置1111 1111  
0.725×2=1.45  ........1

0.45×2  =0.9      ........0

0.9×2=1.8  ........1

0.8×2=1.6..............1

0.6×2=1.2..............1

0.2×2=0.4..............0

0.4×2=0.8................0

............  取不完无穷了

按顺序取整    1011100

78D=1001110.1011100B

十进制转其他进制同理

2.其他进制转十进制

把R进制数按权展开、相加即得十进制数。 

3.二进制转其他进制

程序 = 数据结构 + 算法

对数据的描述。在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。这就是数据结构(data structure)。

对数据的描述。在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。这就是数据结构(data structure)。

如何区分数据结构和算法?

        假设我们要设计一个可以查询电话号码的号码簿,那么

  • 如何表示和存储电话号码簿的所有信息—数据结构设计
  • 如何实现快速查找----算法设计

算法 = 逻辑 + 控制

软件 = 数据结构 + 算法 + 文档

C语言的基本数据类型

32位平台下

数据溢出

数据类型确定了这个空间所能盛放的数据的最大值和最小值。

比如:char a;那么a的数据大小为:-2^7~2^7-1即:-128~127

unsigned char a;那么a的取值范围为:0~2^8-1 即0~255

如果使用char型存放一个200,那么就超出了char型数据所能表示的数据范围,程序会按照一定的规则将这个200转化为-128~127这个范围中的某个数后再去进行存储。

规则:

数据范围的表示是一个环状结构.

如果数据增长到最大值,则数据从最小值方向开始依次递增

如果数据减到最小值,则数据从最大值方向开始依次递减

sizeof运算符
            获取变量或者数据类型在内存中占用的字节数;

内存与cpu

  • 越靠近CPU价格越贵,访问速度越快,容量越小

机算机中主要的存储部件是内存和磁盘。磁盘中存储的程序加载到内存中运行。即使CPU可以直接读出并运行磁盘中保存的程序,由于磁盘读取速度慢,程序的运行速度还是会降低的。

  • CPU访问速度从快倒慢依次为:1.寄存器 2.一级缓存 3.二级缓存 4.三级缓存 5.内存 6.硬盘

硬件结构

  • 地址总线:专门用来指定 CPU 将要操作的内存地址。
  • 控制总线:发送和接受信号,常见信号例如:复位(初始化操作)、中断请求/响应、存储器读写、IO读写
  • 数据总线:主要用于在CPU 和内存之间往返传输需要处理或存储的数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值