问题汇总20231103

文章目录

    • 前言
    • 问题汇总
      • 1.所有操作系统在CPU层面上是不是都为时间片轮转的形式处理程序?只是任务调度的调度算法不同?那多线程的本质也是时间片吗?只不过很小?
      • 2.Mcu和mpu的本质区别
      • 3.下载HAL库步骤
      • 4.RAM,ROM,SRAM,SDRAM,DDR内存
      • 5.编译过程
      • 6.STM32Cubemx离线库导入问题

前言

本篇为新专栏,是我的日常中,自己开发和学习中遇到的疑问,以及在各种嵌入式群中收到小白的疑问或大佬的讨论问题的一个汇总专栏,平时遇到的问题层出不穷,这次找到了下次就找不到了,下次遇见还要再搜,为了避免这种低效率解决问题,我们尽量不犯相同的问题以及对之前的问题进行总结学习,其中有大有小,有需要的可以参考,有错误的尽情指出!内容中有参考博文我会附上原文链接,原博主如有疑问可联系本人删除。

问题汇总

1.所有操作系统在CPU层面上是不是都为时间片轮转的形式处理程序?只是任务调度的调度算法不同?那多线程的本质也是时间片吗?只不过很小?

是的,在本质上都是以时间片轮转的形式处理的,只是算法不同,有的任务调度需要考虑优先级、优先级相同的要抢占,不同的操作系统有不同的任务调度方式。只是看起来同步操作了。
-操作系统只是资源管理,一个单核的cpu的调度还是一个任务,本质都是每块时间片运行一个程序,算法不同是指,有抢占式调度、算法决策。

2.Mcu和mpu的本质区别

问题汇总20231103_第1张图片

3.下载HAL库步骤

-st官网->工具与软件->开发工具->软件开发工具->软件开发工具数字消费平台->微控制器软件->STM32微控制器软件->mcu/mpu包->选择对应芯片的型号进行下载pack

4.RAM,ROM,SRAM,SDRAM,DDR内存

-RAM: 随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失。比如内存条、 SRAM、 SDRAM、 DDR 等都是 RAM。RAM 一般用来保存程序数据、中间结果。
-ROM: 只读存储器,也叫flash, 但是可以进行写操作的,只是写起来比较麻烦,要先进行擦除,然后再发送要写的地址或扇区,最后才是要写入的数据,相比于RAM,像ROM 或者 Flash 写入数据要复杂很多,容量大,而且掉电以后数据不会丢失。
-SRAM(Static Random-Access Memory): 静态随机存储器,这里的“静态”指的是只要 SRAM 上电,SRAM 里面的数据就会一直保存着,直到 SRAM 掉电。对于RAM 而言需要可以随机的读取任意一个地址空间内的数据,因此采用了地址线和数据线分离的方式。
与 SRAM 相比, SDRAM 集成度高、功耗低、成本低、适合做大容量存储,但是需要定时刷新来保证数据不会丢失。因此 SDRAM 适合用来做内存条, SRAM 适合做高速缓存或 MCU内部的RAM。
-DDR(Double Data Rate SDRAM): 双倍速率 SDRAM, DDR 内存是 SDRAM 的升级版本,SDRAM 在一个 CLK 周期传输一次数据, DDR 在一个 CLK 周期传输两次数据,在上升沿和下降沿各传输一次数据,这个概念叫做预取(prefetch),相当于 DDR 的预取为 2bit
-SDRAM 速度一般是 133200MHz,对应的传输速度就是133200MT/s(MT/s:每秒多少兆次数据传输,单位时间内传输速率),DDR 的传输速度就变为了 266~400MT/S
参考博文:https://blog.csdn.net/qq_53144843/article/details/122809159

5.编译过程

源代码->预处理->编译->目标代码->链接->可执行程序
1、预处理(The Preprocessor)
预处理器产生编译器的输入。通过预处理,将存储在不同文件中的程序模块集成为一个完整的源程序代码,并将宏展开为原始语句加入到头文件中。简单概括就是:文件合并、宏定义替换、删除注释等。
2、编译(The Compiler)
编译器将独立于目标的高级语言源代码转换为特定于目标的汇编代码。由于汇编程序代码是特定于目标硬件的,所以编译器也特定于目标硬件。
编译阶段首先对源代码的语法进行检查,然后对代码进行优化,最终生成机器目标代码——汇编代码。此时生成的文件为.S文件。
3、汇编(The Assembler)
通过编译器产生的汇编代码需要交由汇编器进行进一步的处理,生成可重定位的机器代码,体现在文件上为将.s文件转换为.o文件。此时生成的.o文件为二进制文件。
4、链接(The Linker)
经过汇编后的.o文件仍然是不可执行的,还需要经过链接阶段,将程序所引用的外部文件(库函数、链接脚本等)关联起来,生成可执行文件。
原文链接:https://blog.csdn.net/zjq1042970687/article/details/107661871

6.STM32Cubemx离线库导入问题

从官网下载后选择本地库的pack包导入
-导入失败下载在线包
-在线下载失败,注册账号+在线下载就好了

你可能感兴趣的:(问题汇总,嵌入式硬件,单片机)