- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
早上好,我需要帮助,因为我陷入困境,并且在查看手册时找不到任何解决方案。
我想在 Leon3
上使用 EDAC
。我正在使用 BCC 编译器进行 C 编程。特别是,我有一 block GR-UT699 板。我正在使用 GRMON 在 RAM 中刷新我的 elf 文件。我的程序是一个简短的测试,我想在其中使用 EDAC
。为了启用 EDAC,我以这种方式简单地对寄存器进行了位操作(我可以说我检查了寄存器并且它们被正确写入):
#define MCFG2_RMW_bit_set 0x00000040 //enable read-modify-write cycles on sub-word writes to 16 and 32bit areas with common write strobe
#define MCFG2_DE_bit_set 0x00004000 //SDRAM controller (1 en, 0 dis)
#define MCFG3_R_bit_set 0x00000200 //enable EDAC checking of the SDRAM or SRAM (1 en, 0 dis)
#define MCFG1_IE_bit_set 0x00080000 //enable access to mapped I/O memory.
...
edac->MCFG1 = edac->MCFG1 | MCFG1_IE_bit_set;
edac->MCFG2 = edac->MCFG2 | MCFG2_RMW_bit_set | MCFG2_DE_bit_set;
edac->MCFG3 = edac->MCFG3 | MCFG3_R_bit_set;
...
return 0;
}
这些指令在返回 0 的 init 函数内执行。我只是设置了您在前面的定义中可以看到的位。
当函数返回时,我只想调用 printf()
来显示一条消息。后者(printf
)输出永远不会显示。因此,程序在设置寄存器之后、printf
之前崩溃。我认为它在 init 函数返回期间崩溃了。
这些是 grmon
控制台输出:
grmon2> run
IU exception (tt = 0x2B, data store error)
0x40009acc: 81c3e008 retl <memmove+484>
grmon2> inst
TIME ADDRESS INSTRUCTION RESULT SYMBOL
2608062 40009978 andcc %g1, %g3, %g0 [00000000] memmove+0x90
2608065 4000997C be 0x40009AB0 [00000000] memmove+0x94
2608066 40009980 or %g2, %o1, %g1 [40013FA0] memmove+0x98
2608067 40009AB0 mov 0, %g1 [00000000] memmove+0x1c8
2608068 40009AB4 ldub [%o1 + %g1], %g3 [0000002E] memmove+0x1cc
2608070 40009AB8 stb %g3, [%g2 + %g1] [40012EA0 2E2E2E2E] memmove+0x1d0
2608072 40009ABC add %g1, 1, %g1 [00000001] memmove+0x1d4
2608073 40009AC0 cmp %g1, %o2 [00000000] memmove+0x1d8
2608076 40009AC4 bne,a 0x40009AB8 [00000000] memmove+0x1dc
2608078 40009ACC retl [ TRAP ] memmove+0x1e4
我发现我需要在 MCFG1
注册表中设置 IE
位,所以我就这样做了。但程序仍然崩溃。这里出了什么问题?
预先感谢您的耐心等待。
-洛伦佐
最佳答案
我找到了至少一种不会导致程序崩溃的解决方案。如果您想使用 EDAC,则必须初始化内存 Controller 寄存器(从 GRMON 使用“mcfgx 0xvalue 等”或在启动 GRMON 时使用 -edac 选项)。然后应执行 RAM 清洗(使用 GRMON 的清洗命令)。在启用 EDAC 后,启动清洗命令(或者通常从固件中清洗内存)非常重要。事实上,如果在启用 ENAC 后清洗内存,则会生成检查位。否则,您将执行简单的内存清理。
然后您终于可以将程序加载到 RAM 中(从 grmon 使用“load”)。
值得注意的是,IU/FPU 寄存器也应在复位时清除,这可以从 MKPROM 完成(如果需要)。
此解决方案适用于通过 GRMON 加载到 RAM 中的程序。如果需要将程序闪存到闪存 ROM 中,则应通过 MKPROM 执行类似的操作。我还没有这样做,但我希望是真正类似的东西。
洛伦佐。
关于c - SPARC LEON 错误 : IU exception (tt = 0x2B, 数据存储错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48319640/
我正在使用 Play 框架和 mongoDB 创建一个 scala 应用程序。我设法使用 Leon Play-Salat 建立连接.我有一个模型 case class Person( id: Ob
早上好,我需要帮助,因为我陷入困境,并且在查看手册时找不到任何解决方案。 我想在 Leon3 上使用 EDAC。我正在使用 BCC 编译器进行 C 编程。特别是,我有一 block GR-UT699
我有以下内容: modifiedTitle = @"Léon"; modifiedTitle = [modifiedTitle stringByAddingPercentEscapesUsingEnc
我是一名优秀的程序员,十分优秀!