- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 不同arp报文的区别
sourceIP:本机地址。sourceMac:本机mac。dstIP:目的ip。dstMAC:目的mac。sourceIP:本机地址。sourceMac:本机MAC。dstIP:目的IP。sourceIP:本机IP。sourceMac:本机mac。dstIP:本机IP。sourceIP:本机IP。sourceMac:本机mac。dstIP:本机IP。sourceIP:全0。sourceMac:本机mac。dstIP:待探测IP。免费ARP reply。
2024-11-06 20:50:14
208
原创 Linux一些编译选项
C=xx,C=1使能代码检查检查那些需要重新编译的文件,C=2检查所有文件。M=dir,单独编译某个模块,make SUBDIRS=dir也是支持的。-s 实现静默编译,编译时候不会打印任何信息。O=xx,编译产生的文件输出到指定目录。V=1 命令输出输出完整命令。
2024-09-04 13:46:50
174
原创 openwrt新添加模块报错Unknown symbol platform_driver_unregister
platform_driver_unregister这个函数在内核代码中有定EXPORT_SYMBOL_GPL(platform_driver_unregister);所以为了这个JB许可证,要在我们的代码中加入MODULE_LICENSE(“GPL”);
2024-06-20 10:28:54
385
原创 gcc见过的编译选项
默认情况下,编译器会对未使用的函数发出警告,因为这可能是代码中的潜在问题,例如定义了但从未调用的函数。使用-ffunction-sections选项,编译器将会将每个函数放入单独的代码段中,这样可以实现更细粒度的代码组织和更精确的链接控制。使用-fdata-sections选项,编译器将会将每个数据对象放入单独的数据段中,这样可以实现更细粒度的数据组织和更精确的链接控制。-g 是GCC编译器的一个选项,它用于在生成的可执行文件或调试信息文件中,包含额外的调试信息。
2024-06-11 15:09:04
1848
原创 openwrt编译 Package xxx is missing dependencies for the following libraries
$( patsubst %, $ (PKG_INFO_DIR)/%.provides,$ $ (IDEPEND_$ (1)))是一个使用make函数patsubst的表达式。它将IDEPEND_$(1)中的每个元素,替换为 $ (PKG_INFO_DIR)/%.provides的形式,生成一个新列表。总的来说这个函数会读staging_dir/target-xxx/pkginfo这个目录的.provides文件和IDEPEND_ $(1)这个文件列表的文件对比。1、目标模块未编译。
2024-06-06 17:19:12
868
原创 openwrt最终rootfs生成流程
(package/stamp-install)最终会执行make package/Install。(target/stamp-install)将root-xxx打包到bin/target目录下。其中$(package/stamp-install)通过opkg工具安装到root目录下。$(target/stamp-install)使用mksquashfs4将root压缩。(target/stamp-install)相关联。1、主Makefile定义。rootfs最直接和。
2024-05-30 15:55:26
754
原创 openwrt HostBuild流程
和package不同,tool编译时compile目标在tools/Makefile直接定义。其差异之处在于make tools/xxx/compile时Makefile调用的是HostBuild而不是PackgeBuild。make tools/xxx/compile和make package/xxx/compile相似。$(HOST_STAMP_INSTALLED):将编译后的工具拷贝到staging_dir目录下。$(HOST_STAMP_BUILT):执行工具目录下生成的makefile。
2024-05-13 16:18:52
495
1
转载 转载:Makefile实现编译时间统计
最近的一个项目中,想要统计make整个项目的时间,并添加到Makefile中,生成镜像后,自动输出时间到屏幕。调研了,发现可以使用以下两种方式来实现。
2024-05-13 15:54:10
434
原创 stm32函数栈分配总结
stm32函数栈分配总结1、局部变量栈空间由本函数申请。2、父函数分配子函数输入参数所需要的栈空间3、局部变量、函数输入参数等静态栈空间分配在编译时确定4、也就是说函数执行所需要的静态栈空间由一部分由父函数申请比如子函数的输入参数,一部分由子函数申请比如局部变量。5、静态栈空间分配在函数进入时一次性分配。6、CPU寄存器值的保存、回调函数等编译器无法确定的栈空间由运行时确定。...
2021-12-09 16:51:06
503
原创 Ubuntu安装lib32stdc++6产生E:Unable to locate package
Ubuntu安装lib32stdc++6产生E:Unable to locate packagesudo apt-get update如果运行后显示很短的几句话并且没有解决问题比如我运行后只显示sudo apt-get updateHit:1 http://mirrors.aliyun.com/ubuntu xenial InReleaseHit:2 http://mirrors.aliyun.com/ubuntu xenial-updates InRelease
2020-11-16 10:31:21
4523
6
滚球控制系统.zip
2019-07-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人