当前位置: 首页 > 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.lqws.cn/news/113239.html

相关文章:

  • 【LUT技术专题】图像自适应3DLUT代码讲解
  • 蛋白质设计软件LigandMPNN介绍
  • 数据加密标准(DES)解析
  • 40、响应处理-【源码分析】-基于请求参数的内容协商原理
  • malloc 内存分配机制:brk 与 mmap
  • C#面试问题61-80
  • 时代星光推出战狼W60智能运载无人机,主要性能超市场同类产品一倍!
  • PDF.js无法显示数字签名
  • 基于MATLAB的FTN调制和硬判决的实现
  • 《仿盒马》app开发技术分享-- 个人中心关于逻辑完善(端云一体)
  • 关于线缆行业设备数据采集异构问题的解决
  • 实现对deepseek流式返回的json数据,进行逐字解析并实时渲染
  • 【计算机网络】第七章 运输层
  • 蛋白质结构预测软件openfold介绍
  • 永磁同步电机控制算法--基于PR电流环的矢量控制
  • HCIP(BGP基础)
  • 模型上下文协议(MCP)简介
  • 【HarmonyOS 5】鸿蒙mPaas详解
  • 【网络安全】SRC漏洞挖掘思路/手法分享
  • Python训练营打卡Day42
  • sqlite3 命令行工具详细介绍
  • 蓝桥杯_DS18B20温度传感器---新手入门级别超级详细解析
  • 【自动思考记忆系统】demo (Java版)
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Dad Jokes(冷笑话卡片)
  • LangChain学习系列之LangChain4j介绍
  • vue入门环境搭建及demo运行
  • oauth2.0
  • 【Linux】进程虚拟地址空间详解
  • 嵌入式复习小练
  • 【散刷】二叉树基础OJ题(二)