Zheyuan Zou
码龄8年
求更新 关注
提问 私信
  • 博客:119,548
    119,548
    总访问量
  • 101
    原创
  • 294
    粉丝
  • 76
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
加入CSDN时间: 2017-10-21

个人简介:中国科学技术大学2024届计算机系统结构硕士,成长中的嵌入式软件工程师,E-mail:zouzheyuan123@qq.com

博客简介:

zheyuan的博客

查看详细资料
个人成就
  • 获得494次点赞
  • 内容获得131次评论
  • 获得550次收藏
  • 代码片获得3,768次分享
  • 博客总排名101,398名
  • 原力等级
    原力等级
    5
    原力分
    1,007
    本月获得
    3
创作历程
  • 5篇
    2025年
  • 1篇
    2024年
  • 18篇
    2023年
  • 27篇
    2022年
  • 45篇
    2021年
  • 10篇
    2020年
成就勋章
TA的专栏
  • GPU & LVGL
    1篇
  • MIT 6.S081
    16篇
  • ESP-IDF
    4篇
  • Stanford CS144
    1篇
  • CSAPP Lab
    3篇
  • 总线协议系列
    1篇
  • Xilinx
    5篇
  • ESP32
  • 碎碎念
    1篇
  • Embedded Linux Development
    2篇
  • Algorithm
    38篇
  • HeteroCL
    1篇
  • ReadingNotes
    8篇
  • Principle of Economics
  • Advanced Computer Network
    4篇
  • SearchSearch
    1篇
  • HIT-OS
  • MIT 6.824
  • HLS
    1篇
  • Linux
    14篇
  • Matplotlib
    2篇

TA关注的专栏 1

TA关注的收藏夹 0

TA关注的社区 11

TA参与的活动 0

兴趣领域 设置
  • 数据结构与算法
    排序算法推荐算法
  • 后端
    spring架构
  • 人工智能
    opencv机器学习caffe神经网络tensorflowmxnetpytorchnlpscikit-learn聚类集成学习迁移学习分类回归
  • 硬件开发
    fpga开发dsp开发arm开发硬件架构
  • 服务器
    linux
创作活动更多

AI 镜像开发实战征文活动

随着人工智能技术的飞速发展,AI 镜像开发逐渐成为技术领域的热点之一。Stable Diffusion 3.5 FP8 作为强大的文生图模型,为开发者提供了更高效的图像生成解决方案。为了推动 AI 镜像开发技术的交流与创新,我们特此发起本次征文活动,诚邀广大开发者分享在 Stable Diffusion 3.5 FP8 文生图方向的实战经验和创新应用 本次征文活动鼓励开发者围绕 Stable Diffusion 3.5 FP8 文生图方向,分享以下方面的内容: 1. 技术实践与优化 - Stable Diffusion 3.5 FP8 模型架构解析与优化技巧 - 文生图生成效果的提升方法与技巧 - 模型部署与加速策略,例如使用 Hugging Face、Diffusers 等工具 - 针对特定场景(例如二次元、写实风)的模型微调与定制化开发 2. 应用场景探索 - Stable Diffusion 3.5 FP8 在不同领域的应用案例分享,例如游戏设计、广告创意、艺术创作等 - 利用 Stable Diffusion 3.5 FP8 实现图像编辑、图像修复、图像增强等功能的探索 - 结合其他 AI 技术(例如 NLP、语音识别)构建更强大的应用 3. 创新应用与思考 - 基于 Stable Diffusion 3.5 FP8 的创新应用场景设计 - AI 镜像开发的未来发展方向的思考与展望 - 对 AI 镜像开发伦理、安全等问题的探讨

28人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

Dive into LVGL (1) —— How LVGL works from top to down

此文至此已经接近5万字,在本文中我们介绍和梳理了LVGL绘制一个简单图形的全过程,这个过程中有很多难点和需要理解的概念任务评估函数与任务分发函数的作用。一系列容易混淆的LVGL概念,例如display(显示器)screen(屏幕)layer(图层,其实有三种释义(drawing layer、screen layer、layer order))绘图缓冲区(draw_buffer)绘图任务(draw_task)帧缓冲区(frame buffer)等等等等,崩溃吧?
原创
博文更新于 2025.05.09 ·
1207 阅读 ·
29 点赞 ·
1 评论 ·
14 收藏

6.S081——补充材料——RISC-V架构中的异常与中断详解

在RISC-V标准中,将异常(exception)定义为当前CPU运行时遇到的与指令有关的不寻常情况,而使用中断(interrupt)定义为因为外部异步信号而引起的让控制流脱离当前CPU的事件。而陷阱(trap)表示的则是,由异常或者中断引起的控制权转移到陷阱处理程序的过程。其实Xv6的定义和RISC-V的定义是相互兼容的,我们说在Xv6中有三种方式会触发陷阱:系统调用、中断和程序异常,其实系统调用中的ecall指令和程序执行中的异常都属于RISC-V标准中定义的异常情况,而。
原创
博文更新于 2025.03.28 ·
10529 阅读 ·
37 点赞 ·
11 评论 ·
70 收藏

Peripheral Drivers in ESP-IDF(4)——UART(1)

ESP-IDF使用uart_obj_t结构体来抽象一个UART设备中可能拥有的所有属性,以及数据缓冲区和一些读写数据时应该记录的信息,这个结构体拥有的域比较繁杂,具体的字段我们在驱动中遇到时再展开解释/*!< UART 端口号 (0, 1, 2) *//*!< UART 事件队列大小 *//*!< UART 中断处理程序句柄 *//*!< UART 模式 (UART / RS485 / IRDA) *//*!< RS485 碰撞检测标志 *//*!< UART RX 超时检测标志 *//*!
原创
博文更新于 2025.03.18 ·
1342 阅读 ·
20 点赞 ·
0 评论 ·
18 收藏

Peripheral Drivers in ESP-IDF(3)——WatchDog Timer

本文介绍了ESP32系列MCU中看门狗定时器相关的内容,以及在ESP-IDF中对看门狗的软件抽象以及封装。具体来说,IDF中利用硬件上的两个定时器组中的看门狗定时器,分别作为了任务看门狗(MWDT0)和中断看门狗(MWDT1),并分别通过监视FreeRTOS中的两大基本机制——IDLE TASK和tick中断,实现了对非法超时情况的监视与警告。
原创
博文更新于 2025.03.10 ·
1066 阅读 ·
13 点赞 ·
0 评论 ·
10 收藏

Peripheral Drivers in ESP-IDF(1)——GPIO

GPIO作为最基本的外设,它的构造和使用还是相对简单的,大部分情况下只需要写入对应管脚的配置寄存器即可改变对应GPIO管脚的属性。然而,GPIO的使用经常会和一些其他组件关联起来,例如GPIO交换矩阵IO多路复用器中断交换矩阵等。本篇博文对有关GPIO的一些基本操作进行了简要的介绍,并对有关GPIO的中断处理程序的基本工作流程做了较为详细的介绍。
原创
博文更新于 2025.02.08 ·
1314 阅读 ·
18 点赞 ·
0 评论 ·
24 收藏

Peripheral Drivers in ESP-IDF(2)——GP Timer

这篇博客是ESP-IDF外设驱动系列的第二篇,这篇博客的研究对象是ESP32系列MCU中的定时器组,涉及到的和之前的思路类似,首先,随后深入研究定时器外设的使用方法和其驱动结构组织。
原创
博文更新于 2025.01.27 ·
1076 阅读 ·
21 点赞 ·
0 评论 ·
17 收藏

2024届秋招小记

但我回顾过去的求学和生活经历,好像那些岁月静好的日子只是点缀,反而那些经历过的一个个挫折,一些伤心和痛苦的经历,一个个解过的bug才是构成我所有认知和个体的“骨架”。企业会收到很多优质的简历,但却无法分清这里有哪些人是真心想来的,只能不断地反复决策,等前面的人放弃了机会再联系排位靠后的人,整个招聘流程变得非常漫长和缓慢,尽管这样的情况一直存在,但海投一定会让事情变糟很多倍。这些留言和问题我都看到了,有关于Xv6系统的博客依然会更新下去,包括繁复冗长的文件系统的代码,我都会写下去的(又开新坑…
原创
博文更新于 2024.09.20 ·
1248 阅读 ·
13 点赞 ·
5 评论 ·
0 收藏

6.S081——CPU调度部分(Xv6中的进程的状态转换)——xv6源码完全解析系列(11)

好了,我们终于可以总结一下进程的各个状态,以及它们的具体含义和转换方式啦,这就当作一个完美的收官吧,Xv6内核中进程相关的状态及其转换关系如下图所示:哎呀,从没想过这篇博客会写这么长,不过这篇文章算是将Xv6中与进程有关的内容彻底收了个尾,也算是可以安心地进入Xv6中最复杂和体量庞大的文件系统了!
原创
博文更新于 2024.06.18 ·
2434 阅读 ·
40 点赞 ·
10 评论 ·
24 收藏

6.S081——CPU调度部分(CPU的复用和调度)——xv6源码完全解析系列(10)

终于到这里了,我们在之前阅读很多地方的内核代码时,总是习惯性地绕开CPU调度的部分(比如yield函数)。现在我们总算可以深入进去一探究竟了,这次总算是将整个操作系统中的一块重要拼图拼上去了。有操作系统相关基础概念的人应该知道,操作系统的其中一个重要功能是虚拟化(Virtulization)。这是OSTEP(Operating System : Three Easy Pieces,中译名:操作系统导论)提出的操作系统三大主题之一,另外两个是并发(Concurrency)和持久性(Consistency)。虚
原创
博文更新于 2024.06.09 ·
2957 阅读 ·
23 点赞 ·
20 评论 ·
9 收藏

6.S081——陷阱部分(一文读懂xv6系统调用)——xv6源码完全解析系列(5)

在动笔写下这篇博客时,我只是想把Xv6的系统调用过程一点点弄清楚梳理下来,在这个过程中我查阅了许多RISC-V规范和相关书籍,并一直参阅Xv6 Book。结果没想到弄清一个小小的write系统调用,我竟然写了1.2万字,才将这过程中每一行代码研究清楚。即便如此,这个过程中还是有一些残留的问题,比如开关中断的时机(intr_on,intr_off),以及为什么要在usertrap中再保留一份epc的值,这些要完全搞明白需要后面中断、调度的相关知识。
原创
博文更新于 2024.04.23 ·
4706 阅读 ·
32 点赞 ·
17 评论 ·
23 收藏

6.S081——虚拟内存部分——xv6源码完全解析系列(2)

上一篇博客中,我们详细分析了xv6内核代码中有关虚拟内存的部分,主要剖析了vm.c这个文件中的三个全局变量和6个函数,这篇博客。接着剖析和阅读接下来的源码,同样
原创
博文更新于 2024.04.15 ·
3830 阅读 ·
16 点赞 ·
0 评论 ·
24 收藏

Embedded Linux Development——Note (2)——字符设备驱动的开发流程

这篇文章是我学习Linux设备驱动开发的笔记,是在阅读正点原子的教程中的摘要,所以版权将会被标记为转载。我们首先梳理一下开发一款字符设备驱动程序的流程,然后在此基础上分析一下最简单的设备驱动程序LED的开发流程。最后作为补充,再加入一些关于新版驱动程序编写的流程。吐槽一下,正点原子的教程,逻辑太乱了,看的时候绕来绕去。假设我们我们已经有了一个字符设备驱动模块,驱动编译完成之后的模块后缀是.ko,有两种方法可以加载驱动模块:insmod和modprobe,它们的基本用法如下:insmod和rmmod是配对的
转载
博文更新于 2023.08.05 ·
759 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Embedded Linux Development——Note (1)——嵌入式开发环境的搭建

这个系列博客记录在嵌入式Linux开发过程中,内容参考了的教程。首
转载
博文更新于 2023.07.02 ·
544 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

6.S081——并发与锁部分(自旋锁的实现)——xv6源码完全解析系列(9)

这段代码还会调用__sync_lock_release函数来原子地对锁进行释放,其实就是将锁的被占用标志原子地置为0。所以逻辑还是比较简单的,在阅读上述代码时,请多注意这些原子访存指令和内存屏障指令,它们是构成锁机制的核心。
原创
博文更新于 2023.07.02 ·
1394 阅读 ·
8 点赞 ·
3 评论 ·
5 收藏

6.S081——陷阱部分(内核陷阱与时钟中断)——xv6源码完全解析系列(6)

在上一篇博客中,我们通过系统调用这个重要的机制了解了Xv6操作系统中。这篇博客则准备研究一下,在研究内核陷阱流程中一个麻烦的家伙是定时器中断,首先它是一种由CLINT转发而来的本地中断,定时器终端往往会导致CPU的调度,进而将陷阱的处理流程变得错综复杂,这篇博客并不打算深入研究调度过程,这部分内容我们放在后面阅读对应源码时仔细研究。上次我们在阅读。
原创
博文更新于 2023.06.30 ·
2731 阅读 ·
5 点赞 ·
0 评论 ·
10 收藏

6.S081——设备中断与驱动部分(串口驱动与Console)——xv6源码完全解析系列(8)

真的是很复杂的流程啊,想必看到这里人都懵逼了吧,其实我也开始混乱了…console、键盘、屏幕、shell、串口,它们是怎么交互和连接的,现在是有点太过于拘泥于细节而失去了全局观了。下面我就画出整个连接关系的全貌,作为这两篇博客的总结。在上图中,循着任何一种颜色的线条都可以将流程顺利捋顺,这就是对整个部分的总结。console的定位就是一个软件抽象出来的设备体,它专门用来缓存用户输入的字符,并对其中输入的特殊字符和组合键进行预处理,使得串口可以正常打印,shell可以正常解析。
原创
博文更新于 2023.06.26 ·
1375 阅读 ·
16 点赞 ·
2 评论 ·
4 收藏

6.S081——设备中断与驱动部分(串口驱动与Console)——xv6源码完全解析系列(7)

后续会将上述内容一一解释清楚。
原创
博文更新于 2023.06.26 ·
2182 阅读 ·
13 点赞 ·
3 评论 ·
4 收藏

6.S081——虚拟内存部分——xv6源码完全解析系列(1)

希望可以更好地理解OS内核本质
原创
博文更新于 2023.06.17 ·
5556 阅读 ·
31 点赞 ·
4 评论 ·
53 收藏

6.S081——Lab4——trap lab

但我们在实验中没有这么做,Xv6的内核实现中整个栈只有一页(4K)大小,所以我们完全可以。
原创
博文更新于 2023.06.16 ·
1678 阅读 ·
8 点赞 ·
0 评论 ·
4 收藏

6.S081——Lab2——system calls

本实验的目的是在xv6中实现系统调用,这个过程中涉及到一些xv6中系统调用的基本机制,如系统调用号、如何从用户态向内核传参数、如何将结果从内核空间再传回用户空间(copyout)等。但要更加深入的理解系统调用的全过程,还需要在后面。argraw的逻辑非常简单,就是从对应的trapframe中返回a0-a7寄存器,因为根据RISC-V的calling convention,头几个寄存器是。,上一个实验更多的是使用已有的设施去实现一些功能各异的程序,这需要我们对系统调用的过程有更加深入的理解。
原创
博文更新于 2023.06.15 ·
1843 阅读 ·
9 点赞 ·
1 评论 ·
7 收藏
加载更多