- 博客(439)
- 资源 (44)
- 收藏
- 关注
原创 gcc统计生成代码占用内存大小
不带任何选项直接使用,会显示出代码段(text)、数据段(data)和BSS段(bss)的大小,以及它们的总和。-A或–radix=16:指定输出数字的基数,比如–radix=16会以十六进制显示大小。-x或–exec-header:对于可执行文件,显示可执行头部的信息。arm-none-eabi-size [选项] 文件名。-t或–total:仅显示总大小,不分别列出各段。代码生成后不确定占用大小,可以用以下方法生成。1、使用arm-none-eabi-size。-d或–debug:显示调试部分的大小。
2024-11-26 17:36:41
413
原创 linux代码调试,反汇编和map文件生成
在编译的链接命令添加g -Wl,-Map=output.map。output.map是生成的map文件。map文件包含了所有函数的地址信息。反汇编可以看到代码编译情况。
2024-11-13 19:58:07
260
原创 tc397交叉编译链接静态库报错tricore-elf/bin/ld: warning: cannot find entry symbol _START; defaulting to 00000000
这个时候,可以启用链接参数“–whole-archive”来告诉链接器,将后面库中所有符号都链接进来,参数“-no-whole-archive”则是重置,以避免后面库的所有符号被链接进来。添加-Wl,–whole-archive -lXXX -Wl,–no-whole-archive。默认情况下,对于未使用到的符号(函数是一种符号),链接器不会将它们链接进共享库和可执行程序。解决现象,不会再报警告错误。
2024-11-11 10:53:19
279
原创 应用程序使用jlink的RTT功能收发调试数据
代码目录,RTT是需要移植的代码,Example是官方给的使用示例。在安装目录的示例代码里面,安装好jlink工具后自带。2.添加c代码和头文件路径到工程(汇编文件不需要)二、移植jlink驱动到项目工程。添加RTT目录下的代码到项目工程。初始化jlink-rtt。jlink rtt代码。jlink驱动安装包。
2024-06-27 09:57:29
644
原创 linux下can调试工具canutils编译安装
canutils地址:https://public.pengutronix.de/software/socket-can/canutils/v4.0/canutils-4.0.6.tar.bz2 #4.0.6版本。libsocketcan地址:https://public.pengutronix.de/software/libsocketcan/libsocketcan-0.0.11.tar.bz2 #0.0.11版本。二、先编译libsocketcan。三、编译canutils。五、软连接进文件系统。
2024-01-12 17:03:18
2004
原创 linux configure报错:configure: error: cannot guess build type; you must specify one
原因:一般是由于config.guess和config.sub脚本无法识别当前的操作系统类型导致的。然后在config的命令后面带上 --build=arm,其中平台根据自己的硬件确定。下载 config.guess和config.sub放到/usr。硬件平台 飞腾d2000。
2024-01-11 16:27:01
1396
原创 ubuntu设置程序或者命令运行时间,到时间自动退出--timeout
对于无法退出的程序做很好的超时。这里使用timeout命令。timeout的单位。
2023-06-07 10:15:02
922
原创 linux c编译报错:error: invalid application of ‘sizeof‘ to incomplete type ‘struct slave_readWrite_def[]‘
编译报错:error: invalid application of ‘sizeof’ to incomplete type ‘struct slave_readWrite_def[]’所以 sizeof 不知道 这个符号到底占用了多少空间。sizeof 的计算发生在代码编译 的时刻。extern 标注的符号 在链接的时刻解析。sizeof不能用在extern变量。定义的地方多定义一个变量计算长度。
2023-01-12 18:52:05
908
原创 python自动化测试 selenium 您的连接不是私密连接的解决办法
【代码】python自动化测试 selenium 您的连接不是私密连接的解决办法。
2023-01-08 16:52:32
1289
原创 C++面向对象(二)继承、派生
公有继承(public):基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。保护继承(protected): 基类的公有和保护成员将成为派生类的保护成员。私有继承(private):基类的公有和保护成员将成为派生类的私有成员。继承:就是将之前做好的类功能复制过来,不用重复再去实现。派生:把继承类,然后添加新的功能生成的新类过程称为派生。六、继承的析构、构造、和重载。基类:被继承的类为基类。
2022-12-11 22:30:39
340
原创 C++面向对象(一)定义类、创建对象、使用
c++相对c最特别的增加了面向对象的编程,一方面自身可以去设计一些对象,自己使用或者交给他人使用,另一方面官方也提供了很多对象可以直接继承过来自己使用,达到快速开发项目。
2022-12-10 21:26:47
1076
原创 python文件转换成exe可执行的windows文件
python的程序需要运行环境有时候很不方便,因为要交给别人代码可能因为环境的原因运行各种问题,这里给出直接讲python程序转换成exe文件,很方便直接给执行程序就可以,也不用担心运行环境问题而运行不了二、工具1、安装pyinstallerpip install pyinstaller2、编写python文件注意代码里面不能有中文,包含注释,不然报错3、转换成exe命令说明打包成一个exe格式的文件pyinstaller -F D:\project\test.py没有控制台的黑
2022-12-07 22:33:47
3206
1
原创 opcua开源代码OPEN62541的交叉编译
OPEN62541是opcua的一个开源代码,支持server 和client,免费,在交叉编译的时候还是有一些坑,这里介绍在嵌入式设备中交叉编译open62541。生成源文件open62541.c open62541.h 在当前build目录,以及静态库在bin/lib。修改“hints.ai_family = AF_UNSPEC;为“hints.ai_family = AF_INET;2、修改open62541.c。执行.sh build.sh。2)新建build目录。3)进入build目录。
2022-11-01 17:49:02
1838
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人