标签: processor

ARM处理器最干净的重置

最近,我一直在清理一些在ARM7控制器上运行的C代码.在某些情况下(升级,致命错误等),程序将执行重置.目前它只是跳到0并假设启动代码将正确地重新初始化所有内容.它让我想到了ARM复位的"保留无迹线"的最佳程序.这是我的第一次破解:

void Reset(void)
{
   /* Disable interrupts */
   __disable_interrupts();

/* Reset peripherals, externals and processor */
AT91C_BASE_RSTC->RSTC_RCR = AT91C_RSTC_KEY | AT91C_RSTC_PERRST | AT91C_RSTC_EXTRST| AT91C_RSTC_PROCRST;

while(AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_SRCMP);

/* Jump to the reset vector */
(*(void(*)())0)();
}
Run Code Online (Sandbox Code Playgroud)

此代码假定IAR ARM编译器和At91Lib.还有什么我没想过的?

c arm processor reset

3
推荐指数
1
解决办法
8948
查看次数

我的处理器的汇编指令集

亲爱的,我想这是一个简单的问题.如何找到处理器的指令集?proc/cpu给我(一个香草cpu):

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Duo CPU     T6600  @ 2.20GHz
stepping        : 10
cpu MHz         : 1200.000
cache size      : 2048 KB
Run Code Online (Sandbox Code Playgroud)

我在哪里可以找到有关此指令集的文档?我想获得的信息来解锁gcc.s文件就知道它是如何翻译我的代码.如果问题不明确,请接受我的道歉,我很乐意澄清.谢谢.

assembly gcc processor ubuntu-10.04

3
推荐指数
1
解决办法
1508
查看次数

循环递减比增量更有效吗?

可能重复:
倒计时比计数更快?

例如,

for (int i = 0; i < max; i++)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

for (int i = max-1; i >= 0; i--)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

这两个循环基本相同,并假设循环不包含任何数组操作.但是,对于第一种情况,每次迭代都需要将max加载到处理器中的寄存器中,然后在i和max之间进行比较..另一方面,后一种情况不需要将0加载到寄存器中,因为0已经是在寄存器中,所以只有后一个循环的比较.如果我错了,请纠正我,如果我是对的,请详细说明.谢谢.

c++ loops processor

3
推荐指数
1
解决办法
855
查看次数

MSP430装配说明

我试图了解这些指令对MSP 430处理器的作用:

(1) MOV.w  #0x0055,R5
(2)   BIC.w  #0xFFEE,R5
(3)   BIS.w  #0x1144,R5
Run Code Online (Sandbox Code Playgroud)

我无法找到解释汇编指令的内容,并且很想知道每条指令后这些指令的作用以及存储在r5寄存器中的内容.有人能解释一下吗

assembly processor msp430

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

是否有可能以原子方式加载和存储在X86处理器上?

这可以原子地完成吗?

void load_and_store(int* dst, int* src) {
  int data = *src;
  *dst = data;
}
Run Code Online (Sandbox Code Playgroud)

如果必须完成原子存储XCHG [addr], EAX,我将不得不首先加载数据EAX.然后加载和存储不是原子的.

gcc原子扩展void __atomic_store (type *ptr, type *val, int memmodel)看起来像能够以原子方式加载和存储.

c++ concurrency x86 processor atomic

3
推荐指数
1
解决办法
1080
查看次数

从处理器的角度来看进程调度

我知道调度是由内核完成的.让我们假设Linux中的进程(P1)当前正在处理器上执行.由于当前进程对时间片一无所知并且内核当前没有在处理器上执行,因此内核如何安排下一个进程执行?

是否有某种中断告诉处理器切换执行内核或任何其他机制?

linux scheduling processor process

3
推荐指数
1
解决办法
776
查看次数

针对Intel和AMD处理器的PROCESSOR_ARCHITECTURE的奇怪注册表值

我有一个小任务,在安装过程中找到系统是32位还是64位机器?
我想通过获取注册表PROCESSOR_ARCHITECTURE位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\文件夹中的方式,但我很惊讶地发现价值是AMD64我的处理器Intel64 Family 6 Model 23 Stepping 10, GenuineIntel
那么,为什么AMD64Intel64位处理器?

windows registry 64-bit processor

3
推荐指数
1
解决办法
1038
查看次数

字节码被视为JVM的指令集?

我正在读关于instruction set维基和我碰到这一段就来了:

一些支持字节码作为其ISA的虚拟机,如Smalltalk,Java虚拟机和Microsoft的公共语言运行时,通过将常用代码路径的字节码转换为本机机器代码来实现这一点.此外,这些虚拟机通过解释执行不常用的代码路径(请参阅:即时编译).Transmeta以这种方式在VLIW处理器上实现了x86指令集.

这到底是什么意思?是bytecodesARE ISAJVMJVM在转支持ISA的处理器.

java jvm bytecode processor instruction-set

3
推荐指数
1
解决办法
2154
查看次数

8位,16位,32位处理器/微控制器中整数的大小是多少?

8位,16位,32位处理器/微控制器中整数的大小是多少?我想这取决于内部累加器/寄存器大小.但不确定.谢谢

microcontroller integer processor microprocessors

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

可以在OS中禁用/配置Intel PT(处理器跟踪)吗?

我有很多关于英特尔PT的问题(一直试图解码手册,但非常困难).我的问题是:

  1. 我试图找出英特尔PT是否可以在操作系统内禁用或重新配置,或者更一般地说,是从系统内部提供跟踪.
  2. 英特尔PT是否会在写入特定寄存器(例如CR3,IDTR等)时生成事件
  3. 英特尔PT可以将值写回系统 - 即外部调试机器是否可以主动执行对寄存器,高速缓存或内存的写入?

    任何帮助都非常感谢,谢谢!

hardware debugging trace processor intel

3
推荐指数
1
解决办法
1202
查看次数