小编non*_*kle的帖子

QEMU作为用于固件测试的嵌入式模拟器

我一直在看QEMU一段时间了,我一直试图找出是否可以用它来模拟我们正在开发的设备.

该器件由ARM Cortex M3供电,QEMU非常适合仿真其软件.

我想知道的是,如果有人过去曾使用QEMU作为模拟器吗?

目的是在将软件推送到现场设备之前,使用QEMU对软件进行黑盒测试.

这将涉及能够监视和修改配置和设置并行输入/输出(PIO)引脚的存储器位置以及外部所有其他外设的存储器位置.

现在,考虑到一些外设是PWM和UART,很明显需要解决同步问题.但是,我想暂时避免这个话题,只坚持简单的PIO.

QEMU监视器靠拢,但还没有应用.

总结一下:

我需要知道是否有办法在每个CPU时钟周期后中断QEMU并读/写代码存储器中的少量存储单元.

embedded simulation qemu emulation

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

什么是链接符号__TMC_END__和__TMC_LIST__?

我问了这个问题,偶然发现__TMC_END__了链接器似乎生成的符号.我不知道它的目的是什么,唯一有用的参考是这个bug并没有解释为什么它存在.但是,它确实引用了类似的符号__TMC_LIST__.

有谁知道这些用途是什么?

c linker ld

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

C代码调用程序集例程 - ARM

我目前正在研究ARM Cortex M3的引导程序.

我有两个函数,一个在C中,一个在汇编中,但是当我尝试调用汇编函数时,我的程序挂起并产生某种错误.

功能如下,

C:

extern void asmJump(void* Address) __attribute__((noreturn));

void load(void* Address)
{
    asmJump(Address);
}
Run Code Online (Sandbox Code Playgroud)

部件:

.section .text

.global asmJump

asmJump:                   @ Accepts the address of the Vector Table
                           @ as its first parameter (passed in r0)

    ldr r2, [r0]           @ Move the stack pointer addr. to a temp register.
    ldr r3, [r0, #4]       @ Move the reset vector addr. to a temp register.

    mov sp, r2             @ Set the stack pointer …
Run Code Online (Sandbox Code Playgroud)

c assembly arm call cortex-m3

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

将null转换为某些东西?

今天我和一位同事进行了这次有趣的讨论.我们在C#中讨论两段代码.

代码片段1:

if(!reader.IsDBNull(2))
{
  long? variable1 = reader.GetInt64(2)
}
Run Code Online (Sandbox Code Playgroud)

代码片段2:

long variable1 = reader.IsDBNull(2) ? (long?) null : reader.GetInt64(2)
Run Code Online (Sandbox Code Playgroud)

问题是:将null转换为可空的long是一个好习惯吗?或者你宁愿使用传统的if语句来避免强制转换null为可空的长.

.net c# dbnull casting nullable

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

C++中的默认参数有一些特殊属性吗?

这是一个面试测试问题而不是作业.测试已经完成.

以下哪些关于C++中的默认参数的陈述是正确的?

A. Default Argument cannot be of a user-defined type.
B. Default Argument can never precede non-default arguments
C. Default Argument cannot be of pointer type.
D. Default Argument exist in global heap not function's stack
E. Default Argument are not considered for generating the function's signature. 
Run Code Online (Sandbox Code Playgroud)

我选择了B和E.这些是正确的吗?我不确定D,这也是正确的吗?

c++ heap arguments default function

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

了解如何编写缓存友好的代码

我一直在努力了解如何编写缓存友好的代码.因此,作为第一步,我试图了解阵列行主要访问和列主要访问之间的性能差异.

所以我创建了一个512×512大小的int数组,总大小为1MB.我的L1缓存是32KB,L2缓存是256KB,L3缓存是3MB.所以我的阵列适合L3缓存.

我只是按行主要顺序和列主要顺序计算数组元素的总和,并比较它们的速度.一直以来,列主要订单稍快一些.我预计行主要顺序要快于另一个(可能要快几倍).

我认为问题可能是由于阵列的小尺寸,所以我做了另一个大小为8192×8192(256 MB)的数组.结果仍然相同.

以下是我使用的代码段:

#include "time.h"
#include <stdio.h>

#define S 512
#define M S
#define N S

int main() {
    // Summing in the row major order
    int x = 0;
    int iter = 25000;
    int i, j;
    int k[M][N];
    int sum = 0;    
    clock_t start, end;

    start = clock();
    while(x < iter) {
        for (i = 0; i < M; i++) {
            for(j = 0; j < N; j++) {
                sum += k[i][j];
            }
        }

        x++;
    } …
Run Code Online (Sandbox Code Playgroud)

c optimization caching

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

gmock_main 和 gtest_main 有什么区别?

我注意到在我的 Visual Studio 2010 设置中有些项目引用了gtest_main-mdd.lib其他项目,并且gmock_maind.lib想知道这两个库之间的区别是什么?

c++ googletest visual-studio-2010 gmock

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

适用于 ARM Cortex M3 (SAM3N4X) 的简单任务调度程序

在过去的两天里,我一直在为上述 ARM Cortex M3 寻找一个简单的调度程序,尽管我找到了一些 RTOS 解决方案,但我没有找到独立的任务调度程序。

我不需要任何太花哨的东西,因为我的应用程序不一定需要它,但它将有助于产品的未来证明(不要激怒最后这句话,我很清楚它的问题)。

编辑:

正如@Clifford 所建议的,我不太清楚简单是什么意思。我想说它的代码非常少,并且不会消耗太多 SRAM。

embedded arm rtos

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

分段故障(SIGSEGV)

我是c ++的初学者.这是我的代码.它在代码块中正常工作,但是当我将它提交给codechef时,它显示运行时错误(SIGSEGV).请帮忙!

#include<iostream>

using namespace std;

int main()
{
    long int n, m, x, temp, B1 = 0, B2 = 0;
    long int arr[105];

    cin >> n >> m;

    for(int i = 1; i <= n; i++)
        cin >> arr[i];
    while(m--)
    {
        B1 = B2 = 0;
        cin >> x;
        temp = 1;

        while(temp < x)
            if((arr[x] - arr[temp]) > 0)
                B1 = B1 + (arr[x] - arr[temp++]);
            else
                B2 = B2 + (arr[x] - arr[temp++]);
        cout << …
Run Code Online (Sandbox Code Playgroud)

c++

-1
推荐指数
1
解决办法
66
查看次数