当前位置: 首页 > 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
http://www.xdnf.cn/news/778843.html

相关文章:

  • vue-15 (实践练习:使用路由防护实现身份验证和授权)
  • 微软Build 2025:Copilot Studio升级,解锁多智能体协作未来
  • 05 APP 自动化- Appium 单点触控 多点触控
  • 进阶配置与优化:配置 HTTPS 以确保数据安全传输
  • jenkins结合gitlab实现CI
  • 【Zephyr 系列 5】定时器与低功耗控制:打造省电高效的嵌入式系统
  • 建筑工程施工进度智能编排系统 (SCS-BIM)
  • mapbox高阶,生成并加载等时图
  • LabVIEW基于 DataSocket从 OPC 服务器读取数据
  • Spring AI Advisor机制
  • 【信创-k8s】海光/兆芯+银河麒麟V10离线部署k8s1.31.8+kubesphere4.1.3
  • MySQL 如何判断某个表中是否存在某个字段
  • 【数据结构 -- B树】
  • 使用 HTML + JavaScript 实现文章逐句高亮朗读功能
  • n8n 自动化平台 Docker 部署教程(附 PostgreSQL 与更新指南)
  • Java数据校验:确保数据完整性和正确性
  • Spring Cloud Eureka:微服务架构中的服务注册与发现核心组件
  • 定时器时钟来源可以从输入捕获引脚输入
  • HashMap 的底层原理
  • 小白的进阶之路系列之十二----人工智能从初步到精通pytorch综合运用的讲解第五部分
  • 网络安全问题及对策研究
  • Java面试八股--08-数据结构和算法篇
  • JavaWeb是什么?总结一下JavaWeb的体系
  • MQTTX连接阿里云的物联网配置
  • Linux 下 ChromeDriver 安装
  • 70道Hive高频题整理(附答案背诵版)
  • Express教程【006】:使用Express写接口
  • “草台班子”的成长路径分析
  • 基于InternLM的情感调节大师FunGPT
  • Cilium动手实验室: 精通之旅---1.Getting Started with Cilium