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: