我想知道是否有办法删除用C开发的嵌入式项目的地图文件中列出的所有未使用的函数,并使用IAR嵌入式工作台用于ARM IDE,它使用自己的编译器和链接器:
IAR C/C++ Compiler for ARM 8.30
IAR ELF Linker for ARM 8.30
IAR Assembler for ARM 8.30
我注意到,并不是地图文件中列出的所有函数都是在运行时实际使用的函数,是否有任何优化方法来删除所有未使用的函数?
例如,在项目中使用了第三个库,FuncA()是其中的一部分,其中可能有一个开关情况,并且在每个情况下,调用的静态函数都不同,比如FuncA1()、Fun
我下载了。我正在尝试交叉编译它,以便ARM(PandaBoard)运行精简版本的linux。
在配置的初始设置中,我尝试
Shell$ ./configure --host=ARM
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
checking for correct TEA configuration... ok (TEA 3.9)
我目前正在开发一个程序,在这个程序中,我需要存储大整数值,大到不适合于uint32。只有int64或uint64。
我刚刚意识到,我将在这个项目中使用的Raspberry Pi Zero v1.3有Broadcom BCM2835 processor,我相信它是一个32 bit架构处理器。
It contains an ARM1176JZFS (ARM11 using an ARMv6-architecture core) with floating point, running at 1GHz
如何确保我的程序在这个32位架构上正确运行?我要做什么不同的事吗?或者,当我交叉编译它:env G
如何在ARM汇编器代码中使用外部定义,如LONG_MIN和LONG_MAX?
假设my_arm.h看起来像这样:
int my_arm(int foo);
假设我有一个my_main.c,如下所示:
...
#include <limits.h>
#include "my_arm.h"
...
int main (int argc, char *argv[])
{
int foo=0;
...
printf("My arm assembler function returns (%d)\n", my_arm(foo));
...
}
m
如何从交叉编译的二进制文件生成程序集?
使用的编译命令是:
arm-none-linux-gnueabi-gcc test.c -o test
如何解压缩二进制test?
我用过:
objdump -d test -m arm
但上面写着:
test: file format elf32-little
objdump: can't use supplied machine arm
有什么帮助吗?
为了使它只考虑src目录中的代码(并忽略所有的子项目,如Ada驱动程序库),我需要给哪些命令?
我读过,它说要用'Test_Case‘方面来标记我想测试的每个子程序。如果有必要的话,我会走这条路,但是我想要自动添加新代码的测试用例,这样我就不会错过任何东西。
,这是我的探地雷达文件:
with "c:\Domains\ada\Ada_Drivers_Library\boards\MicroBit\microbit_zfp.gpr";
project Demo_Project is
for Runtime ("ada") use Microbit
我从arm开发人员网站gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz将我的工具链更新到GCC8.3 我可以构建程序并在目标上运行它,它工作得很好。但是当我尝试通过eclipse进行远程调试时,我得到了以下错误: 0xb6fd6a40 in _dl_start_user () from /home/user/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/ld-linux-armhf.so.3
Program received s