cortex-m3

    0热度

    1回答

    我试图在ARM Cortex-M3裸机上运行已编译的程序。在系统甚至达到应用程序代码之前,奇怪的错误将程序计数器吹走并出错。 指令之前,寄存器被观察到: r0 0x0 0 r1 0x1 1 r2 0x0 0 r3 0x2 2 r4 0x18564 99684 r5 0x18418 99352 r6 0x0 0 r7 0x0 0 r8

    5热度

    1回答

    我试图实现一个Cortex-M3的控制器上的下面的伪码,(特别是STM32L151) void SysTick_Handler() { do_high_priority_periodic_tasks(); // not to be interrupted lower_interrupt_priority(); do_low_priority_periodic_task

    4热度

    1回答

    我在一个32位的Cortex-M3 ARM控制器(STM32L1)上有一个64位的整型变量,它可以被一个中断处理程序异步修改。 volatile uint64_t v; void some_interrupt_handler() { v = v + something; } 显然,我需要一种方式来访问它,以防止获得不一致的中途更新值。 这是第一次尝试 static inline

    -1热度

    1回答

    我正在研究cortex-m3的微内核。我创建了一个故意导致故障的小型测试应用程序。 现在我不确定如何从故障中恢复。我知道堆栈可能需要更新一个不同函数的地址。我也明白,在某些情况下从故障返回可能是一个坏主意,但我的内核是相应编写的。 下面是一些示例代码: #include "core_cm3.h" // PSR flags // EPSR flags #define TFLG (1<<24

    0热度

    1回答

    这很奇怪。 OSInit(); OSTimeDly(10); OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[TASK_STK_SIZE-1],START_TASK_PRIO); OSStart(); 在OSTimeDly(10),有OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL(),并且当

    0热度

    2回答

    我试图访问Cortex-M3的SysTick计时器,所以我必须切换到特权模式。我这样做 /* Active previlige mode */ asm ("mov r0, #0x0"); asm ("msr control, r0"); asm ("ISB"); 但它不工作,因为我无法写入SYST_CSR寄存器。如果是,则需要执行此操作的任何异常条目,如何?

    0热度

    2回答

    在特殊情况下,我遇到硬件故障异常。 ICSR表明这是从systick升级(等待例外= 15)。 任何想法如何会发生这种情况? 我的猜测是,它的某种死锁的。 任何建议如何追踪此(无Atmel工作室)? 我使用FreeRTOS的7.5.2。 UPDATE: 我增加了一些故障寄存器的输出转储。因此,这的确是一个系统定时器总线故障中断标志: EXCEPTION HANDLER - ICSR active

    0热度

    1回答

    我正在尝试更改用户应用程序的STACK位置。在我的系统中,用户应用程序有自己的RAM部分(Data + Stack),并且连接器将STACK放在用户RAM部分的末尾。 但我需要把堆叠放在开始而不是结束。 我使用Keil uVision IDE和文件的Startup.s和文件的Startup.s工作不提供任何选项来改变改变堆栈单元的位置,或许,链接隐藏它 Stack_Size EQU 0x000

    0热度

    1回答

    掌握了皮层m3中的各种故障处理程序之后现在我正在研究复位序列和复位处理程序。在上电复位后,正常情况下为 。 PC指向0x00000000存储初始msp值 然后在0x00000004复位向量保存 初始化msp复位处理程序被调用后的含义。 在引导代码的情况下如何为复位序列,以及如何向量表被引导过程之后重新定位

    0热度

    1回答

    我想从XBee DigiMesh固件(Cortex-M3,EM357)中提取机器代码,因此我有SREC文件,其中包含3个部分。我猜想其中一个部分是代码部分,但arm-none-eabi-objdump经常报告“未知指令”。 有谁知道为什么会发生这种情况? 这是我尝试这样做: arm-none-eabi-objcopy --input-target=srec --output-target=bina