首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux开发stm32 ③ | 寄存器工程开发

先来回顾一前两篇 Linux开发stm32(一) | 使用gcc-arm-none-eabi工具链编译 Linux开发stm32(二) | 使用openocd下载与调试 前两篇我们介绍了如何创建一个空的裸机工程...main文件),并编译工程生成elf文件,然后将其转为bin格式或hex格式,使用openocd下载,最后编写了一个makefile雏形,并成功点亮了一个LED~ 但是这个LED我们是通过指针直接操作寄存器地址来完成的...,接下来,我们在此基础上,引入stm32头文件,其中包含了寄存器的宏定义,也就是使用寄存器进行开发~ 1.创建寄存器工程 首先将上一节中创建的裸机工程00-template-reg复制一份出来,改名为01...0x40010c00+0x0c) &= ~(1<<0); GPIOB->ODR &= ~(1<<0); while(1); } void SystemInit(void) { } 至此,寄存器工程创建完毕...,接下来开始编译~ 2.编译&下载寄存器工程 编译寄存器工程的重点就在于C头文件和C源文件,启动文件的编译和链接都和之前一样。

1.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【操作系统】操作系统运行环境——处理器的运行模式

    内核程序指的是操作系统的底层程序,操作系统是基于内核程序才得以实现的,就比如Linux系统,Linux作为一款开源的操作系统,它的内核程序我们可以在https://mirrors.edge.kernel.org...特权指令:是指不允许用户直接使用的指令,如I/O指令、置中断指令,存储用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令。...在计算机的CPU中有一个程序状态字寄存器PSW),这个寄存器的作用就是来存储此时的CPU对应的运动模式的。...当寄存器中的标志位的二进制为0时,此时的CPU处于核心态,在核心态的状态,CPU可以执行特权指令; 当寄存器中的标志位的二进制为1时,此时的CPU处于用户态,在用户态的状态,CPU可以执行非特权指令...在处理器执行这两种程序时会分别处于两种状态: 内核态可执行内核程序; 用户态可执行应用程序; 处理器这两种状态的转换是通过程序状态字寄存器PSW)来实现的: 当PSW中的标志位为0时,表示此时的CPU

    17410

    操作系统-进程(1)进程与进程调度「建议收藏」

    Intel架构linux操作系统中的一个进程对应的虚拟地址空间映像如图所示: 整个虚拟地址空间分为两大部分:内核虚拟存储空间(简称内核虚拟空间)和进程虚拟存储空间(简称用户空间)。...:数据寄存器、地址寄存器 控制与状态寄存器内容:PC、IR、PSW 栈指针内容:核心栈与用户栈指针 控制信息:用于存放与管理、调度进程相关的信息 调度相关信息:状态、等待事件/原因、优先级 进程组成信息...进程资源清单信息:如正占有的资源、已使用的资源 (2)进程程序块: 进程执行的程序空间 (3)进程数据块: 进程处理的数据空间,包括数据、处理函数的用户栈和可修改的程序 (4)进程核心栈: 进程在内核模式运行时使用的堆栈...进程上下文包括: (1)用户级上下文:用户程序块/用户数据区/用户堆栈/用户共享内存组成的用户空间信息 (2)寄存器上下文:即进程的现场信息,包括PSW/栈指针/通用寄存器。...总结,Linux是以链表方式管理用户空间中的区域area,内核不需要记录那些不存在的页面。

    58020

    MCS-51单片机原理_51单片机的基本结构

    的数据RAM区进行读/写操作 运算器 作用:对数据进行算术运算和逻辑操作 组成:算术/逻辑部件ALU +累加器ACC+程序状态字寄存器PSW+其它工作单元 功能: (1)对暂存器中的数据进行运算...(2)结果保存在ACC中 (3)运行状态反映在PSW中 累加器(Accumulater——A) 累加器A是一个8位寄存器,用来存放操作数或中间运算结果 通过暂存器与ALU相连 它是CPU中使用最频繁的寄存器...程序状态字寄存器(Program State Word——PSWPSW是一个8位的专用寄存器,用于存放程序运行过程中的各种状态信息。...寄存器名称 功能 CY(PSW.7) 进位标志 AC(PSW.6) 辅助进位标志 F0(PSW.5) 用户标志位(用户可自定义) RS1(PSW.4) 工作寄存器组指针 RS0(PSW.3) 工作寄存器组指针...OV(PSW.2) 溢出标志 F1(PSW.1) 用户标志位(用户可自定义) P(PSW.0) 奇偶标志位 MCS-51引脚及功能 电源及晶振引脚(共4只) 控制引脚(共4只) 输入/输出引脚

    1K20

    【快速解决】实验一:模拟实现进程的创建《操作系统上机》实验报告

    用大写的全局变量AX、BX、CX、DX模拟通用寄存器、大写的全局变量PC模拟程序计数器、大写的全局变量PSW模拟程序状态字寄存器。...注意: 这篇文章中小光会带你们将老师布置的实验内容这部分,详细的讲解一,大家可以直接复制代码,也可以学习一怎么写,在这个基础上加以拓展,这样就不会查重了。...p->pid, p->state, p->ax, p->bx, p->cx, p->dx, p->pc, p->psw); } return 0; } 对以上代码进行一解释防止有人看不到创建过程...: 添加了ax、bx、cx、dx通用寄存器 添加了pc程序计数器 添加了psw程序状态字寄存器 这样PCB中就包含了所需的标识信息、说明信息、现场信息和管理信息。...以此类推,将cx、dx、pc和psw寄存器都设置为了0。 之所以要这么做初始化,主要有以下两个原因: 刚创建的新进程,它的寄存器内容应该是未定义的。

    21810

    单片机c51头文件的解释

    打开 reg51.h 可以看到这样的一些内容:   此文件一般在 C:\KEIL\C51\INC ,INC 文件夹根目录里有不少头文件,并且里面还有很多以公司分类的文件夹,里面也都是相关产品的头文件...  第一种方法:sbit 位变量名=地址值   第二种方法:sbit 位变量名=SFR 名称^变量位地址值   第三种方法:sbit 位变量名=SFR 地址值^变量位地址值 如定义 PSW...中的 OV 可以用以下三种方法:   sbit OV=0xd2 (1)说明:0xd2 是 OV 的位地址值   sbit OV=PSW^2 (2)说明:其中 PSW 必须先用 sfr 定义好...程序状态寄存器 Program Status WORD=PSW (程序状态信息) 3)内存、SFR、位、地址等的通俗解释   前面讲到了寄存器地址和位地址(前提能位寻址)声明的目的是为告诉 C 编译器相应寄存器及其位在内存中的地址...上段文字出现了寄存器(SFR)、位、地址、内存等,单片机学习过程中还会出现ROM、RAM 等名词,可能大家觉得不是很好理解,这里可以通俗的解释一

    2.4K20

    操作系统 运行机制

    指令寄存器(IR):包含了最近取出的指令。 程序状态字(PSW):记录了处理器的运行模式信息。...CPU根据指令将R1寄存器和立即数1相加。 访存指令MOVE被取到IR中,PC变为2004h。 特权指令与非特权指令 单用户单任务使用计算机指令系统中的全部命令。...限制用户程序执行特权指令 程序状态字PSW 程序状态字PSW:用程序计数器PC这个专门的寄存器来指示下一条要执行的指令。...操作系统同时将该作业的存储键号存放到程序状态字PSW的存储键域中,这样,每当CPU访问主存时,都将对主存块的存储键与PSW中的钥匙进行比较。如果相比配,则允许访问;否则,拒绝并报警。...在程序状态字PSW中设计有中断屏蔽位,主机是否允许响应或禁止某些中断,则由PSW中的中断屏蔽位决定,这些屏蔽位标识了那些被屏蔽中断类或者中断。

    1.1K00

    51单片机流水灯的三种实现方法「建议收藏」

    首先,介绍原理。下图为主控芯片和流水灯模块的原理图。流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯。相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。...接下来还是先讲一移位的小知识点吧。 左移。C52中操作符为“<<”,每执行一次左移指令,被操作的数将最高位移入单片机PSW寄存器的CY位。...寄存器。...PSW(Program StatusWord)全称为程序状态字标志寄存器,是一个8位寄存器,位于单片机片内的特殊功能寄存器区,字节地址D0H,用来存放运算结果的一些特征,如有无进位、借位等。...使用汇编编程时PSW寄存器很有用,但在利用C语言编程时,编译器会自动控制该寄存器,很少人为操作它,大家只需做简单了解即可。

    3.6K20

    C51 常见数据类型详解

    目录 背景知识 数据类型总结 1、位变量——bit 2、特殊功能寄存器——sfr 3、16位特殊功能寄存器——sfr16 4、可寻址位——sbit 5、指针类型 类型转换 ---- 背景知识 Keil...3、16位特殊功能寄存器——sfr16         同sfr一样,sfr16为C51的扩充数据类型,只不过是用来定义单片机的内部16位特殊功能寄存器,并且占用两个内存单元。...例如:    sfr   PSW=0xD0 ; /* 定义PSW寄存器地址为D0H */    sbit  OV=PSW^2 ; /* 定义OV位为PSW.2,地址为D2H */    sbit  CY...=PSW^7 ;/* 定义CY位为PSW.7,地址为D7H */ 第二种格式:       sbit  bit-name = int constant^int constant; “=”后的int constant...为寻址地址位所在的特殊功能寄存器的字节地址,“^”符号后的int constant为寻址位在特殊功能寄存器中的位号。

    3.1K20

    单片机基础知识整理

    总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况可以不要并行扩展总线...寄存器组的切换,可由程序状态字(PSW)中的RS1、RS0来决定 RS0 RS1 寄存器组 位址 0 0 RB0 0000H~0007H 0 1 RB1 0008H~000FH 1 0 RB2...PSW PSW为CPU的程序状态字寄存器,其地址为D0H,其内容如下: 7 6 5 4 3 2 1 0 PSW CY AC F0 RS1 RS0 OV P PSW.7:本位为进位位(CY),加减法时产生进位或错位...PSW.4与PSW.3:这两个位为寄存器组选择位(RS1、RS0),其功能如下表所示。...RS1 RS0 寄存器组 0 0 RB0 0 1 RB1 1 0 RB2 1 1 RB3 PSW.2:本位为溢出标志位(OV),运行时,若发生溢出,为1,否则为0。

    1.3K20

    计算机组成原理 CPU的功能和基本结构和指令执行过程

    CPU的基本结构透明性用户可见的寄存器 (对用户不透明,用户可编程) : PSW.ACC,Ri.PC用户不可见的寄存器 (对用户透明,用户不可编程) : SR,T,MAR,MDR,IR控制信号使用多路选择器根据控制信号选择一路输出使用三态门可以控制每一路是否输出运算器...它是一个通用寄存器,用于暂时存放 ALU运算的结果信息,可以作为加法运算的一个输入端5) 程序状态字寄存器PSW。...PSW中的这些位参与并决定微操作的形成。6) 移位器SR。对操作数或运算结果进行移位运算。7) 计数器。控制乘除运算的操作步数1) 程序计数器: 用于指出下一条指令在主存中的存放地址。...微操作信号发生器: 根据IR的内容 (指令) 、PSW的内容 (状态信息) 及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种,6) 存储器地址寄存器: 用于存放要访问的主存单元的地址...从主存中取出并执行一条指令的时间称为指令周期,不同指令的指令周期可能不同指令的不确定性时钟周期数不同,每个机器周期内的节拍数也可能不同常见类型的指令指令执行方案单指令周期每个指令时间可能不同,但是在单指令周期

    35910

    基础总结 (操作系统篇)

    )、IR(指令寄存器)、PSW(程序状态字)、BP/EBP(指向当前函数栈底的地址)、SP/ESP(当前函数栈顶)、DX(数据寄存器) SP/ESP(栈指针寄存器) BP/EBP(基址指针寄存器)也叫堆栈指针...调度时Cpu的硬件上下文(pc,sp,psw)会存到进/线程的thread_struct里,通用寄存器保存在内核栈,thread_info用于系统快速找到task_struct ---- 虚拟文件系统与具体文件系统...默认:最高地址空间的空闲内存超过128K时,执行内存紧缩操作(trim)。 malloc流程:调用时搜索空闲内存块,若找到大小合适的则分配出去。...3.切换硬件上下文(pc程序计数器, psw程序状态寄存器, sp堆栈指针)。Linux里, 硬件上下文大部分是在在thread_struct中的, 通用寄存器是保存在内核栈....且cpu切换耗时成本比协程高 2.硬件上下文(pc程序计数器,psw程序状态寄存器,sp堆栈指针)。linux里 大部分是被保存到thread_struct里的,通用寄存器是保存在内核栈。

    37130

    Linux为什么区分内核空间和用户空间 ???

    为了保护内核的安全,操作系统一般都限制用户进程不能直接操作内核,在32位操作系统总的地址空间4G(2^32 = 4GB),实现这个限制的方式就是操作系统将总的地址空间分为两个部分,对于Linux操作系统...在内核态,CPU可以执行指令系统的全集,也就是说内核态进程可以调用系统的一切资源,但是特权指令只能在内核态执行,它不直接提供给用户使用,用户态只能使用非特权指令,也就是说用户态进程只能执行简单运算...有一个标志寄存器,又称程序状态字寄存器PSW(Program Status Word),有一个标志位来标识处理器当前处于哪一个状态,比如0是处于用户态,1是处于内核态,有了这个状态就能判断该使用什么指令...Linux操作系统通过区分内核空间和用户空间的这种设计,将操作系统代码和用户程序代码分开,这样即使在某一个应用程序出错,也不会影响到操作系统,再说,Linux操作系统是多任务系统,其它应用程序不也还能运行

    1.7K10

    linux安装opencv_linux安装pycharm

    ,进入到Linux版的RabbitMQ下载页面中 7、找到Download的 rabbitmq-server-generic-unix-3.7.16.tar.xz下载链接并点击,开始进行下载RabbitMQ...三、把下载好的RabbitMQ 和 Erlang上传到Linux服务器上 1、打开WinSCP,把我们下载好的RabbitMQ 和 Erlang安装包,上传到Linux的 /mnt/ 文件目录下...2、使用putty连接到我们的Linux服务器,进入到/mnt/ 文件目录中,并解压上传的RabbitMQ 和 Erlang安装包 [root@localhost ~]# cd /mnt/ //...PID file not written; -detached was passed. 5、在浏览器的地址栏中输入你 服务器的ip地址:15672,即可访问RabbitMQ的管理登录界面,例如我的Linux...(3)策略制定者(policymaker):可登陆管理控制台(启用management plugin的情况), 同时可以对policy进行管理。

    24.7K10

    什么叫操作系统啊 | 战术后仰

    还有一个寄存器PSW(Program Status Word) 程序状态字寄存器,这个寄存器是由操作系统维护的8个字节(64位) long 类型的数据集合。它会跟踪当前系统的状态。...除非发生系统结束,否则我们可以忽略 PSW 。用户程序通常可以读取整个PSW,但通常只能写入其某些字段。PSW 在系统调用和 I / O 中起着重要作用。 操作系统必须了解所有的寄存器。...通常情况PSW 寄存器中的一个二进制位会控制当前状态是内核态还是用户态。当运行在内核态时,CPU 能够执行任何指令集中的指令并且能够使用硬件的功能。...一般情况,在用户态,有关 I/O 和内存保护的所有指令是禁止执行的。当然,设置 PSW 模式的二进制位为内核态也是禁止的。...一旦中断处理程序(中断设备的设备驱动程序的一部分)开始后,它会移除栈中的程序计数器和 PSW 寄存器,并把它们进行保存,然后查询设备的状态。

    55110

    Linux At 命令

    一、安装At 取决于不同的发行版,at在你的 Linux 系统中可能有,也可能没有。 如果at没有被安装,你可以很容易地使用你发行版的软件包来安装它。...例如,想要创建一个任务,运行脚本: /home/linuxize/script.sh: at 09:00 -f /home/linuxize/script.sh 默认情况,这个命令会产生输出,一旦任务完成...at 09:00 -m 三、batch命令 batch或者它的关联at -b预定任务并且在系统负载允许的情况,批量执行任务。默认情况,当系统平均负载在1.5以下的时候,任务将会被执行。...下面是一个例子: at -t 202005111321.32 五、指定队列 默认情况,由at创建的任务被计划在命名为a的队列,并且由batch创建的任务被计划在b队列。...默认情况,仅仅/etc/at.deny文件存在,并且是空的,这意味着所有用户可以使用at命令。如果你想禁止某一个用户的权限,将他的用户名添加到这个文件中。

    18.7K30

    Linux 基础

    [查找标准] [查找到以后的处理动作] 查找路径,默认为当前目录 查找标准,默认为指定路径的所有文件 -name 'filename' //对文件名作精确匹配...-gid //根据GID进行查找,当用户被删除以后文件的属组会变为此用户的GID -nouser //查找没有属主的文件.用户被删除的情况产生的文件...,只有uid没有属主 -nogroup //查找没有属组的文件.组被删除的情况产生的文件,只有gid没有属组 -type //根据文件类型来查找...文件并且删除 find / -name "abc.txt" -ok cp -r {} /home/canxun/ \; //查找abc.txt文件并且确认复制到/home/canxun/...find / -name "abc.txt" -exec mv {} /home/canxun/ \; //查找abc.txt文件并且不需要确认移动到/home/canxun/

    2.9K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券