标签: microprocessors

屏幕截图如何从软件角度运作

屏幕截图如何从系统角度运行.我试过做一些搜索,似乎我发现的所有网站都是"如何拍摄截图".

我对截图的操作方式更感兴趣,假设我构建了自己的具有屏幕的小设备,并且数据正在屏幕上显示,如何实现屏幕截图(高级别,尽管如果你想我想的话)在我的设备上,一个例子很好).

编辑:我看到我有一个请求关闭,我想这个问题太难以回答没有一个非常具体的背景,也许这最终会被认为是过时的,任何建议如何发布这样的问题,如果这是不是正确的地方?

linux windows screenshot microprocessors

6
推荐指数
1
解决办法
2420
查看次数

无法在Core i7中禁用硬件预取程序

尝试在我的Core i7系统中禁用硬件预取程序时,我收到错误.我按照链接按照方法如何以编程方式禁用硬件预取?

在我的系统中

grep -i msr/boot/config - $(uname -r)

CONFIG_X86_DEBUGCTLMSR = Y

CONFIG_X86_MSR = Y

CONFIG_SCSI_ARCMSR =米

这是我的错误消息

root @ ./rdmsr 0x1a0

850089

[root @ ./wrmsr -p 0 0x1a0 0x850289(禁用Core i7中的硬件预取器)

wrmsr:pwrite:输入/输出错误

我在禁用Adjacent cache line prefetcher时收到同样的错误

知道如何解决这个问题吗?提前致谢 .

linux cpu-architecture prefetch microprocessors msr

6
推荐指数
2
解决办法
2369
查看次数

Gadzooks!建筑比比皆是!寻找嵌入式处理器/控制器分类

我正在寻找嵌入式处理器的分类.哪些处理器属于哪个系列?谁下了谁?

这里有没有人知道描述它的简单文章?

embedded microcontroller taxonomy microprocessors

5
推荐指数
1
解决办法
168
查看次数

5
推荐指数
2
解决办法
4万
查看次数

为什么24位寄存器?

在我的工作中,我处理不同的微控制器,微处理器和DSP处理器.其中许多都有24位寄存器和计数器.

我知道如何使用它们,这不是我的问题.

我的问题是为什么他们有24位注册!为什么不把它变成32位?据我所知,这不是大小问题,因为寄存器已经是32位,但最大为0xFFFFFF.

这样可以更容易地实现硬件吗?更快的计算?或者只是"嗯,让24位寄存器让程序员的工作变得更加困难"?

microcontroller microprocessors 24-bit

5
推荐指数
1
解决办法
531
查看次数

我们是否也将寄存器 RAX、RBX 等称为 R1、R2 等?

我正在研究 8086/8080 微处理器。其中使用的寄存器有名称,

  1. 雷克斯
  2. RBX
  3. RCX
  4. RDX

当寄存器被命名为 R8、R9... 到 R15 时,继续直到 R8。我想知道

我们是否也将寄存器 RAX、RBX 等称为 R1、R2 等?

x86 x86-64 cpu-registers microprocessors

5
推荐指数
2
解决办法
2311
查看次数

在什么情况下内存是字节或字可寻址的以及为什么

内存可以是字节可寻址的,也可以是字(2字节、4字节等)可寻址的(如果我错了,请纠正我)。

这(字节可寻址或字可寻址)取决于处理器架构吗?如果是,在什么情况下我们使用字节可寻址内存,在什么情况下我们使用字可寻址内存?

其原因是什么?换句话说,为什么存储器字节可寻址(如果是这样)以及为什么字可以寻址(如果是这样)及其原因。我在这个网站上看到了一些关于字节可寻址内存的问题,但没有人提供这些问题的答案。

memory cpu-architecture microprocessors

5
推荐指数
1
解决办法
1500
查看次数

STM32 裸机 C - 无法让 LED 工作

因此,我目前正在学习 STM32 微处理器课程,但是,我似乎连最基本的事情都失败了:打开 LED。完整的代码位于这篇文章的底部。

重要的:

  • 硬件运行正常。
  • 我使用的是STM32L432KC。

首先,我们要弄清楚内置LED在哪个引脚上。根据制造商手册,LED 应位于引脚 D13 (PB3) 上。 在此输入图像描述


好的,我们正在寻找 PB3。根据 STM32L432KC 的数据表,PB3 位于 B 端口,因此连接到高性能总线,如下图所示。 在此输入图像描述


凉爽的。所以我们的总线是 AHB2,我们正在使用 GPIOB。现在我们必须使用 RCC_AHB3ENR 寄存器启用该总线上的时钟。现在,这是我可能会犯错误的部分(否则这篇文章就不会存在),所以请密切注意。如果我理解正确,我希望将位 1 设置为 1,因为这表示“GPIOBEN”设置为“IO 端口 B 时钟启用”。 在此输入图像描述 在此输入图像描述

这让我相信我应该按如下方式设置总线寄存器:

RCC->AHB2ENR |= 0x2;
Run Code Online (Sandbox Code Playgroud)

接下来我必须将 GPIO 引脚的模式设置为输出。根据课程和我的文档,这是使用 GPIOx_MODER 完成的。 在此输入图像描述

这让我相信我应该按如下方式设置 GPIO 模式:

GPIOB->MODER |= 0x40;
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的一点是,要打开实际的 LED,我们必须设置输出数据寄存器,即 GPIOx_ODR。 在此输入图像描述

这让我相信我应该将数据设置如下:

GPIOB->ODR = 0x8;
Run Code Online (Sandbox Code Playgroud)

我不确定我哪里出了问题,但这是我第一次在如此深入的层面上使用寄存器。我一定忽略了一些事情,但我尝试了多个例子但没有成功。感谢所有帮助。这是完整的代码:

// PB3 - User LED
// RCC->AHB2ENR
// GPIOx_MODER
// GPIOx_ODR

#include "stm32l4xx.h"

int main(void)
{
    RCC->AHB2ENR |= 0x2;
    GPIOB->MODER |= 0x40;

    while(1)
    {
        GPIOB->ODR = 0x8; …
Run Code Online (Sandbox Code Playgroud)

c embedded microcontroller arm microprocessors

5
推荐指数
1
解决办法
1526
查看次数

如何在8086中生成物理地址?

8086体系结构中,内存空间__CODE__大小分为多个逻辑段__CODE__.

即它有20个地址线,因此使用以下方法:

数据段寄存器向左移位4位然后加到偏移寄存器

我的问题是:虽然所有寄存器只有16位,但我们如何进行移位操作

microprocessors memory-address x86-16

4
推荐指数
1
解决办法
1万
查看次数

不了解 ARM 硬件堆栈(使用 IAR)

我目前正在使用 IAR Embedded Workbench 为 NXP LPC2378 micro 进行开发。我想我遇到了问题,因为 CPU 不断崩溃,我的 IRQ 和 CSTACK 需要更大,我注意到这些区域会“渗入”到周围的内存区域。我想我真的不明白这些和其他内存区域的用途是什么?我使用了一个 RTOS (CMX),它为 ISR 保留了 RAM,但这似乎是为了不同的东西。

当我使用 RTOS 时,IRQ_STACK、CSTACK、SVC_STACK、FIQ_STACK、UND_STACK 和 ABT_STACK 用于什么,或者它们是完全独立的东西?

c microcontroller arm microprocessors iar

4
推荐指数
1
解决办法
1695
查看次数