<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/skydreamt</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; skydreamt]]></copyright><item><title><![CDATA[framebuffer程序的自动重启]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/7582807</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/7582807</guid><author>skydreamt</author><pubDate>Thu, 28 Jan 2016 20:50:21 +0800</pubDate><description><![CDATA[一般的应用程序升级完毕后都必须重启自己，那么当linux程序打开framebuffer时再重启就会出现问题。
因为当打开framebuffer时首先要和一个终端tty关联，比如我的本本上首次关联的是tty8.这是通过(ioctl(ConsoleFD, VT_OPENQRY, &vtnumber))查询下一个可用的tty决定的。
那么本次正在使用tty8，再重启自己不就是要查询下一个tty，即t]]></description><category></category></item><item><title><![CDATA[eclipse的代码风格]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/50603083</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/50603083</guid><author>skydreamt</author><pubDate>Thu, 28 Jan 2016 20:49:00 +0800</pubDate><description><![CDATA[eclipse里的代码风格自动设置]]></description><category></category></item><item><title><![CDATA[51单片机SEGMENT TOO LARGE]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/49533849</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/49533849</guid><author>skydreamt</author><pubDate>Sat, 31 Oct 2015 16:10:21 +0800</pubDate><description><![CDATA[﻿﻿
AT89C52编译错误error C249: 'DATA': SEGMENT TOO LARGE
当时还不知道怎么回事，后来才发现51单片机的ram比较小，只有128byte，所以要省着使用
当你定义数组不用更改时，就用uchar code XX[10]；
根据你数据的用处，你可以有以下几种定义选择，编译器会将数据放在合适的存储器中。

data：直接寻址的片内RAM区低128B]]></description><category></category></item><item><title><![CDATA[miniGui1.3支持ttf字体]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/46315093</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/46315093</guid><author>skydreamt</author><pubDate>Mon, 01 Jun 2015 19:18:23 +0800</pubDate><description><![CDATA[前几篇文章已经分别讲述了miniGui和freetype的移植，本篇才是真正用到他们的时候，目的就是为了在miniGui中使用TTF字体。
在编译miniGUI时打开ttf开关(--enable-ttfsupport),但是配置显示信息中ttf还是关闭的，找了相关文章说是miniGUI没有找到freetype库，可是我把相关库和头文件已经拷贝到交叉编译环境中，几经努力未果，我只能手动在“conf]]></description><category></category></item><item><title><![CDATA[freetype移植二]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/46314909</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/46314909</guid><author>skydreamt</author><pubDate>Mon, 01 Jun 2015 18:54:29 +0800</pubDate><description><![CDATA[鄙人之前的一篇文章写到如何正确的编译通过freetype1-3-1，但是发现交叉编译出来的竟然是X86结构。于是又查阅了相关资料。
根据网上大卡们的一些实例似乎感觉freetype1-3b版本似乎没法编译成动态库。有些人编译成了静态库。而我自己则采用了网上另一种方法，直接取出和linux相关的代码，简单编译成动态库。操作过程中没有想到这种方法及其简单，真是运气太好了。
具体步骤：
1. 新建]]></description><category></category></item><item><title><![CDATA[freetype的移植]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/46311655</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/46311655</guid><author>skydreamt</author><pubDate>Mon, 01 Jun 2015 15:39:41 +0800</pubDate><description><![CDATA[1.下载freetype-1.3.1。
2. 如下错误说明采用的共享夹(我是通过网络挂载的windows目录)，于是将freetype的文件夹单独拷贝到linux里面。
ln /share/minigui1.3.3/freetype-1.3.1/lib/arch/unix/../../ttmemory.c memory.c 
ln: failed to create hard link `m]]></description><category></category></item><item><title><![CDATA[miniGui移植二]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/40891985</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/40891985</guid><author>skydreamt</author><pubDate>Fri, 07 Nov 2014 14:35:05 +0800</pubDate><description><![CDATA[miniGui相关的库拷贝的开发板上，然后运行自己编写的helloworld]]></description><category></category></item><item><title><![CDATA[miniGui移植]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/40823799</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/40823799</guid><author>skydreamt</author><pubDate>Wed, 05 Nov 2014 15:33:01 +0800</pubDate><description><![CDATA[项目需要，要对miniGui开源版本1]]></description><category></category></item><item><title><![CDATA[Ubuntu设置中文编码]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/8781819</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/8781819</guid><author>skydreamt</author><pubDate>Wed, 10 Apr 2013 11:15:16 +0800</pubDate><description><![CDATA[Ubuntu 默认采用UTF8编码，可以方便global。但对中文支持，还不细致，即便默认采用中文安装，
也并不会自动添加GB＊等支持，致使在Ubuntu下访问部分Win文本文件时，出现乱码。
I. 配置系统环境
执行 sudo vi /var/lib/locales/supported.d/zh
加入以下配置参数
zh_CN.GB18030 GB18030 (最新汉字编码字符集，向下兼]]></description><category></category></item><item><title><![CDATA[51单片机模拟I2C总线]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/8702990</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/8702990</guid><author>skydreamt</author><pubDate>Thu, 21 Mar 2013 20:16:02 +0800</pubDate><description><![CDATA[#include
    #include
    #include
    #define DELAY_TIME 60 /*经实验，不要小于50！否则可能造成时序混乱*/
    #define TRUE 1
    #define FALSE 0
    sbit SCL=P1^7;/*假设由P1.7和P1.6控制*/
    sbit SDA=P1^6;
/*********]]></description><category></category></item><item><title><![CDATA[DM9000C U-BOOT驱动分析（三）]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/8666450</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/8666450</guid><author>skydreamt</author><pubDate>Wed, 13 Mar 2013 08:30:52 +0800</pubDate><description><![CDATA[DM9000C发送数据部分
static int dm9000_send(struct eth_device *netdev, volatile void *packet,
    int length)
{
int tmo;
struct board_info *db = &dm9000_info;


DM9000_DMP_PACKET(__func__ , packet, l]]></description><category></category></item><item><title><![CDATA[DM9000C U-BOOT驱动分析（二）]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/8666447</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/8666447</guid><author>skydreamt</author><pubDate>Wed, 13 Mar 2013 08:29:21 +0800</pubDate><description><![CDATA[初始化DM9000C流程
static int dm9000_init(struct eth_device *dev, bd_t *bd)
{
int i, oft, lnk;
u8 io_mode;
struct board_info *db = &dm9000_info;


DM9000_DBG("%s\n", __func__);


一部分初始化流程和reset流程]]></description><category></category></item><item><title><![CDATA[DM9000C 驱动分析(一）]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/8665163</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/8665163</guid><author>skydreamt</author><pubDate>Tue, 12 Mar 2013 19:05:24 +0800</pubDate><description><![CDATA[读写相关API流程及逻辑
DM9000_IO   DM9000C  bus与 CPU总线连接，CPU分配的地址段，PIN CMD为低

DM9000_DATA  DM9000C  bus与 CPU总线连接，CPU分配的地址段，PIN CMD为高



读寄存器值
static u8 DM9000_ior(int reg)
{
先向DM9000C写入reg
DM9000_out]]></description><category></category></item><item><title><![CDATA[linux程序重启的探索]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/8435041</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/8435041</guid><author>skydreamt</author><pubDate>Tue, 25 Dec 2012 20:49:22 +0800</pubDate><description><![CDATA[曾经写的界面程序交给了新来的同事，突然发现每次升级之后程序都会变的比前一次慢，多升几次就很卡了，一直不明白原因。新来的只是个初学者，有了问题只能问为什么怎么弄，没有办法只能加班加点重新分析一下。
升级后程序要自动重启，代码如下：
1）将新的程序文件替换原来的程序文件；
2）启动新的程序；
3）关闭旧的程序。
代码如下：
update();//拷贝新程序
system("./new p]]></description><category></category></item><item><title><![CDATA[dsp2812的flash在线升级一]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/7646442</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/7646442</guid><author>skydreamt</author><pubDate>Fri, 08 Jun 2012 20:43:00 +0800</pubDate><description><![CDATA[当我们把工业控制电路板发出去给客户使用后，紧接着面临的问题是如何对板级芯片升级。我们不可能要求客户会使用仿真器，让售后服务人员去每一个厂家升级也不切实际，况且客户分布在全国各地，甚至世界的各个角落。那我们就必须要做到像升级应用程序一样，插上U盘或者联网后点下按钮就能完事。目前公司的新系统正面临着如此的问题。一向使用仿真器的我开始了新的挑战。这方面资料网上比较少，即使找到成功的案例他们也只说成功了，]]></description><category></category></item><item><title><![CDATA[framebuffer和tty的探讨]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/7582872</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/7582872</guid><author>skydreamt</author><pubDate>Sat, 19 May 2012 14:19:22 +0800</pubDate><description><![CDATA[一般的应用程序升级完毕后都必须重启自己，那么当linux程序打开framebuffer时再重启就会出现问题。
因为当打开framebuffer时首先要和一个终端tty关联，比如我的本本上首次关联的是tty8.这是通过(ioctl(ConsoleFD, VT_OPENQRY, &vtnumber))查询下一个可用的tty决定的。
那么本次正在使用tty8，再重启自己不就是要查询下一个tty，即t]]></description><category></category></item><item><title><![CDATA[linux编码]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/7568489</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/7568489</guid><author>skydreamt</author><pubDate>Tue, 15 May 2012 14:09:08 +0800</pubDate><description><![CDATA[1.修改文件内容的编码
    conv -f utf-8 -t gb2312 aaa.txt > bbb.txt
2.修改文件名的编码
   convmv -f GBK -t UTF-8 -notest  *.mp3
3.还可以安装傻瓜命令行工具enca。(具体在网上查找enca)]]></description><category></category></item><item><title><![CDATA[F2812的外部扩展接口]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/7554073</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/7554073</guid><author>skydreamt</author><pubDate>Thu, 10 May 2012 16:11:25 +0800</pubDate><description><![CDATA[F2812外部扩展接口可以映射到5个独立的区域，每个空间都可以独立设置等待，选择，建立，保持时间。zone0和zone1共用一个外部片选信号，但是采用不同的内部地址，zone0的寻址范围是0x2000——0x3FFF，zone1的寻址范围是0x4000-0x5FFF.当dsp寻址0x2000-0x5FFF时，外部片选信号XZCS0ANDCS1自动变低电平，选通外部存储器，再由地址线操作数据，可以通]]></description><category></category></item><item><title><![CDATA[步进马达测试]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/7493078</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/7493078</guid><author>skydreamt</author><pubDate>Tue, 24 Apr 2012 13:17:47 +0800</pubDate><description><![CDATA[TMS320F2818有3个定时器. CpuTimer0. CpuTimer1. CpuTimer2
定时器的应用：
CpuTimer0可以在 用户程序中使用， CpuTimer1. CpuTimer2预留给实时系统使用.
周期值 Time=Freq*Period/SYSCLKOUT
ConfigCpuTimer(&CpuTimer0, 150, 1000000) 
Timer->CPU]]></description><category></category></item><item><title><![CDATA[GNU C 与 ANSI C的区别]]></title><link>https://blog.youkuaiyun.com/skydreamt/article/details/7434388</link><guid>https://blog.youkuaiyun.com/skydreamt/article/details/7434388</guid><author>skydreamt</author><pubDate>Sat, 07 Apr 2012 10:28:07 +0800</pubDate><description><![CDATA[1.零长度数组
GNU C允许使用零长度数组，定义变长度对象时比较方便
struct var_data {
    int len;
    char data[0];
};
var_data的大小仅为一个int型，data是常量地址，data[index]是访问其后的内存空间。
struct var_data *s = malloc(sizeof(var_data) + len);]]></description><category></category></item></channel></rss>