有关Homemade Graphics Card和graphics subsystem的资料和文章参考
从相关Open-Source资源开始
Open Graphics Project
https://en.wikipedia.org/wiki/Open_Graphics_Project
(这个项目好像停了)
Open Source Graphics Card
https://hackaday.com/2012/06/05/open-source-graphics-card/
MIAOW(一个开源GPGPU的team)
MIAOW is an open source implementation of the AMD Southern Islands GPU ISA.
http://miaowgpu.org/
(重磅!)How To Create a General Purpose Graphics Card With an FPGA
https://dqydj.com/how-to-create-an-fpga-graphics-card/
(重磅!)FPGA graphics accelerator with 180MHz STM32F429
https://andybrown.me.uk/2014/06/01/ase/
(重磅!)直接是一篇论文,FPGA-Based Graphics Acceleration
https://web.wpi.edu/Pubs/E-project/Available/E-project-122210-113417/unrestricted/full_report.pdf
(重磅!)The logi3D 3D Graphics Accelerator IP Core
一个提供IP核的,可以看他们OPENGL的用法
https://www.logicbricks.com/Solutions/About-EPP-FPGA-logi3D-Graphics-Accelerator.aspx
(重磅!)QuickSilver Neo: Open Source GPU
https://hackaday.io/project/11815-quicksilver-neo-open-source-gpu
Using FPGAs to Render Graphics and Drive LCD Interfaces
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/wp/wp-01100-graphic-lcd-display.pdf
缺少接地气的Start:从SPI->VGA开始?
(重磅!)How To Create a General Purpose Graphics Card With an FPGA
https://dqydj.com/how-to-create-an-fpga-graphics-card/
缺少驱动:FBTFT能帮上忙
FBTFT用于小尺寸的TFT屏驱动,可以用它来学习Framebuffer驱动的全过程
百度搜索:fbtft移植
我觉得最重要的是看源码,然后根据自己的需要修改,文章很多,看下面的已经足够了
参考资源
fbtft的官方github地址:
https://github.com/notro/fbtft
FBTFT驱动移植(这是一篇网站贴)
https://blog.csdn.net/sunwanxia/article/details/105619667
FBTFT分析
https://www.kancloud.cn/lichee/lpi0/539012
嵌入式Linux fbtft(SPI TFT屏)驱动移植及调试
https://www.freesion.com/article/1783970069/
Linux驱动开发 / fbtft源码速读
https://zhuanlan.zhihu.com/p/334941197
深入理解FBTFT–使用篇
https://blog.csdn.net/qq_40937426/article/details/108890623
微雪 3.5inch RPi LCD (A) :
https://www.waveshare.net/wiki/3.5inch_RPi_LCD_(A)
深入一点FrameBuffer
linux中Framebuffer的原理及实现机制
https://blog.csdn.net/uffgfbft/article/details/84001943
找个程序快速验证
Framebuffer应用程序编程实例(显示简单颜色)
https://www.cnblogs.com/ganrui/p/3692072.html
FrameBuffer系列 之 简单编程(给了几个例子,有显示图片)
https://blog.csdn.net/younger_china/article/details/14236251
从百草园杀到三味书屋
FrameBuffer自身的缺点
Framebuffer本身不具备任何运算数据的能力,就只好比是一个暂时存放水的水池.CPU将运算后的结果放到这个水池,水池再将结果流到显示器. 中间不会对数据做处理. 应用程序也可以直接读写这个水池的内容.在这种机制下,尽管Framebuffer需要真正的显卡驱动的支持,但所有显示任务都有CPU完成,因此CPU 负担很重.
FrameBuffer 只是一个提供显示内存和显示芯片寄存器从物理内存映射到进程地址空间中的设备。所以,对于应用程序而言,如果希望在FrameBuffer 之上进行图形编程,还需要自己动手完成其他许多工作。
解放你的CPU
真正的显卡机制
linux kernel/graphic部分作的笔记
https://github.com/freelancer-leon/notes/tree/master/kernel/graphic
(这个自由职业者在github上写了一些computer-sci的笔记,个人觉得棒,可以参考,这里是他对于linux kernel/graphic部分作的笔记)
GPU图形图像渲染原理
https://blog.csdn.net/weixin_40877924/article/details/107341706
三角形在显卡中的渲染流程
http://mecg.me/?p=84
Life of a triangle - NVIDIA’s logical pipeline(NVDIA官方参考)
https://developer.nvidia.com/content/life-triangle-nvidias-logical-pipeline
照葫芦画瓢:看看真正的显卡驱动什么样
NVDIA给出的GPU底层开放文档:
https://github.com/NVIDIA/open-gpu-doc
https://nvidia.github.io/open-gpu-doc/
Nouveau:
Nouveau 是一个为 Nvidia 显卡撰写的开源驱动项目,由一群开发者通过逆向工程技术还原 Nvidia 的专有 Linux 驱动所构建。这个项目弄得很好,很多人用。
https://nouveau.freedesktop.org/
最重要的是,他在网站上可列出了他们使用的工具和参考资料
这个超级值得借鉴!
零散的图片
## 可以参考的网站:
http://www.microvga.com/
vga时序:
http://tinyvga.com/vga-timing
User manual | CRT Controller Registers
https://manualzz.com/doc/40705835/crt-controller-registers
Hardware Level VGA and SVGA Video Programming Information Page
VGA Chipset Reference
https://www.scs.stanford.edu/10wi-cs140/pintos/specs/freevga/vga/vga.htm