U-Boot中IP地址设置方法

U-Boot中网络IP、网关等的设置保存在环境变量中,一共有下面这几个:

名称 含义 示例
ethaddr MAC地址 08:08:11:18:12:27
ipaddr 本地IP地址 192.168.1.7
serverip 提供下载服务的计算机IP地址 192.168.1.3
getewayip 网关IP地址 192.168.1.1
netmask 子网掩码 255.255.255.0

使用setenv命令进行设置,使用printenv命令查看目前环境变量,最后如果需要永久保存当前环境变量设置的话使用saveenv命令保存。

C28x IQmath库使用

IQmath库是TI C28x系列DSP中使用的一个高度优化且高精度的数学库,用于使用定点算法实现浮点运算。在DSP编程中,出于性能的考虑,应尽量使用IQmath库代替ANSI C中的math库。IQmath库同时支持C和C++,此处仅讨论使用C语言的情况。

IQmath的官方使用手册为SPRC990 C28x IQmath Library,在ControlSUITE中可以找到这份文档的最新版本。

Python Socket Error: Address already in use的解决办法

之前用Python写了个简单的TCP通信程序,放在腾讯云上24小时运行。不过有个问题,有时候使用kill -9 pid命令结束掉python进程后,再次运行程序就会提示Address already in use这个错误,然而等一段时间再去运行就可以了。

造成这个问题的原因在于此时TCP连接还没有完全关闭,而Socket默认不支持地址复用。深入的原因打算等之后仔细学习TCP/IP协议的时候再来研究,目前只是要找一个解决方案。

C2000 DSP中全局变量清零问题

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

C语言标准库总结

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

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

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