首页 文章
  • 0 votes
     answers
     views

    NVIC用户中断优先级

    我在Cortex M3(Silicon Labs EFM32GG380F1024)上使用FreeRTOX V9.0.0 . 当我通过GPIO Irq Handler使用TaskResumeFromISR时,我得到断言失败 . 断言中的断言在port.c(GCC ARM CM3)中的函数“void vPortValidateInterruptPriority(void)”中的行“configASSE...
  • 2 votes
     answers
     views

    使用USB Bootloader时如何设置ARM用户应用程序起始地址?

    刚从eBay拿起这些ARM Cortex-M3 LPC1768 mini boards中的一个 . 它基本上是一个突破板 . 但是,根据它附带的小文档,我应该注意 . 这两个文档(应用说明和电路板文档)都表明用户程序的构建应该是他们的 starting address is 0x2000 . 因为USB引导加载程序已经是0x0并占用8K . 这两个文档还显示了如何在Keil uVision中执行...
  • 0 votes
     answers
     views

    gcc起始地址

    我目前正在尝试使用gcc-arm-embedded离线编译mbed项目,但我想更改起始地址,因为此程序旨在与引导加载程序一起使用,因此最终必须从0x10000运行 . 我已将我的项目导出为GCC-ARM-EMBEDDED,并且能够使用gcc构建项目 . 但是我不知道如何将起始地址指定为0x10000 . 我试图更改LPC1768.ld脚本,将FLASH的ORIGIN更改为0x10000,但似乎它没...
  • 40 votes
     answers
     views

    arm gcc toolchain as arm-elf or arm-none-eabi,有什么区别?

    当你构建一个gcc工具链时,有可能将它构建为arm-elf或arm-none-eabi,但有什么区别? 我今天使用的是eabi,但这只是因为其他人似乎都这样做了......但是因为这是一个非常糟糕的论点,所以理解它们的区别真的很好 . 注意:此工具链将交叉编译基于Cortex-M3的mcu代码:如stm32 . 谢谢 Some links : EABI: http://en.wikipedi...
  • 4 votes
     answers
     views

    读取cortex-m3上的64位易变量

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

    ARM Cortex M NonMaskable中断也是NonClearable?

    我正在使用一个非常定制的非公共安全IC,它具有ARM Cortex M3内核 . 在hw安全违规的情况下,这个IC会触发一个NMI中断,所以它很好,我正在做我需要的任何违规行为 . 但是当发生违规时,它总是一次又一次地进入NMI Handler . 我们可能需要清除中断挂起标志,但不应该直接清除它 . 因为SCB-> ICSR bit31表示“进入处理程序会将此位清除为0” . 我还尝试使用...
  • 3 votes
     answers
     views

    如何检查Cortex M3中是否启用了中断?

    在Cortex M3上,一段代码如何确定是否启用了中断,即程序状态寄存器中的 I 位的状态(由 cpsid 和 cpsie 操纵)?在较旧的ARM上,我能够读取 cpsr 寄存器,但这似乎不再可能 . 我需要这些信息,因为我有一个从main和中断调用的函数,它需要以原子方式执行某个操作,而中断则被禁用 . 实质上: bool interrupts_enabled = InterruptsEnabl...
  • 1 votes
     answers
     views

    如何从ARM Cortex-M3上的中断处理程序中重新启用中断?

    Background:我使用的是没有操作系统的cortex-M3 ARM内核 . 我的主循环等待来自中断处理程序的标志,然后执行函数 doBigTask() . 在一个单独的中断处理程序中,我想执行另一个函数 doSmallTask() ,但由于此函数也非常重要,我仍然希望处理其他与I / O相关的中断 . My Question:从 doSmallTask() 中简单地启用中断是否有任何问题?...
  • 2 votes
     answers
     views

    在IRQ之后,Cortext-M3上的任务切换崩溃

    我已经为我的ARM Cortex-M3操作系统使用了一个exokernel模型 . 当任务想要从UART读取时,它调用库函数,如果没有数据,则执行SVC调用以阻塞任务(这会导致内核将任务放入该IRQ的等待队列并启用IRQ ) . 当中断发生时,等待它的所有任务都将被移动到可运行队列,并再次禁用中断 . 当我有一个固定的任务数组时,这个模型运行正常,但现在我已经转移到链表以允许更多类型的等待队列(例...
  • 1 votes
     answers
     views

    配置优先级位分配后如何诊断不精确的总线故障,Cortex M3 STM32F10x w uC / OS-III

    我在为ST Microelectronics STM32F103(ARM Cortex-M3 r1p1)编写的应用程序中遇到了问题 . RTOS是uC / OS-III;开发环境是IAR EWARM v.6.44;它还使用ST标准外设库v.1.0.1 . 该应用程序不是新的;它已经在开发和现场至少一年 . 它使用两个UART,I2C和一个或两个定时器 . 最近我决定审查中断优先级分配,并重新安排...
  • 5 votes
     answers
     views

    更改运行中断处理程序的优先级?

    我试图在cortex-m3控制器上实现以下伪代码,(特别是STM32L151) void SysTick_Handler() { do_high_priority_periodic_tasks(); // not to be interrupted lower_interrupt_priority(); do_low_priority_periodic_tasks(); ...

热门问题