当前位置: 首页 > news >正文

从0开始学linux韦东山教程第四章问题小结(3)

  本人从0开始学习linux,使用的是韦东山的教程,在跟着课程学习的情况下的所遇到的问题的总结,理论虽枯燥但是是基础。说实在的越看视频越感觉他讲的有点乱后续将以他的新版PDF手册为中心,视频作为辅助理解的工具。参考手册为嵌入式Linux应用开发完全手册V5.3_IMX6ULL_Pro开发板。
摘要:这节博客主要讲的是,文本特性设置,以及怎么用vs code调试去逐行理解代码,明白其工作原理。文字内容方面不做过多的研究,今后有需求再深入。
摘要关键词:文本特性设置、vs code调试

本文详细介绍以下问题,如果你遇到了以下问题,看看我的方案能否解决。

1.文本特性设置
2.怎么用vs code调试去逐行理解代码,明白其工作原理

ps

ps 是 Linux 中一个用于显示当前系统进程状态的命令。它可以用来查看正在运行的进程,包括进程的PID(进程ID)、CPU占用、内存占用、进程状态等信息。ps 命令非常常见,用于调试、监控系统等。
在这里插入图片描述
其实它也就相当于win11中的任务管理器。
在这里插入图片描述

cd /proc/3581/fd

/proc 目录:是一个虚拟文件系统,包含了内核和进程的运行时信息。它并不是存储在磁盘上的真实文件,而是内存中的虚拟文件系统,用于提供系统和进程的各种状态信息。

/proc/3581:这个路径表示一个进程的目录,其中 3581 是进程的 ID(PID)。每个进程在 /proc 目录下都有一个以其 PID 为名的子目录,存储该进程的各种信息。

/proc/3581/fd:在 /proc/3581/fd 目录下,每个文件描述符都会对应一个符号链接(symlink),链接指向该文件描述符对应的文件或资源。例如,文件描述符 0 通常是标准输入(stdin),文件描述符 1 是标准输出(stdout),文件描述符 2 是标准错误(stderr)。

cd /proc/3581/fd:该命令使当前工作目录切换到进程 3581 的文件描述符目录。进入这个目录后,你可以使用命令(如 ls -l)查看该进程打开的所有文件描述符,并查看它们指向的实际文件或资源。
假设你运行 ls -l /proc/3581/fd,可能会看到类似以下的输出:

lrwx------ 1 user user 64 May 21 10:30 0 -> /dev/tty1
lrwx------ 1 user user 64 May 21 10:30 1 -> /dev/tty1
lrwx------ 1 user user 64 May 21 10:30 2 -> /dev/tty1
lrwx------ 1 user user 64 May 21 10:30 3 -> /tmp/somefile.txt

3 是指向 /tmp/somefile.txt 文件的文件描述符。0,1,2也就是必须执行的内部文件。、

show_ascii步骤
如图所示,将其传输到Ubuntu上。
在这里插入图片描述

在这里插入图片描述
执行以下命令行,如上图所示,本人还是犯了一些小错误。比如忘记设置内核,编译地址设置错误等。

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
cd test
arm-buildroot-linux-gnueabihf-gcc -o show_ascii show_ascii.c
adb push show_ascii /root

在这里插入图片描述
通过串口连接开发板,使用adb命令传输文件,检查屏幕输出内容,输出内容如下图所示。一个很小的A。

./show_ascii

在这里插入图片描述
在这里插入图片描述
以下代码实现了输出一长串文本内容。

void lcd_put_str()
{   char* str1="Hello,RouDragon!";short lenth = strlen(str1);for(int i = 0;i<=lenth ;i++)lcd_put_ascii(var.xres/2+i*10, var.yres/2, str1[i]); /*在屏幕中间显示8*16的字母A*/lcd_put_ascii(var.xres/4, var.yres/4, 'A'); 
}

在这里插入图片描述
具体怎么设置颜色的你猜,其实就是以下这行命令。

lcd_put_pixel(x+7-b, y+i, 0xff0000); /* 红 */

个颜色通道(红、绿、蓝)占用 8 位,红也就是最高八位。设置成ff即可,绿色和蓝色想必你也知道怎么设置了。

查找头文件库

echo 'main(){}'| arm-buildroot-linux-gnueabihf-gcc -E -v -

使用 echo 将 main(){} 作为输入传递给编译器。
使用 arm-buildroot-linux-gnueabihf-gcc 编译器进行预处理,生成详细的调试输出。
在预处理过程中,编译器会执行宏展开、头文件包含等步骤,但不会进行实际的编译。
通过 -v 选项,它会显示编译器详细信息,比如包括头文件搜索路径、使用的宏等。


对于尖括号而言它会去搜索以上内容库。

他那一块有点乱,他首先是将文件libpng-1.6.37.tar.xz上传到了ubuntu中然后进行解压查看有没有configure文件。
在这里插入图片描述
如图所示。

./configure --host=arm-buildroot-linux-gnueabihf --prefix=$PWD/tmp

在这里插入图片描述

后续本人并没有出现视频中的报错,
在这里插入图片描述
还好我的编译链接用的是以上,省了不少麻烦。

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

相关文章:

  • 自然图像数据集
  • DeepSeek模型多模态扩展与跨模态理解实战
  • mybatis03
  • FastAPI安全认证:从密码到令牌的魔法之旅
  • 使用NMEA Tools生成GPS轨迹图
  • 第100期 DL,多输入多输出通道
  • [网页五子棋][匹配对战]落子实现思路、发送落子请求、处理落子响应
  • 论文略读:Auto-Regressive Moving Diffusion Models for Time Series Forecasting
  • 【nm】nm命令的使用:查看.so中的符号信息
  • RocketMQ介绍与部署
  • NodeJS全栈WEB3面试题——P6安全与最佳实践
  • SDU棋界精灵——实现硬件程序ESP32的FreeRTOS任务
  • 【LeetCode 热题100】动态规划实战:打家劫舍、完全平方数与零钱兑换(LeetCode 198 / 279 / 322)(Go语言版)
  • 【QT控件】QWidget 常用核心属性介绍 -- 万字详解
  • Laplace 噪声
  • 案例:TASK OA
  • YOLOv5 :训练自己的数据集
  • wow Warlock shushia [Dreadsteed]
  • 简单了解string类的特性及使用(C++)
  • MDP的curriculums部分
  • wordpress插件关闭更新/宁波优化seo软件公司
  • 企业网站的用户需求分析/竞价托管sem服务
  • 个网站做淘宝客推广可以吗/谷歌seo引擎优化
  • 有哪些可以接单做任务的网站/云优化软件
  • 北京企业网站设计方案/拓客软件排行榜
  • 网站用什么开发软件做/seo搜索引擎优化入门