草庐IT

flutterBuildDebugandroid-arm

全部标签

c++ - 未对齐访问导致 ARM Cortex-M4 出错

我有一个对象的地址不是4字节对齐的。当存在保存2个寄存器的STR指令时,这会导致cpu出现HardFault错误。这是生成的代码:00000000:0:b510push{r4,lr}2:4604movr4,r04:6042strr2,[r0,#4]6:e9c43102strdr3,r1,[r4,#8]a:2001movsr0,#1c:7420strbr0,[r4,#16]e:b921cbnzr1,1a这些是在“4:6042...”行时的寄存器R008738B82R80R108738BAER90R20R10082723E0R32FCCR110R408738B82R120R52000763

c++ - C/C++ 将 int 转换为 short 和内联 asm(特定于 ARM)

这不是一个微不足道的问题。注意:我不需要意见或建议来使用纯asm。我实际上需要完成我正在谈论的事情:在将结果分配给shortint时获得没有此符号/零扩展optcode的内联asm。我正在处理一个将16位短裤用于许多功能的库,我正在优化它。我需要使用内联asm添加一些优化函数。问题是在很多地方函数的结果被分配给一个短整型。即,编译器生成uxth或sxtharm操作码。我的目标是避免这个问题并确保不会生成这个无用的操作码。首先,我需要定义我的优化函数来返回shortint。这样,如果它被分配给一个int或一个shortint,就没有额外的操作码来转换结果。问题是我不知道如何跳过编译器在我

在Windows下自制ARM交叉编译工具链

参考链接:gnu工具链1.DownloadMinGWandMSyspackages.安装MSys参考此链接https://www.msys2.org/安装,注意只需要安装即可。安装开发环境,设置镜像,需要进入安装路径中的/etc/pacman.d/进行修改///etc/pacman.d/mirrorlist.mingw32Server=http://mirrors.ustc.edu.cn/msys2/mingw/i686///etc/pacman.d/mirrorlist.mingw64Server=http://mirrors.ustc.edu.cn/msys2/mingw/x86_64//

ARM/FPGA/DSP板卡选型大全,总有一款适合您

创龙科技ARM/FPGA/DSP嵌入式板卡选型大全2023.2版本正式发布!接下来,跟着我们一起看看有哪些亮点吧!6大主流工业处理器原厂创龙科技现有30多条产品线,覆盖工业自动化、能源电力、仪器仪表、通信、医疗、安防等工业领域,与6大主流工业处理器原厂强强联合,包括德州仪器(TI)、恩智浦(NXP)、赛灵思(Xilinx)、全志科技、瑞芯微、紫光同创,产品架构涵盖ARM、FPGA、DSP、RISC-V等。多样厂商、多种架构、国产 + 进口,丰富了用户的决策选择,也将更好地满足用户在工业领域中的差异化需求。另外,创龙科技还是TI、NXP、Xilinx、紫光同创四家原厂中国官方合作伙伴。图1 六大

带有 freertos 的 gnu arm cortex m4 上的 C++ 异常处理程序

2016-12年更新现在还有一个针对此行为的最小示例:https://community.nxp.com/message/862676我正在使用带有freertos的ARMCortexM4,使用freescalesfreedomKinetisIDE(gnuarm工具链)。问题是try{throw4;//oldscenarioalsonotworking:throwstd::runtime_error("wut");}catch(...){}导致CPU暂停,并且在try之后或(当添加了某些代码时)catch处理程序中的代码未执行。组装可以在这里找到:https://gist.github

c++ - 如何为 MinGW 用户安装 gcc-arm-none-eabi?

我有兴趣将我的C++程序交叉编译成可以在ARMMCU上运行的程序。为此,我需要安装gcc-arm-none-eabi。我目前在Windows7机器上,所以我安装了GCC/make/g++/etc。通过MinGW。根据我所做的研究,似乎MinGW不支持此工具链,这让我相信基于Windows的ARM开发是不可能的。所以我问:如何使用MinGW在本地安装gcc-arm-none-eabi工具链? 最佳答案 您可以为此使用MinGW;您只需要为您选择的工具链换掉C++工具链。您仍然可以从MSYS控制台调用它,您的所有其他工具仍然可以使用。M

windows - 如何在 Windows 上使用 cmake + arm-none-eabi 进行交叉编译?

我喜欢在Windows构建服务器上自动执行多个项目的交叉编译。我在使用arm交叉编译器时遇到了一些问题。设置它似乎有点困难。cmake编译器检查因链接错误而失败(见下文)。我的实验项目是这样的:main.cpp-atestprogrammCMakeLists.txt-thecmakebuildscriptcmake/STM32F2xx.cmake-thespecialsettingsfortheARMSTM32F2xx-series我正在使用3个包:cmake-3.8.0-win64-x64.msi-cmakeforwindowsmingw-w64-install.exe-mingw6

windows - 将 x86/64 Windows 程序移植到 Windows 8 ARM

Thisarticle(来自Windows工程团队)说:WOA[WindowsOnARM]willnotsupportanytypeofvirtualizationoremulationapproach,andwillnotenableexistingx86/64applicationstobeportedorrun.这是否意味着我什至无法从源代码为ARM重新编译x86/64应用程序?如果是,究竟是什么阻止我这样做?我的理解是theWin32APIispresentonWindows8ARM.如果不是,那么不能将x86/64应用程序移植到ARM是什么意思?

windows - Windows 8 Metro 应用程序是否需要对代码进行任何更改才能在基于 ARM 的设备上运行?

据我了解,运行时的Metro部分不依赖于x86处理器架构和native代码,并且无需对x86平板电脑或ARM平板电脑上的代码进行任何更改即可运行。这是正确的吗?还有,将应用程序从WindowsPhoneMetro移植到Windows8Metro有多容易?我们可以希望根本不更改代码吗?同样,XBOX呢?Windows8/WindowsPhonemetro应用程序是否有可能轻松移植到新的XBOXmetro环境? 最佳答案 Windows8有somethingofasplitpersonality,架构如下所示:左侧是较新的metro-s

ios - FFmpeg libavcodec.a Xcode 链接器问题 - 架构 arm64 的 undefined symbol

我已经使用这个脚本为iOS构建了FFmpeg:https://github.com/kewlbear/FFmpeg-iOS-build-script我为所有架构构建,然后我再次为arm64构建(作为我想要的架构),我什至使用其他构建脚本为iOS构建FFmpeg。但是,我一直遇到同样的问题:Undefinedsymbolsforarchitecturearm64:"_VTDecompressionSessionCreate",referencedfrom:_av_videotoolbox_default_init2inlibavcodec.a(videotoolbox.o)"_VTDec