龙芯嵌入式:菜鸡大学生折腾Loongarch32嵌入式记

龙芯嵌入式:菜鸡大学生折腾Loongarch32嵌入式记工欲善其事,必先利其器。这篇Blog将着重介绍如何从零开始构建一个loongarch32-unknown-elfsf目标的工具链,并利用其构建一个龙芯1C102单片机的点灯程序。 💡 下文若...

2026-01-02

龙芯嵌入式:菜鸡大学生折腾Loongarch32嵌入式记 工欲善其事,必先利其器。这篇Blog将着重介绍如何从零开始构建一个loongarch32-unknown-elfsf目标的工具链,并利用其构建一个龙芯1C102单片机的点灯程序。 💡 下文...

深入浅出:第九章

排序待排序数组: 1std::vector<int> target = {123, 4354, 123, 454, 876, 2, 5464}; 选择排序从待排序队列中选出目标值(最大 / 最小值),放在待...

使用 Rust 语言编写基于 STM32 的智能车程序

这篇 Blog 将着重介绍如何使用 Rust 语言工具链配置 STM32 嵌入式开发环境,并将指导您使用 Rust 编写一个简易的、基于电磁传感器循迹的智能车程序。 💡 这里所使用的单片机芯片为 STM32F103RCT6。不同的芯片可能产生细微...

sys_brk

sys_brk(即调用号为12的brk系统调用)是Linux中一个用于动态内存管理的核心系统调用。它直接操作进程的程序中断点(program break),即堆(heap)的结束地址。通过改变这个中断点的位置,程序可以动态地增加或减少其数据段的大小。...

sys_mprotect

sys_mprotect(即调用号为10的mprotect系统调用)是Linux内核提供的一个核心功能,它允许程序动态地修改其虚拟地址空间中某个内存区域的访问权限。这在很多场景中都至关重要,如实现JIT编译器、沙箱机制,或者防止某些类型的缓冲区溢出攻...

sys_mmap 与 sys_munmap

sys_mmap(调用号为9)和sys_munmap (调用号为11)是 Linux 中功能最强大的内存管理接口之一。二者分别可用于将文件或匿名内存映射到进程的虚拟地址空间以及取消前者所建立的映射,从而实现文件 I/O 的内存语义、堆外大块...

sys_lseek

sys_lseek (调用号为8)是 Linux 中一个用于操作文件描述符读写位置的系统调用。它的核心功能是重新定位(移动)一个已打开文件的读写偏移量(offset)。这个偏移量决定了下一次读或写操作将从文件的什么位置开始。通过它,我们可以实现文件的...

sys_poll

sys_poll (即调用号为7的poll系统调用)是 Linux 中一个非常重要的系统调用,用于检测多个文件描述符,看它们是否准备好去进行某种类型的 I/O 操作(比如是否可读、可写等)。它是一种实现 I/O 多路复用的高效方法...

sys_stat, sys_fstat 以及 sys_lstat

sys_stat (调用号为4)、sys_fstat (调用号为5)和 sys_lstat (调用号为6)是 Linux 系统中的三个基本文件状态查询系统调用,用于获取文件的元信息(如大小、权限、时间戳等)。 这三个系统调用虽然都用于获取文件元信息,...

12