Friday, July 24, 2009

开始学习Python

一直听说Python,Ruby多好多好,可是自己怎么也静不下心来学习。
今天忽然心血来潮,玩了一天Python和wxPython,忽然感觉Python真的是简单明了,用来作小工具又快速,有简单。竟然有点后悔之前为什么不早一些学习Python。

报名参加了今年12月6号的10千米马拉松

报名参加了即将在12月6号举办的马拉松,报名的项目是最短的10Km。这对我这种好久好久都没有锻炼的人来讲,已经是一个很大很大的挑战了。接下来几个月要好好锻炼身体了。
有了目标,好好努力!

Thursday, March 19, 2009

在只有header的情况下编译Linux Module

按照 http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html 给的例子编译hello内核,怎么都给出错误信息: make: Nothing to be done for `default'.
网上找解决办法,说要下子source,于是下子了source,还是不可以。最后发现是一个很stupid的问题,因为make前面是空格不是tab键,很是郁闷一下。 |||-_-
解决办法是在这个网页看到的: http://www.captain.at/programming/kernel-2.6/


Wednesday, March 18, 2009

发现一款不错的sqlite管理工具

网上浏览的时候发现有人推荐一款基于Firefox插件的sqlite管理工具,sqlite manager, 试用了一下,很是不错. 下载地址 https://addons.mozilla.org/en-US/firefox/addon/5817

Tuesday, March 17, 2009

evince 中文乱码解决

安装了evince看PDF,因为听说比xpdf好,但是安装了不能看中文。继续Google,得到答案如下,实验证明OK:
  1. sudo apt-get install xpdf-chinese-simplified
  2. 下载popper-data,http://poppler.freedesktop.org/poppler-data-0.2.1.tar.gz
  3. 解压 tar xzvf poppler-data-0.2.1.tar.gz
  4. 安装 sudo make install datadir=/usr/share
然后就搞掂了,hoho...

Friday, March 13, 2009

给andLinux配置网络

安装了andLinux,因为要安装新软件,要联网,所以花了一些时间做了配置,具体步骤如下:
  1. Windows, "Network Connections", enable network sharing on your main network card (the one for internet access), by doing so, IP address for "TAP-Colinux" will changed to 192.168.0.1
  2. Modify "TAP-Colinux", set network mask to 255.255.0.0 (the 3rd byte is 0, not 255), also add your DNS server and WINS server IP address
  3. Run "regedt32", do the following changes, andLinux key is not there, so you need to create by yourself.
         [HKEY_LOCAL_MACHINE\SOFTWARE\andLinux\Launcher]
         "IP"="192.168.11.150"
         "Port"=dword:00001f91
  4. In andLinux console. edit /etc/network/interfaces, change
         iface eth1 inet static
         address 192.168.11.150
         netmask 255.255.0.0
         gateway 192.168.0.1
  5. edit /etc/resolv.conf to add your DNS server
  6. edit /etc/hosts, /etc/profile to change windows host IP address to 192.168.0.1
  7. /etc/init.d/networking restart


Thursday, March 12, 2009

在Ubuntu上面安装DBDesigner4

在windows上面用了DBDesigner4了以后,感觉很好用,于是今晚费了一些时间给我的Ubuntu也安装了一份,Ubuntu上面安装比较麻烦,根据不同的电脑,具体步骤可能不一样,这里把我做的步骤列下来供以后参考(我的机子上面已经安装了mysql server和mysql client)

第一部当然是让DBDesigner能够跑起来:
  1. Go to http://www.fabforce.net/downloads.php to download file DBDesigner4.0.5.4.tar.gz, unpack it.
  2. run ./stardb, then view log file at ~/.DBDesigner4/DBD4.log to check what are the library missing (libXft.so.1, libstdc++-libc6.2-2.so.3, libqt.so.2)
  3. libXft.so.1 : ln -s /usr/lib/libXft.so.2.1.2 /usr/lib/libXft.so.1
  4. libsdc++-libc6.2-2.so.3 : Go to http://packages.ubuntu.com/zh-cn/gutsy/libstdc++2.10-glibc2.2 to download the library  file and install
  5. libqt.so.2: Go to http://prdownloads.sourceforge.net/kylixlibs/kylixlibs3-borqt-3.0-2.tar.gz?download to download the package, then unpack, then

    • sudo cp kylixlibs3-borqt/libborqt-6.9.0-qt2.3.so /usr/lib/libborqt-6.9-qt2.3.so

    • cd DBDesigner4/Linuxlib

    • sudo rm libqt.so.2

    • ln -s /usr/lib/usr/lib/kylix3/libborqt-6.9.0-qt2.3.so libqt.so.2


第二步就是让DBDesigner能够顺利连接MySQL

  1. Go to http://www.devart.com/dbx/download.html to download dbExpress MySQL driver for linux, unpack,  sudo cp libsqlmda.so.4.40 /usr/lib/
  2. Under folder DBDesigner4/Linuxlib, do

    • sudo rm libmysqlclient.soln -s /usr/lib/libmysqlclient.so.15 libmysqlclient.so

    • rm libsqlmy.so

    • ln -s /usr/lib/libsqlmda.so.4.40 libsqlmy.so
  3. Run ./startdb,
    ”Database”->”Connect to Database”->"New Database Connection"->"Advance"
     Set GetDriverFunc: getSQLDriverMySQL
接下来就是修改stardb.desktop,把里面的路径改一下,然后把startdb.desktop放到桌面就可以了

使用DBDesigner4进行mysql5建模

这两天需要构建一个MySQL的数据库,想要留下比较正规的文档,就考虑用MySQL建模软件,这样数据库结构比较清晰.

下载了MySQL Workbench最新版本,建模搞定后导出的SQL竟然运行错误,有两个table怎么也创建不了.于是在google上找到了DBDesigner.又用它把数据库重建了一次,然后直接和MySQL server synchronize,很顺利的创建了整个数据库. 以后考虑就是用这个了.

下面是网上找到的DBDesigner的安装方法:

URL: http://www.phpd.cn/show-51-1.html

=============================

DBDesigner4.0.5.6_Setup.exe下载地址:

http://www.fabforce.net/downloadfile.php

官方网站下载的DBDesinger 4中是不能连接MySQL 5的,那是驱动的原因,可以到http://crlab.com/dbx/download.html 下载最新版的驱动,安装好后,复制安装目录中的dbexpmda.dll到DBDesigner的目录当中,还需要下载最新版本的libmysql.dll,同样复制到DBDesigner的目录当中.

驱动准备好了,打开DBDesigner,新建一个MySQL连接,在 Advanced修改GetDriverFunc为getSQLDriverMySQL,这是因为新版驱动对函数名称做了修改的缘故,还要修改 LibraryName为dbexpmda.dll,现在应该能连上MySQL 5了.



Friday, October 24, 2008

使用JTAG的一些心得 (zz)

本人把这一段使用JTAG的一些心得写出来,希望能够对初学者有所帮助。

    通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug;一般支持JTAG的CPU内都包含了这两个模块。

    一 个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如FLASH,RAM,SOC(比 如4510B,44Box,AT91M系列)内置模块的寄存器,象UART,Timers,GPIO等等的寄存器。

    上面说的只是JTAG接口所具备的能力,要使用这些功能,还需要软件的配合,具体实现的功能则由具体的软件决定。
    例如下载程序到RAM功能。了解SOC的都知道,要使用外接的RAM,需要参照SOC DataSheet的寄存器说明,设置RAM的基地址,总线宽度,访问速度等等。有的SOC则还需要Remap,才能正常工作。运行Firmware时, 这些设置由Firmware的初始化程序完成。但如果使用JTAG接口,相关的寄存器可能还处在上电值,甚至时错误值,RAM不能正常工作,所以下载必然 要失败。要正常使用,先要想办法设置RAM。在ADW中,可以在Console窗口通过Let 命令设置,在AXD中可以在Console窗口通过Set命令设置。
    下面是一个设置AT91M40800的命令序列,关闭中断,设置CS0-CS3, 并进行Remap,适用于AXD(ADS带的Debug)
setmem 0xfffff124,0xFFFFFFFF,32 ---关闭所有中断
setmem 0xffe00000,0x0100253d,32 ---设置CS0
setmem 0xffe00004,0x02002021,32 ---设置CS1
setmem 0xffe00008,0x0300253d,32 ---设置CS2
setmem 0xffe0000C,0x0400253d,32 ---设置CS3
setmem 0xffe00020,1,32 ---Remap
如果要在ADW(SDT带的DEBUG)中使用,则要改为:
let 0xfffff124=0xFFFFFFFF ---关闭所有中断
let 0xffe00000=0x0100253d ---设置CS0
let 0xffe00004=0x02002021 ---设置CS1
let 0xffe00008=0x0300253d ---设置CS2
let 0xffe0000C=0x0400253d ---设置CS3
let 0xffe00020=1 ---Remap
为了方便使用,可以将上述命令保存为一个文件config.ini, 在Console窗口输入 ob config.ini 即可执行。
    使用其他debug,大体类似,只是命令和命令的格式不同。

    设置RAM时,设置的寄存器以及寄存器的值必须和要运行程序的设置一致。一般编译生成的目标文件是ELF格式,或类似的格式,包含有目标码运行地址,运行 地址在Link时候确定。Debug下载程序时根据ELF文件中的地址信息下载程序到指定的地址。如果在把RAM的基地址设置为0x10000000, 而在编译的时候指定Firmware的开始地址在0x02000000, 下载的时候,目标码将被下载到0x02000000,显然下载会失败。

    通过JTAG下载程序前应关闭所有中断,这一点和Firmware初始化时关闭中断的原因相同。在使用JTAG接口的时候,各中断的使能未知,尤其是 FLASH里有可执行码的情况,可能会有一些中断被使能。使用JTAG下载完代码,要执行时,有可能因为未完成初始化就产生了中断,导致程序异常。所以, 需要先关闭中断,一般通过设置SOC的中断控制寄存器完成。

    使用JTAG写Flash。在理论上,通过JTAG可以访问CPU总线上的所有设备,所以应该可以写FLASH,但是FLASH写入方式和RAM大不相 同,需要特殊的命令,而且不同的FLASH擦除,编程命令不同,而且块的大小,数量也不同,很难提供这一项功能。所以一般Debug不提供写Flash功 能,或者仅支持少量几种Flash。

    目前就我知道的,针对ARM,只有FlashPGM这个软件提供写FLASH功能,但使用也非常麻烦。AXD,ADW都不提供写FLASH功能。我写 Flash的方法时是,自己写一个简单的程序,专门用于写目标板的FLASH,利用JTAG接口,下载到目标板,再把要烧写的目标码装成BIN格式,也下 到目标板(地址和烧FLASH的程序的地址不同),然后运行已经下载的烧FLASH的程序。使用这种方式,比起FlashPGM的写Flash,速度似乎 要快一些。
 
    关于简单JTAG电缆。
    目前有各种各样简单JTAG电缆,其实只是一个电平转换电路,同时还起到保护作用。JTAG的逻辑则由运行在PC上的软件实现,所以在理论上,任何一个简 单JTAG电缆,都可以支持各种应用软件,如Debug等。我就曾使用同一个JTAG电缆写Xilinx CPLD,AXD/ADW调试程序。关键再于软件的支持,大多数软件都不提供设定功能,因而只能支持某种JTAG电缆。

    关于简单JTAG电缆的速度。
    JTAG是串行接口,使用打印口的简单JTAG电缆,利用的是打印口的输出带锁存的特点,使用软件通过I/O产生JTAG时序。由JTAG标准决定,通过 JTAG写/读一个字节要一系列的操作,根据我的分析,使用简单JTAG电缆,利用打印口,通过JTAG输出一个字节到目标板,平均需要43个打印口 I/O, 在我机器上(P4 1.7G),每秒大约可进行660K次 I/O 操作,所以下载速度大约在660K/43, 约等于15K Byte/S. 对于其他机器,I/O速度大致相同,一般在600K ~ 800K.

    关于如何提高JTAG下载速度。
很明显,使用简单JTAG电缆无法提高速度。要提高速度,大致有两种办法,
1。使用嵌入式系统提供JTAG接口,嵌入式系统和微机之间通过USB/Ethernet相连,这要求使用MCU。
2。使用CPLD/FPGA提供JTAG接口,CPLD/FPGA和微机之间使用EPP接口(一般微机打印口都支持EPP模式),EPP接口完成微机和CPLD/FPGA之间的数据传输,CPLD/FPGA完成JTAG时序。

    这两种方法本人都实现过。第一个方法可以达到比较高的速度,实测超过了200KByte/S(注意:是Byte,不是Bit);但是相对来说,硬件复杂, 制造相对复杂。第二种相对来说,下载速度要慢一些,最快时达到96KByte/S,但电路简单,制造方便,而且速度可以满足需要。第二种方案还有一个缺 点,由于进行I/O操作时,CPU不会被释放,因此在下载程序时,微机CPU显得很繁忙。
总的来说,本人认为,对于个人爱好者来说,第二种方法更可取。 

From: http://blog.csdn.net/dog0138/archive/2007/12/04/1917245.aspx

Sunday, August 3, 2008

How To Make ISO image from CD (ZZ)

Use following command to create ISO image of CD
Note: /dev/hdc is my cdrom device

1. dd if=/dev/hdc of=/home/nikesh/example.iso bs=2048 conv=notrunc

— OR –

2. cat /dev/hdc > /home/nikesh/example.iso

Both commands do exactly the same, but the first one might be easier to remember.

From: http://linuxpoison.blogspot.com/2007/10/how-to-make-iso-image-from-cd.html