单片机
返回首页

C语言高级第一节杂谈

2025-02-21 来源:cnblogs

计算机程序 = 代码 + 数据

代码是动作,数据是数字

程序运行的目的:结果,过程

 

冯洛伊曼结构和哈佛结构

冯洛伊曼结构:数据和代码放在一起。

哈佛结构:数据和代码分开存放。

核心点:存放介质是否相同。

在S5PV210的linux系统中,数据和代码存放在DRAM中,属于冯偌依曼结构。

在一般单片机中,代码在Norflash(外存)中,数据存放在ram(内存)中。属于哈佛结构。

 

内存管理方法

(1)操作系统和裸机:

操作系统:使用API管理。

裸机:直接操作内存。

(2)语言角度来说:

汇编:操作内存直接使用地址。

C语言:编译器帮忙管理,通过变量名。如果需要大量内存,在OS中,用malloc,在裸机中,用数组等数据结构。

 

内存编址模型

 把内存看成一栋楼,内存中的单元格好像大楼中一个一个的小房间,

一层有4个房间(32位系统),每个房间有一个编号(地址),每个房间可以

住1个字节(内存编址以字节为单位)。

 

最简单的数据结构:数组

注意:数组的定义是一定要是指明首地址和长度的。变量名代表首元素首地址。

 

结构体内嵌指针实现面向对象

 

1 struct s

2 {

3     int age;                         

4     void (pfunc*)(void)        

5 }


age 相当于class中的成员,用一个函数指针指向一个void func(void)的函数,函数

类似于class中的方法,则可以实现面向对象。

 

四种栈

空栈:栈指针指向空位,每次存入直接存入然后栈指针移动一格,每次取出则先移动一个才能取出

满栈:栈指针指向栈中最后一格数据,每次存入需要先移动栈指针一格再存入,取出直接取出,然后在移动栈指针

增栈:栈指针移动时向地址增加的方向移动的栈

减栈:栈指针移动时向地址减少的方向移动的栈

需要防止栈溢出,不能定义太多局部变量。

 

链表简介

链表是由一个一个节点组成,一个节点包括2个指针,前指针和后指针,前指针指向前一个节点,后指针

指向后一个节点,这样就把一个一个节点连接起来了。


以上比较杂的知识点来自朱老师物联网大讲堂,是自己重复看第二遍的一些不太懂的知识

点。

 

进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 家用电器遥控器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • DS1669数字电位器

  • HA1377 桥式放大器 BCL 电容 17W(汽车音频)

    相关电子头条文章