Step to UEFI (160)UEFI 下的 GIF 解码

现在最常见的 GIF 就是各种动图了,因为它足够小,无需支付版权费用和不用安装额外的插件,使得它成为分享动图的首选。
这次介绍来自https://github.com/lecram/gifdec 的 GIF 解码库,可以用来解码静态和动态GIF格式。
需要注意的是,这个库有下面2个局限(GIF[......]

阅读全文

Step to UEFI (159)UEFI 下的排序

大多数情况下,2层循环的冒泡排序对于一般用户已经足够,但是如果对于速度有要求,那就需要考虑效率更高的排序算法了。最近偶然看到 MdeModulePkg\Include\Library\SortLib.h 提供的排序功能,研究之后编写如下的例子。
这个库的核心是PerformQuickSort()[......]

阅读全文

Step to UEFI (158)UEFI 下的 PNG 解码

前面介绍过 PCX的解码,这次研究一下 PNG 格式的解码,有了前面的经验,这次实现起来简单多了。

首先,找一个C语言的PNG 解码库,经过比较选择了来自【参考1】的 upng。然后根据说明编写一个简单的示例:

#define DR_PCX_IMPLEMENTATION
#includ[......]

阅读全文

检查VS2015程序是否有内存泄漏

很多时候,我们编写Long Run 的代码需要特别注意是否有内存泄漏的问题,比如: alloc 之后一直没有 free, 若干小时之后内存就会消耗殆尽或者程序自己崩溃了。

为此 Vs2015 提供了下面这个工具,可以在 Debug 的时候监视你程序的内存消耗情况:

[......]

阅读全文

Windows 下读取 UT395B 激光测距仪返回值

最近有一个需求,需要检测一个物体的运动速度,经过研究我决定使用激光距离传感器来完成这个要求。在模块选择的问题上,我再次遇到了“面粉比面包贵” 的问题-----激光测距模块价格比成品要高。最终选择的是带有USB接口的优利德 UT395B。

最远可以达到150米,我选择的是可以达到70米的[......]

阅读全文