Tag Archives: c

reimplement tmpfile under windows

Because tmpfile create temporary file under “/tmp” in linux, but create file under “C:” “D:” in windows. I need it create file under “%TEMP%”, so just reimplement it.

Posted in Memo | Tagged , , | Comments Off on reimplement tmpfile under windows

opencv 找不到 cv.h

本来觉得安装 libopencv-dev 就够了,但是发现需要装另外的包

测试一下

Posted in Others | Tagged , , | Comments Off on opencv 找不到 cv.h

用lua替换ini做配置文件

自己只想要一个配置文件,本想用flex+bison,但是总觉得这么点功能,用这个方法得不偿失,而且还是ming的;使用windows下的ini接口总不舒服;而linux下的配置库移植过来也不是很好;想整合python过于麻烦,而且一直有库,我不想要库,只想要能解析文本的;tk脚本不会用;用正则表达式,对我来讲简单,但是怕其他人看不懂代码,貌似有些人就是很反感正则表达式(其实正则表达式也算一门编程语言了,而且维护的确是问题)…… 突然想到愤怒的小鸟使用lua开发的,于是尝试把lua整合到程序里,异常的简单,源码直接编译就行(连附加的预定义宏都没有!),用起来也挺方便的,lua_pushxxx和lua_toxxx就可以了,涉及到table的时候麻烦一点,只要能理解lua的堆栈模型就很顺手。反正整个过程很简单,用了一个下午把之前的ini全改成lua了。

Posted in Others | Tagged , , | Comments Off on 用lua替换ini做配置文件

《通用Jtag下载器》STM32的Flash下载方式思考

最近通过Jtag给STM32下载代码,还行,就是慢啊,那个慢…… 因为是通过给ARM核心指令,然后再单步,操作DBUS,然后写入新的代码,重复。 而写Flash的一个byte需要几次,这么一来,通过Jtag传输的效率极其低下(还得判断是否写完了)。 然后就发现jlink有个功能:ramcode。说起来就是先写一段falsh烧写程序到内部的ram,然后传送64bytes到接着的ram空间,然后让PC跳转到这个程序执行。

Posted in General Jtag | Tagged , , , , | Comments Off on 《通用Jtag下载器》STM32的Flash下载方式思考

FreeRTOS On STM32 – ARM7TDMI启动脚本(1)

最近开始阅读ARM7TDMI的启动脚本,目的是修改一些东西,先总结一下基础: 处理器特点 ARM7是带有流水线的(取指、译码、执行)!这点很重要,如果没有这个有些功能基本就没法实现,而一些功能实现起来会特麻烦,比如说内存模式的映射,这个以后会说的。ARM7的PC指针是指向取指的地址,而非执行的指令的地址。所以在执行的时候读取PC的值永远是+2个指令地址(ARM是每个指令4bytes,thumb是2bytes)。 这个有什么用?

Posted in FreeRTOS On STM32 | Tagged , , , , , , | Comments Off on FreeRTOS On STM32 – ARM7TDMI启动脚本(1)

Finished picoblaze-utils

完成PicoBlaze的工具链,目前用python的正则表达式来做,主要是想快速构建一个工具链,以后有时间再使用llvm(c++)或cparser(python)来重写前端。 当前的c语法和汇编很接近,并且没有push和pop操作,需要自己封装成宏。需要自己分配寄存器。但是PicoBlaze本来就不是很强大,定位是可编程状态机,所以暂时够用了。 代码上传到github了,以GPLv2发布。 https://github.com/buaabyl/picoblaze_utils

Posted in Others | Tagged , , , , , , , | Comments Off on Finished picoblaze-utils

自己动手写个“串口调试助手”

需要用到串口的调试,但是网上下载的几个居然带病毒、带广告,还是自己弄一个比较好。 代码放到 Google code 了 https://code.google.com/p/simple232/

Posted in Others | Tagged , , , | Comments Off on 自己动手写个“串口调试助手”

Using mediainfo sdk(使用mediainfo sdk)

最近看了ffmpeg,找到了mediainfo的api说明,比较容易使用。 先到官网把mediainfo_0.7.61_AllInclusive.7z下载过来,然后到mediainfo_0.7.61_AllInclusive.7z\MediaInfo\Project\MSVC2010打开vc的工程,直接编译就可以得到所有的库。把库MediaInfo.dll.lib、MediaInfo.lib、ZenLib.lib、zlib.lib拷贝出来,把头文件MediaInfo.h、MediaInfoDLL.h、MediaInfo_Const.h、ZenLib的Conf.h拷贝出来。就可以开发了。

Posted in Memo | Tagged , , | Comments Off on Using mediainfo sdk(使用mediainfo sdk)

学习使用gsl(科学计算),线性回归、解方程组

先编译gsl库,我这里用的是debian5+mingw32msvc交叉编译环境。先下载 gsl-1.15(http://mirror.bjtu.edu.cn/gnu/gsl/gsl-1.15.tar.gz)源代码。 然后进入debian,打开命令行

然后去/tmp/gsl得到编译出来的结果,然后拷贝到winidows下:) 使用pexports得到dll的导出函数

这样就得到了vc可用的*.lib文件。 以下开始测试

Posted in Others | Tagged , , , , | Comments Off on 学习使用gsl(科学计算),线性回归、解方程组

准备开发Picoblaze工具链(基于gcc和ctags)

之前找到PicoBlaze的工具链(基于sdcc的),曾高兴了一段时间,但是实际使用后发现生成的代码未优化。 c += 1; 会生成如下的代码 load r1, r0 add r1, 1 load r0, r1 这个太崩溃了,明显没有优化。这个也还能接受,但是有的时候生成的代码和期待的差太多(是Bug,不是不同的实现方式)。 所以打算重新启动自己的Picoblaze工具链计划。

Posted in Others | Tagged , , , | Comments Off on 准备开发Picoblaze工具链(基于gcc和ctags)