【从零开始的嵌入式生活】必备基础知识1——数据的表示和程序编译调试

简介: 【从零开始的嵌入式生活】必备基础知识1——数据的表示和程序编译调试

前言

又鸽了几天,从今天开始的目标是每天一更。记录学习生活

希望大家可以跟着我一起学习,一起加油!

三连即可提高学习效率0.0


🧑🏻作者简介:一个学嵌入式的年轻人

✨联系方式:2201891280(QQ)

📔源码地址:https://gitee.com/xingleigao/study_qianrushi

⏳全文大约阅读时间: 60min


文章目录

 前言

 1.基础知识

 2.数据的表示

 3.程序编译调试

             程序的编译

             程序的调试

 写在最后

1.基础知识

冯﹒诺依曼模型

计算机硬件由下图中的5部分构成

存储程序的思想:系统的运行过程就是按照一定的顺序不断执行存储器中的程序指令的过程

b65aa1d845f1dbbf98d18c3d57c1c42.png

寄存器的分类


主存储器即内存。程序中待处理的数据和处理的结果都存储在内存中。

外存储器是用来长期保存数据的大容量存储器。

寄存器是CPU内部的高速存储器,速度快,数目少。

什么是程序

程序就是系统可以识别的一组有序的指令。存储在磁盘上,被加载到内存中执行。


语言的发展

22b77b696f1770a1910ad42aefe207e.png

程序设计步骤

螺旋前进,不断发展。。。。233

2923eaf6714f15b346da5b8f4c4b4a4.png

2.数据的表示

数值数据的表示

主要包含十进制、二进制、十六进制和八进制

基数与各数位的权


基数是指该进位制中允许选用的基本数码的个数。

位权的大小是以基数为底,数字所在位置的序号为指数的整数次幂。

例如:十进制就是以十为基数的

123 = 1X100 + 2X10 + 3X1

     = 1X102 + 2X101 + 3X100


进制的的转换

十六进制转十进制:

0xa6f = aX162 + 6X161+ fX160= 2560+96+15 = 2671

=(1010 0110 1111)2

=1X211 + 1X29 + 1X26 + 1X25 + 1X23 + 1X22 + 1X21 + 1X20

= 2671

这里其实可以发现十六进制就是一个位变成四个二进制,所以十六进制比较常用


各种数据表示方式

71f1061938311fe65a16c0e94ef0529.png


3.程序编译调试

程序的编译

GCC(GNU Compiler)是GNU推出的多平台编译器

可将C、C++源程序编译连接成可执行文件,支持以下后缀:

02f1c2ac065572e175e2177daf0a6f0.png


02f1c2ac065572e175e2177daf0a6f0.png02f1c2ac065572e175e2177daf0a6f0.png

GCC编译器


gcc –o hello hello.c

1f30f917e27f312b0be537ea32e5d85.png

aabc9ca21ba202f69b7621e0ae2ca98.png

就可以写出来一个hello world小程序了


小练习:

写一个小程序计算1+2+…+10的结果


程序的调试

利用__FILE__,LINE,__FUNCTION__实现代码跟踪调试


#include <stdio.h>
int main(int argc,char **argv)
{
  printf("%s,%s,%d\n",__FILE__,__FUNCTION__,__LINE__);
  return 0;
}


下面的结果就是

39ec8e7f19e7b1bc873c9a65b493dcc.png

可以显示出对应的文件函数和行号


相关文章
|
8月前
|
算法 项目管理 C语言
嵌入式 C 语言大神的进阶之路
嵌入式 C 语言大神的进阶之路
82 0
|
传感器 C语言 芯片
「入门指南」轻松学习嵌入式 GPIO:从原理到应用一步到位
「入门指南」轻松学习嵌入式 GPIO:从原理到应用一步到位
|
C++ 索引 容器
嵌入式C++(十一)
嵌入式C++(十一)
114 0
嵌入式C++(十四)
嵌入式C++(十四)
107 0
【从零开始的嵌入式生活】必备基础知识7——函数(1)
【从零开始的嵌入式生活】必备基础知识7——函数(1)
【从零开始的嵌入式生活】必备基础知识7——函数(1)
|
Serverless
【从零开始的嵌入式生活】必备基础知识7——函数(2)
【从零开始的嵌入式生活】必备基础知识7——函数(2)
【从零开始的嵌入式生活】必备基础知识7——函数(2)
|
机器学习/深度学习 算法 Linux
【从零开始的嵌入式生活】必备基础知识3——输入输出
【从零开始的嵌入式生活】必备基础知识3——输入输出
【从零开始的嵌入式生活】必备基础知识3——输入输出
|
Ubuntu Linux 编译器
【从零开始的嵌入式生活】必备基础知识,从环境安装开始(1)
【从零开始的嵌入式生活】必备基础知识,从环境安装开始(1)
【从零开始的嵌入式生活】必备基础知识,从环境安装开始(1)
|
Ubuntu Linux 数据安全/隐私保护
【从零开始的嵌入式生活】必备基础知识,从环境安装开始(2)
【从零开始的嵌入式生活】必备基础知识,从环境安装开始(2)
【从零开始的嵌入式生活】必备基础知识,从环境安装开始(2)
|
存储 C语言 索引
【从零开始的嵌入式生活】必备基础知识6——指针
【从零开始的嵌入式生活】必备基础知识6——指针
【从零开始的嵌入式生活】必备基础知识6——指针