cortex-m

    0热度

    1回答

    我正在用Keil uV5使用STMF4。我写了一个固件更新程序,它通过一个RS232将新的固件补丁复制到RAM中,然后将其写入位于0x08020000的ROM位置,该位置位于应用程序代码末尾以上的位置。 尽管是在低地址测试过的代码副本完美副本,但0x08020000上的修补程序不会运行,并且会立即发生硬故障。我已经设置了分散文件以包含更高的ROM地址和mem映射ini文件。所有40kb的应用程序完

    0热度

    1回答

    所以我想了解TBB如何在Assembly中为switch语句工作。我看到它是如何写在教科书/在线手册中的,但我不明白偏移量在分支表中如何工作。 它如何从分支表转换为指令?如何扣除标签以获得正确的偏移量,以及为什么除以2? 以我教科书它说 到的程序应该 分支如下计算该指令的存储器地址: 目标= PC + 4 +( 2 * BranchTable [R0] ) 其中r0是包含分支表内偏移量的计数器。在

    0热度

    1回答

    我在两个目标(一个飞思卡尔,一个STM32和皮质M4)上编译“相同”代码。我使用--specs=nano.specs,并且我已经实现了_write函数作为空函数,并且这导致整个printf被GCC的-Wno-unused-function优化,即使STM32目标上的-O0(参见地图)。这很好,我想重现一下飞思卡尔的目标。 但是,在飞思卡尔目标(具有相同的编译标志)printf会导致硬故障。但是如果

    0热度

    1回答

    我是DAPLink的新会员。只要知道它可以将mortex芯片转换成mbed接口,那么我们就可以编程或调试它。但我发现mbed接口有大约8MB的USB磁盘。它是如何工作的?正如我们所知,一个mbed接口芯片(如11u24)只有8KB RAM和64KB闪存。

    1热度

    1回答

    我正在编译一个基于Cortex-M4的微控制器的可执行文件arm-none-eabi-gcc。非性能关键代码与-Os(针对可执行代码大小进行了优化)以及具有另一个优化标志的性能关键部分进行编译,例如。 -Og/-O2等 在这样的构建中使用-flto安全吗?如果是这样,哪个最优化标志应该传递给链接器?

    0热度

    1回答

    如何从SP寄存器获取实际值? 我想用一些初始值填满整个SRAM,但我不想覆盖堆栈的实际内容。 我的启动代码(其也覆盖堆的实际内容): void RESET_handler() { unsigned *src, *dst; // initialize memory // ..... // fill SRAM dst = &_bss_end;

    1热度

    1回答

    我使用FreeRTOS在GNU ARM工具链(gcc 5.4.1)上开发STM32F746(ARM Cortex-M7)。我正在使用以下CFLAGS集: -g -Werror -Wextra -O2 -fno-common -ffunction-sections -fmessage-length=0 -g -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu

    0热度

    1回答

    我想将zbar移植到没有堆的微控制器,如果静态分配它,zbar是否可以工作?或者它需要堆?我可以考虑添加一个帮助,但zbar需要多大的堆? 是否有其他人将其移植到32位微代码中,如Cortex-M1。 看看代码中有很多mallocs。 在此先感谢。

    0热度

    2回答

    我开始使用手臂设备开始我的第一个项目。具体来说,我想在C/C++中对cortex-M7编程进行一些图像处理。我得到了DS-5社区工作得很好,我按照这里的基本的Hello World教程:https://developer.arm.com/products/software-development-tools/ds-5-development-studio/resources/tutorials/g

    0热度

    1回答

    我试图理解为什么一些Cortex-M0代码在链接与未链接时行为不同。在这两种情况下,它都被加载到0x20000000。尽管我尽了最大努力通过将-fPIC传递给编译器来生成位置无关的代码,但bl指令在代码通过链接器后似乎有所不同。我是否正确阅读这些内容,是否仅仅是ARM Thumb中链接器工作的一部分,并且有没有更好的方法来生成位置无关的函数调用? 链接: 20000000: 20000000: