Questions tagged «cortex-m»

3
Cortex-M系列和Cortex-R系列之间的真正区别是什么?
这真有趣!我搜索了一篇清晰的文章,但找不到与此相关的清晰文章。我也找到了此链接:ARM Cortex-R和此链接:Cortex-R系列,但它们并不十分清楚。在Wiki页面中写道: 这些内核旨在用于强大的实时使用 并在Cortex-R的页面中写道: ARMCortex®-R实时处理器为需要可靠性,高可用性,容错,可维护性和实时响应的嵌入式系统提供了高性能计算解决方案。 还有这些: 高性能:快速处理和高时钟频率 实时:处理在任何情况下都满足严格的实时约束 安全:可靠,可靠的系统,具有较高的抗错误性 经济高效:具有性能,功率和面积最佳的功能 例如:Cortex-M,最近恩智浦制造了NXP_LPC4XXX系列,时钟频率为200Mhz,Cortex-R,您可以看到:TMS570LS ARM Cortex™-R4微控制器,很有趣,因为它具有180Mhz时钟频率。 第二点:很明显。 对于第三点:还不清楚!这句话是什么意思?意味着Cortex-M不是安全/可靠的吗? 对于第五点:恩,我认为这只是一个要求! 谁有这个系列(Cortex-R)的工作经验?您对此有何看法?Cortex-M系列和Cortex-R系列之间的深刻而又确切的区别是什么?

2
ARM MCU如何比外部晶振运行得更快?
因此,在此之前,我只使用简单的8位Atmel MCU,并在开发板原理图中意识到它只有12Mhz的晶体,但MCU的工作频率高达100MHz。(我认为默认值是80MHz。我只是为了娱乐而将其提高了一次。这只是代码中的一条简单代码。) 它是如何做到的?例如,为什么Atmega328以所使用的晶振速度运行?
12 arm  crystal  cortex-m 

4
STM32上的字节序问题
我正在使用arm gcc(CooCox)对STM32F4discovery进行编程,而我一直在努力解决字节序问题 我正在通过SPI使用24位ADC进行采样。由于要传入三个字节,因此MSB首先具有将它们加载到联合中的想法(无论如何,我都希望如此!),以便于使用。 typedef union { int32_t spilong; uint8_t spibytes [4]; uint16_t spihalfwords [2];} spidata; spidata analogin0; 我使用spi读取将数据加载到Analogin0.spibytes [0]-[2]中,其中[0]作为MSB,然后通过USART以8比特的高波特率将它们吐出。没问题。 当我尝试将数据传递到12位DAC时,问题就开始了。此SPI DAC需要16位字,其中包括从MSB开始的4位前缀,然后是12位数据。 最初的尝试是将ADC给我的二进制补码转换为二进制偏移量,方法是对0x8000的Analogin0.spihalfwords [0]进行异或运算,将结果移至最低12位,然后在算术上加上前缀。 令人难以置信的令人沮丧,直到我注意到对于analogin0.spibytes [0] = 0xFF和analogin0.spibytes [1] = 0xB5,analogin0.halfwords [0]等于0xB5FF而不是0xFFB5! 注意到这一点后,我停止使用算术运算和半字,并停留在按位逻辑和字节上 uint16_t temp=0; . . . // work on top 16 bits temp= (uint16_t)(analogin0.spibytes[0])<<8|(uint16_t)(analogin0.spibytes[1]); temp=temp^0x8000; // convert twos complement …
11 c  stm32  cortex-m  gcc 

4
rand()函数和RNG(随机数生成器)外设之间有什么区别?
我想知道STM32F4XXXX MCU中的RNG(随机数发生器)外设。请参阅本参考手册(第748页)。另一方面,我们在stdlib库中有rand()函数来执行相同的任务。现在我有两个问题: rand()函数和RNG(随机数生成器)外设之间有什么区别(优点和缺点)? 看这部分: 请说明这两种选择(尤其是第二种选择)。

1
STM32F4启动概念和向量表重定位
在STM32F4微控制器的启动过程中,有些事情我不了解。 我的理解如下: ARM Cortex-M4引导程序期望堆栈指针初始化值和上的中断向量0x00000000 + SCB->VTOR,而SCB->VTOR在复位时被清除。 该位置没有内存。闪存从处开始0x08000000,SRAM 从处开始0x20000000。 为了使启动成为可能,µC可以将闪存或SRAM存储器范围映射到0x00000000。要映射的存储器范围由启动引脚的状态定义。 我的问题: 为什么STM32F4参考手册在第69页上说 当器件从SRAM启动时,在应用程序初始化代码中,您必须使用NVIC异常表和偏移寄存器在SRAM中重新定位向量表。 ?在我看来,这是没有必要的,因为整个内存区域还是会被别名的。有趣的是,当将闪存区域重新映射到0x0空间时,似乎并不需要这样做。 我可以认为,从SRAM引导的唯一用途是减少开发过程中闪存的写周期。从复位释放µC之前,您需要使用调试器将程序写入SRAM,然后从那里启动。但是,由于您具有调试器访问权限,因此无论如何从哪里引导都没有任何限制。那么为什么要具有此功能? 引导位置是从引脚导出的(至少在我看来)表明此功能不是在开发期间使用,而是在最终操作中使用。并且在最终操作中,SRAM在启动时是清除的。因此,从SRAM引导是没有意义的。

3
具有802.15.4 / 6LoWPAN堆栈的Cortex M4的RTOS
我正在评估要在物联网项目中使用的操作系统,但我不知道什么是最好的进行方法。 我正在使用带有32k RAM和CC2520 802.15.4收发器的TM4C123GH6PM MCU,如果系统已经提供了这些驱动程序,那就太好了。 系统将运行一个(交互式)任务,以绘制一个点矩阵屏幕并对用户输入做出反应。它将配置和应用程序数据存储在spi闪存上。将有一个包含多个模块的网格(基于802.15.4),以在模块之间同步数据,从模块中提取传感器数据并将其转发到网关(想到了rpl),并在八卦中分发OtA固件更新。喜欢时尚。所有这些同时也运行着一个内存消耗大的应用程序。 到目前为止,我已经研究了以下系统: RIOT: 优点 好的硬件抽象 占地面积小 非常活跃和乐于助人的社区 完整的802.15.4 / 6LoWPAN堆栈 缺点 不稳定,仍在发生根本变化 仍然包含比赛条件/崩溃 没有文件系统支持 少数网络协议 Contiki: 优点 成熟的系统,用于商业产品 具有许多有用协议的完整802.15.4 / 6LoWPAN堆栈 文件系统支持 cc2520支持 缺点 发展已过时 '成长'的代码库,很多烂 Tiva C口质量差 对现代平台的支持很少 非抢占式调度可能会导致应用程序出现问题 FreeRTOS: 优点 几乎没有其他复杂性 易于使用,可靠的调度程序 成熟的项目,用于许多产品 很多港口 缺点 没有文件系统 没有用于驱动程序的硬件抽象/没有硬件驱动程序 没有网络堆栈 动态内存使用率较高 NuttX: 优点 功能非常丰富,几乎感觉像Linux,但仍然很小 文件系统支持 …

1
闪存自编程期间,ARM Cortex M的CPU是否停止?
大多数ARM Cortex M MCU不具有EEPROM存储器。取而代之的是,可以将持久性数据写入也保存该程序的同一闪存中。 在此擦除/写入过程中,CPU的状态是什么? 会停止吗?是否保持正常运行? CPU的行为是否取决于所使用的特定MCU系列(例如STM32,Kinetis L)? (在某些人看来,这可能是一个愚蠢的问题,但是Microchip的PIC16在闪存自编程期间将CPU暂停最多40ms。)
8 arm  cortex-m 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.