【从零开始的嵌入式生活】必备基础知识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

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


相关文章
|
存储 域名解析 供应链
阿里云 OSS对象存储攻防
本文分为两个部分 第一部分介绍OSS对象存储攻防的方式 第二部分为真实漏洞案例
3299 0
阿里云 OSS对象存储攻防
|
12月前
|
人工智能
智谱 AI 大模型
智谱是清华大学技术成果转化公司,推出中英双语千亿级大模型 GLM-130B、对话模型 ChatGLM、开源模型 ChatGLM-6B、AI 提效助手智谱清言、高效率代码模型 CodeGeeX、多模态理解模型 CogVLM、文生图模型 CogView 和文生视频模型 CogVideo。是国内开源大模型的领先者,大模型领域的经典成功商业案例。
|
小程序 Java 关系型数据库
基于springboot的场地预约小程序的设计与实现(程序+数据库+文档)
基于springboot的场地预约小程序的设计与实现(程序+数据库+文档)
|
弹性计算
阿里云服务器“带宽计费模式”是什么意思?
阿里云服务器“带宽计费模式”是什么意思?阿里云服务器带宽计费模式分为“按固定带宽”和“按使用流量”,有什么区别?按固定带宽是指直接购买多少M带宽,比如1M、5M、10M、100M等,阿里云直接分配用户所购买的带宽值,根据带宽大小先付费再使用;按使用流量是先设置一个带宽峰值,然后根据实际公网产生的出流量来计算费用,先使用后付费
|
Arthas Kubernetes 调度
一次线上Xxl-Job定时任务调度失败的排查与解决
在XXL-JOB系统中,每分钟执行一次的任务出现调度异常:首次调度成功,第二次调度失败,但第三次调度显示的是第二次任务的执行时间。问题源于调度中心发送的心跳请求未得到执行器响应,导致连接被Envoy代理关闭。Envoy在等待心跳响应时,后续调度请求被阻塞,直至连接因超时关闭。调度中心收到503响应后也会关闭连接,从而影响第三次调度。解决方案是更新执行器以处理心跳请求或配置Istio Sidecar以绕过Envoy代理特定流量。
3157 1
|
Android开发 芯片
Android源代码定制:移除无用lunch|新建lunch|自定义customize.mk
Android源代码定制:移除无用lunch|新建lunch|自定义customize.mk
717 3
|
应用服务中间件 nginx Windows
windows下快速安装nginx 并配置开机自启动
windows下快速安装nginx 并配置开机自启动
1863 0
windows下快速安装nginx 并配置开机自启动
TortoiseGit 代码版本回退及返回
TortoiseGit 代码版本回退及返回
1778 1