笔记
幻影盖伊
不进则退
展开
-
vcs makefile
不过我用这个vcs2018,如果带着uvm编译会报错,不知道咋解决,后续再看吧。只需要在当前文件夹下创建一个filelist,把待编译的文件都列进去即可。VCS使用Makefile教程_vcs makefile-CSDN博客。基于vcs2018,写了一个小module,编译通过,执行正常。原创 2024-01-14 23:02:18 · 634 阅读 · 1 评论 -
STM32H7 LTDC与DMA2D外设(五)
(四)中提到一个问题,LTDC 使用双buffer,花屏问题。四处查找也没找到对应的办法,自己试了很多方式也没解决。没法子,只好使用LTDC的单buffer。使用单buffer,看起来简单了,其实不然,我是希望保持ARGB8888格式不变,这样用int型变量正好一个像素,省去了3byte的间隔的问题。没有双buffer,前景色和背景色的融合就需要dma2d了。此时如果还用之前的方式,我竟然失败了。没有把预期的像素显示出来。想法很简单,一片空间,我赋值之后,用dma2d搬移到ltdc的单buffe原创 2021-03-29 17:49:46 · 754 阅读 · 0 评论 -
STM32H7 LTDC与DMA2D外设(四)
增加DMA2D功能。应用比较简单,没有遇到什么坑,使能dma2d,调一下函数,就可以了。没有想象中的那么多坑,这个还算顺利。也可能是我应用的太简单,只是搞了个搬移,没有做复杂的图形,位移之类的东西。这个先不试了。我打算做个简单的UI,目前具体用什么外设还不清楚,是不是\ltdc就可以了呢?先做着看吧。下一步就是移植os过来。os有很多选择,rt thread是这个开发板原配,但是我不喜欢rt thread,我想试试lite os。huawei的rtos。试试好用不。移植os估计得有点耐心原创 2021-03-26 23:22:31 · 539 阅读 · 0 评论 -
STM32H7 LTDC与DMA2D外设(三)
进一步调试通过了双缓存的LTDC,还没有加入DMA2D。代码上到giteee上了。https://gitee.com/guyspring/CubeMX_ArtPi总结一下自己犯的错误。首先是alpha配置问题,刚开始做的时候,配置的全为0,或者其中一个buffer的alpha为0,最终显示的都是黑屏。把alpha改成255,就可以了。也不用配置别的,开两个缓存,往里写东西,就等于显示到屏幕上了。双缓存都是ARGB888,高8位都是alpha,也都是255,后续看怎么应用吧,目前还没想好。原创 2021-03-25 23:00:28 · 539 阅读 · 0 评论 -
STM32H7 LTDC与DMA2D外设(二)
接着(一)继续有幸把我第一条LTDC的例子在开发板上显示出来了。其实这里面主要是因为我没好好看LCD手册,没搞清楚LTDC的原理导致的。前者导致LCD始终无法显示有效颜色,后者导致我的GRAM内像素格式错误。之前始终把LTDC和DMA2D混为一潭,认为LTDC的2层和DMA2D的2层混合是一个东西,俩必须一起用。(至少看到的很多例子都是这么做的)。后来发现LTDC本身就是一个支持2层混合的外设。与DMA2D功能上一样的,至于为什么很多例子都一起用,后续再试试。目前感觉是速度问题。单层显示的LTD原创 2021-03-24 11:28:22 · 632 阅读 · 0 评论 -
STM32H7 LTDC与DMA2D外设 (一)
查了很多资料,可能是我看的太粗,一直没搞清楚LTDC的原理。找了几个例子,自己改了改,跑了跑,感觉大致的原理应该是这样的。 LTDC外设可以看成是一种M2LCD的的DMA,LTDC的初始化结构体中有一段映射地址,这个地址一般为片外RAM,也可以片内。程序修改这个RAM对应地址段的值,就会体现在屏幕上。就好比一个大数组,每个元素对应LCD的一个像素色。例如RGB888,那么每个像素点,有三个色,各占8bit,一个字节。一个像素点24bit,3字节。开辟一个这样的数组,与LTDC的起始地...原创 2021-03-23 11:41:59 · 1226 阅读 · 0 评论 -
策略模式
李建忠给的例子是一个国际化的典型案例。在做程序界面多国语言支持的时候,经常会遇到这个问题。换句话说,这个例子虽然非常典型,但还是有点专业。很多人接触不到这种项目。我在想有没有更通俗一点的例子?...原创 2021-01-02 21:52:02 · 94 阅读 · 0 评论 -
上兵伐谋,其次伐交,再次伐兵
如果把写代码称之为战斗,那么编码方案应该称得上是伐交,需求分析,应该称得上是伐谋。写代码是战术行为,也是门槛最低,代价最大的行为,也是最容易立功,留名的行为。纵观历史,战术大师数不尽数,几乎每一场战斗,都有人名留青史。而外交大师,却少了很多。那些靠策略阻止战争的人,并没有都留下名来。其实也很容易理解,那些阻止战争的人。基本都停留在了会议室,决策者参与的人太少,没法广泛流传。跟开战不同,一旦启动战争,全国都会被发动起来,一旦有战斗胜利,这个英雄人物就会被大肆宣传,封官进爵。而谋略大师就少之更少了,这些人,基本原创 2020-12-16 10:02:26 · 279 阅读 · 3 评论 -
观察者模式
已知有模块A需要给另外模块X传递信息,信息内容确定,但模块的处理可能不同,或许模块的个数会发生改变。就好比舞台中央的演员,观众有若干个,演员只有一个。每个观众看的内容一致的,但是,感受不一样,反应就不同。为了解决这个问题,A不可能复制多个,或者也不可能给每个接收者做一个接口。第一工作量太大,第二不确定性太强,维护成本太高。此时需要一种方法,兼容任何一种接收者,还可以自适应接收个数。不过如果接受者确定只有一个,只是具体的接收对象可能变化,那就不用自适应个数。已知发送者,求接收者怎么描述。要想减少接口,原创 2020-12-16 09:32:37 · 87 阅读 · 0 评论