C2000 DSP中全局变量清零问题

一般情况下,未明确赋初值的全局变量会被自动清零,而且ANSI C中似乎也有这一规定,之前写程序都默认这是没有例外的规定了。然而,前段时间在调试28030程序的时候发现,未赋初值的全局变量并没有被清零,而是一个随机值,这说明在TI的DSP中,全局变量并不会自动清零。TI论坛中的这个讨论也证实了这一结论,由此可见,TI的编译器的确有些很特别的地方……下面来具体谈谈全局变量清零这个问题。

C语言标准库总结

标准库(Standard Library)是C语言重要的一部分,不过学习C语言这么长时间,都没有细致的了解过标准库到底中包含哪些内容,这几天打算来仔细看看这部分内容。

C语言标准库有各种不同的实现,比如最著名的glibc, 用于嵌入式Linux的uClibc,还有ARM公司的自己的C语言标准库及精简版的MicroLib等。不同标准库的实现并不相同,而且提供的函数也不完全相同,不过有一个它们都支持的最小子集,这也就是最典型的C语言标准库。

这个C语言标准库中一共包含15个头文件,粗略的按常用程度排序列举如下:

Hexo博客修改Archive页面显示文章数量

之前配置的Swiftype站内搜索功能很不稳定,经常因为网络问题无法返回搜索结果,所以要找写过的某篇文章就不太方便。为解决这个问题,有一个方法是在Archive页面上不分页,然后就可以用浏览器自带的搜索功能来搜索标题了。

默认情况下,Hexo无法对主页、Archive页面、标签页面每页显示文章数量进行单独设置,所以需要安装hexo-generator-archive插件来实现这个功能。

Population Count算法

所谓Population Count算法,即是指计算一个二进制数中1的个数的算法。具体来说,就是任意给定一个无符号整数N,求N的二进制表示中1的个数,比如N = 5(0101)时,返回2;N = 15(1111)时,返回4。

这个问题是一个经典的面试题目,在实际中也有应用。关于这个问题,以下两篇博客文章中有较详细的论述:

详解二进制数中1的个数
算法-求二进制数中1的个数

在此,仅对其中一些较为常规和较为巧妙的方法做一总结,并比较一下他们的执行效率。