- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 Cortex_M3之启动文件和MDK编译讲解
本小节总结一下CM3的启动文件和MDK编译相关的内容,启动文件是系统上电之后执行的第一个指令文件,是程序入口,C环境的运行是在此文件代码执行完成之后开始执行的。启动文件由汇编指令编写,本文主要是基于MDK平台介绍启动文件内容。由于STM32也是CM3的内核,所以启动文件内容取自STM32的官方文件。废话少说,干货开始。
2024-03-25 20:52:07 989
原创 嵌入式软件之链接脚本
编译:将源代码(如C或C++)转换为汇编语言。汇编:将汇编语言转换为机器代码。链接:将多个对象文件和库合并成一个单一的可执行文件。RAM:用于存储变量和程序数据。ROM:用于存储程序代码和常量数据。Stack:用于存储局部变量和函数调用的返回地址。Heap:用于动态内存分配。ELF(Executable and Linkable Format)是一种常用的可执行文件格式。它包含了程序的代码、数据、符号表等信息,可以帮助链接器正确地组合各个代码和数据段。
2024-03-22 16:16:57 857
原创 Cortex_M3基础
Cortex‐M3 的基础主要包含寄存器组,处理器操作模式,异常和中断堆栈区的操作 部分知识。需要特别掌握的知识是处理器的模式和堆栈指针的使用,特别是双堆的使用方式,虽然在工作过程中不需要我们操作这些寄存器,但是对于需要移植操作系统的工程师来说,理解这部分的知识是非常有必要的。为什么CM3要有两个堆栈指针。这么设计的好处是什么?可以带着这个问题阅读下面内容。
2024-03-18 19:35:13 993
原创 Cortex_M3之内核概览
Cortex-M3 是一个 32 位处理器内核。内部的数据路径是 32 位的,寄存器是 32 位的,存储器接口也是 32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统),寻址空间为 4GB。简化框图如下图所示:指令执行单元:由指令预取单元、指令译码、算数逻辑运算单元、寄存器组组成跟踪调试系统存储器接口:提供AHB接口信号的指令总线和数据总线。中断控制器(NVIC)
2024-03-11 17:01:39 1133
原创 CPU知识简介
指令集架构主要分为复杂指令集(CISC)和精简指令集(RISC),这两者的区别如下:CISC不仅包含了处理常用的指令,还包含了许多不常用的特殊指令,其指令数目比较多,所以称为复杂指令集.RISC只包含处理器常用的指令,对对于不常用的操作,则通过执行多条常用指令的方式来达到同样的效果,由于其指令数目比较精简,所以称为精简指令集。自从RISC诞生后,基本上所有现代指令集架构都选择使用RISC架构。指令集是设计CPU的灵魂。
2024-03-11 10:32:05 502
原创 Python学习总结
计算机在解决某个具体问题时,主要有3中情形,分别为顺序执行所有语句,选择执行部分语句和循环执行部分语句。位运算符是把数字看作二进制进行计算,主要按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移位()。如果表达式的值为真,执行语句块,否则跳过语句块继续执行后面的语句,这种形式的语句相当于汉语里面的“如果…先计算中间的条件(a>b),如果结果为True,则返回if语句左边的值,否则返回else后面的值。主要有=、+=、-=、*=、/=、%=、**=、//=等。
2024-01-03 19:53:01 357
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人