欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > 【Linux】Linux应用开发小经验

【Linux】Linux应用开发小经验

2025/5/19 13:26:23 来源:https://blog.csdn.net/weixin_50648158/article/details/147687108  浏览:    关键词:【Linux】Linux应用开发小经验

基于Petalinux工具链的Linux应用开发小经验,未完待续...

部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。

 专栏目录:记录自己的嵌入式学习之路-CSDN博客


目录

1    关于编译命令

1.1    $CC

2    设置自启动

3    一些技巧

3.1    获取微秒级时间


1    关于编译命令

1.1    $CC

        当运行 $CC 命令时,实际上使用的是以下命令:

arm-xilinx-linux-gnueabi-gcc -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/pkg/petalinux_sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi

        这些参数定义了编译器的行为和生成的目标代码的特性。下面是每个参数的解释:

(1)    arm-xilinx-linux-gnueabi-gcc:这是交叉编译器的名称,用于编译针对ARM架构的代码,特别是针对Xilinx FPGA设备的。gnueabi指的是 GNU EABI(嵌入式应用程序二进制接口)。

(2)    -mthumb:这个选项指定生成Thumb指令集的代码,这是一种16位的指令集,用于ARM架构,可以减少代码大小。

(3)    -mfpu=neon:这个选项指定浮点单元(FPU)为NEON,这是一种SIMD(单指令多数据)架构,用于ARM处理器,可以加速多媒体和信号处理应用。

(4)    -mfloat-abi=hard:这个选项指定使用硬浮点ABI(应用程序二进制接口),意味着浮点运算将使用硬件浮点单元。

(5)    -mcpu=cortex-a9:这个选项指定目标CPU为ARM Cortex-A9。

(6)    -fstack-protector-strong:这个选项启用了强栈保护,这是一种安全特性,用于防止缓冲区溢出攻击。

(7)    -O2:这是优化级别,-O2 表示优化编译器生成的代码以提高性能,同时保持代码大小和性能之间的平衡。

(8)    -D_FORTIFY_SOURCE=2:这个宏定义用于启用额外的安全检查,以检测某些类型的缓冲区溢出。

(9)    -Wformat 和 -Wformat-security:这些选项启用了对格式化字符串的警告,帮助检测可能导致安全问题的格式化字符串的使用。

(10)    -Werror=format-security:这个选项将格式化安全警告视为错误,这意味着如果检测到潜在的安全问题,编译将失败。

(11)    --sysroot=/opt/pkg/petalinux_sdk/sysroots/cortexa9t2hf-neon-xilinx-linux-gnueabi:这个选项指定了系统根目录,编译器将使用这个目录中的库和头文件来编译程序。

2    设置自启动

        可在/etc/profile.d路径新建自己的.sh脚本,然后chmod 777。

        但需要注意的是,设置了自启动就不要将uboot中的bootargs环境变量设置为具有console=ttyPS0,115200内容的了,如果指定了串口,那么串口不连接,系统根本启动不了,更别说应用了。会卡在uboot的命令行中。

3    一些技巧

3.1    获取微秒级时间

#include <sys/time.h>
long getMicrotime()
{struct timeval currentTime;gettimeofday(&currentTime, NULL);return currentTime.tv_sec * (int)1e6 + currentTime.tv_usec;
}


 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词