<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Jammy Xu的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jammyxu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jammyxu]]></copyright><item><title><![CDATA[一个快速打包Firmware的脚本]]></title><link>https://blog.youkuaiyun.com/jammyxu/article/details/1677184</link><guid>https://blog.youkuaiyun.com/jammyxu/article/details/1677184</guid><author>jammyxu</author><pubDate>Tue, 03 Jul 2007 19:35:00 +0800</pubDate><description><![CDATA[ 一般SDK可以直接打包Firmware，但是我们常要制作不同功能的FW用来Debug和发行，通常的做法是将不同功能的配置文件另存，需要时载入，这样做每次要重新make, 而且config文件被意外修改可能影响功能的稳定。我写了一个sigmadesigns的FW打包小脚本，每次生成新的二进制文件后，轻松copy，再MakeROM一下，只要几秒种就可打包好FW。cat MakeROM#!/b]]></description><category></category></item><item><title><![CDATA[开始步入EM86XX的程序开发]]></title><link>https://blog.youkuaiyun.com/jammyxu/article/details/524608</link><guid>https://blog.youkuaiyun.com/jammyxu/article/details/524608</guid><author>jammyxu</author><pubDate>Mon, 07 Nov 2005 17:07:00 +0800</pubDate><description><![CDATA[这几天Blog很不正常，页面打不开，我还以为会资料丢失了呢！今天终于看到了。前一段时间接到了新的任务，修改新一代MP4 Player的介面与功能，使用的是EM8620芯片，相关资料很少，SigmaDesgin的网站上的技术资料没有可供下载的，连datasheet都没搜到。不过也没关系，台北有相关的开发资料。EM86XX使用的linux嵌入式系统，我是刚接触linux的，先要好好学习一下系统的使用，]]></description><category></category></item><item><title><![CDATA[2005-10-14 程序移植到89C420的工作基本完成]]></title><link>https://blog.youkuaiyun.com/jammyxu/article/details/504083</link><guid>https://blog.youkuaiyun.com/jammyxu/article/details/504083</guid><author>jammyxu</author><pubDate>Fri, 14 Oct 2005 21:40:00 +0800</pubDate><description><![CDATA[经过几天的努力，程序移植到89C420的工作基本完成了，进入测试阶段。在89C420新功能的开发过程中也遇到了不少问题，走了一些弯路，不过都还算顺利的解决了。首先是配置串口的问题，以前都是使用单串口的MCU，没有双串口的相关经验。开始想过是两只串口使用同一个Timer来控制波特率，但Datasheet上没有介绍这么做，提到了一点，Serial port 1只能使用Timer1来控制，而 Seria]]></description><category></category></item><item><title><![CDATA[2005-10-07 发现89c420的Loader测试板有问题]]></title><link>https://blog.youkuaiyun.com/jammyxu/article/details/496764</link><guid>https://blog.youkuaiyun.com/jammyxu/article/details/496764</guid><author>jammyxu</author><pubDate>Fri, 07 Oct 2005 22:24:00 +0800</pubDate><description><![CDATA[    昨天拿到了89c420的Loader测试板与芯片样品，台北已经焊好了板子，我接上RS232的串口线，执行Loader420，功能正常，可以烧写，但发现了一个问题，就是测试程序是P1输出指示灯全亮，而所有LED不停的闪烁，检查不出原因所在。    今天继续，分析原因是程序在不停的重启，所以P1口的状态为交替的输出高电平与低电平。一般有四种原因造成不停的重启：一、系统开机上电复位；二、软件故障]]></description><category></category></item><item><title><![CDATA[2005-09-29]]></title><link>https://blog.youkuaiyun.com/jammyxu/article/details/492402</link><guid>https://blog.youkuaiyun.com/jammyxu/article/details/492402</guid><author>jammyxu</author><pubDate>Thu, 29 Sep 2005 21:43:00 +0800</pubDate><description><![CDATA[    今天研究了一下台北设计的第二代T3051线路图，第二代暂命名为T5052。仔细对比第一代，改进点是MCU处理能力与存储容量有了很大提高，扩展了串行口，MCU自带两个双工口，另外用了一只串行扩展芯片扩展了两个串行口，共有4个串行口，好像多了一点，暂时还没那么多需求。其它芯片跟一代是一样的，不过片选电路作了修改，主要是因为加入了串行扩展电路的片选功能。如果不要串行扩展的话，片选电路就可以重用以]]></description><category></category></item><item><title><![CDATA[在Keil C51函数中加入ASM代码]]></title><link>https://blog.youkuaiyun.com/jammyxu/article/details/362432</link><guid>https://blog.youkuaiyun.com/jammyxu/article/details/362432</guid><author>jammyxu</author><pubDate>Mon, 25 Apr 2005 17:34:00 +0800</pubDate><description><![CDATA[使用C51进行单片机编程是事半功倍的事，但是很多算法上以及编译上的问题，往往使用ASM代码更为方便又高效。但不知什么原因，Keil在实现C51夹杂ASM代码比SDCC麻烦很多，方法如下：预处理指令 #pragma asm 开始ASM代码预处理指令 #pragma endasm 结束ASM代码如果就这样直接编译的话，会出现以下错误：error C272: asm/endasm requires ]]></description><category></category></item><item><title><![CDATA[单片机中unsigned char转字符串的方法]]></title><link>https://blog.youkuaiyun.com/jammyxu/article/details/359434</link><guid>https://blog.youkuaiyun.com/jammyxu/article/details/359434</guid><author>jammyxu</author><pubDate>Sat, 23 Apr 2005 10:24:00 +0800</pubDate><description><![CDATA[在单片机中，常用到数字与字符的方法，在C中都是使用itoa函数，C51也有这个函数，但是，8051的RAM是很有限的，所以尽量避免使用int型，常用的是unsigned char。当需要转换成字符串时用itoa的话，还是有点浪费。还是自力更生，自己写了一个，代码如下： typedef unsigned char BYTE;BYTE * ByteToStr(BYTE n){ BYTE str[4];]]></description><category></category></item><item><title><![CDATA[VC++等待线程结束的方法]]></title><link>https://blog.youkuaiyun.com/jammyxu/article/details/357648</link><guid>https://blog.youkuaiyun.com/jammyxu/article/details/357648</guid><author>jammyxu</author><pubDate>Thu, 21 Apr 2005 22:38:00 +0800</pubDate><description><![CDATA[今天在调试我的串口扫描程序的停止问题，原来是用两个线程分别扫描设备与数据库的，扫描时跟据bScanBreak变量的值来确定是否结束，停止按钮设定bScanBreak的值。bScanBreak = true;bool bScanState = true;while( bScanState){        Sleep(500);        bScanState = (bScanThread1 |]]></description><category></category></item><item><title><![CDATA[在打印时如何度量字符串？]]></title><link>https://blog.youkuaiyun.com/jammyxu/article/details/261530</link><guid>https://blog.youkuaiyun.com/jammyxu/article/details/261530</guid><author>jammyxu</author><pubDate>Thu, 20 Jan 2005 19:43:00 +0800</pubDate><description><![CDATA[Q:When programming printing code, how to measure string?A:    You cant use Graphics.MeasureString Function, and must use typographic StringFormat object.Reason is: when printing string size is resolu]]></description><category></category></item><item><title><![CDATA[谁的IP跟你冲突]]></title><link>https://blog.youkuaiyun.com/jammyxu/article/details/259971</link><guid>https://blog.youkuaiyun.com/jammyxu/article/details/259971</guid><author>jammyxu</author><pubDate>Wed, 19 Jan 2005 20:32:00 +0800</pubDate><description><![CDATA[    企业网络管理中，对IP的管理很重要。在组网一开始就要把IP分配好，要对IP进行区间划分（不是子掩码分段，仅仅是为了方便管理）：哪一区间给服务器，哪一区间给网络设备，哪一区间给电脑用户等等。服务器与网络设备肯定是固定的IP，管理起来才方便。其他的用户用动态分配就要了。    我们常用到一个技巧是对特定区间的IP提供特别的网络服务，如使用高速Internet专线。这开始一般都是隐蔽的，但时间一]]></description><category></category></item></channel></rss>