博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

摘要: 关于uIP的移植以及部分特性解析和勘误 关于嵌入式网络的领域,uIP是一个值得去学习的轻量级协议栈,在我的理解里,uIP具有如下特点. 1.封装性好 封装性好体现在uIP它能做到的网络协议栈的底层所做的工作都给完成了,当然包括最基本的数据链路层和网络层,当然,物理层是不确定的,需要我们自己写驱动程序接口然后进行接合.整个完整的uIP只留给用户两个宏定义(另外一个为UIP_UDP_APPCALL) 从官方文档可以得知用户应该在编译程序的时候把这个宏定义给加上去,另外任何用户事件的发生都是通过该函数来执行的(新数据到来,连接轮询,tcp链接和断开, 超时等事件).我们进行的任何活动都只... 阅读全文

posted @ 2012-01-19 23:18 Code_HXH 阅读(10044) 评论(10) 推荐(2) 编辑

2011年7月27日

摘要: 基于STM32的uCGUI移植和优化 首先在开始这个说明之前,要简要说明下具体的环境: 编译工具:MDK4.20 开发板:安富莱v2版开发板 调试器:JLink v8盗版移植篇 相信大家有移植经验的都知道,移植确实是一件非常墨迹的事情,怎么说呢,代码都是别人的,风格也是别人的,文件结构,定义之类都是别人的,看别人的东西是种进步,但是,也是一个痛苦的过程,因为有时候资料确实很少,而且有时候还是E文的,专业名词一大堆,我们根本没有办法想象工作量是多么的巨大. 不过事情都是这样,你不懂他的时候他就像是巨山,但是一旦你理解他的时候,你才会感觉到原来他是那么的简单(从我的经验上来看,至少应该是这样的). 阅读全文

posted @ 2011-07-27 16:09 Code_HXH 阅读(12101) 评论(11) 推荐(2) 编辑

2011年5月25日

摘要: 这里我们主要说的是波特率和定时器2的应用. 一般来说,我们串口通讯用到的都是异步串行通讯,工作的方式为方式1. 方式1即为发送一个完整的信号为10个bit.起始信号为低电平,终止信号为高电平,串口通讯的两根线在平常时候都是处于高电平状态,当一旦有数据要进行转发的时候,电平拉低,通讯芯片马上对信号进行监听.这样子就能正常收发数据了. 一般来说,我们都是采用定时器1的模式2(自动重装模式)来作为波特率发生器的,同理,定时器1的中断也就被我们遗弃了,因为为了波特率产生的时候不会受到干扰(如果定时器1有中断函数,那么处理中断函数会关闭定时器1中断,这时候波特率发生器就处于关闭状态了).根据STC给我. 阅读全文

posted @ 2011-05-25 20:55 Code_HXH 阅读(5625) 评论(4) 推荐(2) 编辑

2011年4月29日

摘要: 单片机学习心得:按键延迟:MAIN: ;初始化 MOV A,#00HSTART: ACALL SCAN_KEY JC START;c为1是没有按键按下,跳到开头 ACALL DEL10MS ACALL SCAN_KEY JC START;c为1是没有按键按下,跳到开头 ;键盘抖动去除完毕,现在开始进行正式判断 MOV C,P2.0 JC START CPL A MOV P1,A ;等到按键松开的时候才返回startUNTIL: MOV C,P2.0 ACALL DEL10MS JNC UNTIL AJMP START可以看出来,因为我们少了一个until语句,会使得他一直重复循环,p2.0信号 阅读全文

posted @ 2011-04-29 11:09 Code_HXH 阅读(216) 评论(0) 推荐(0) 编辑

2011年4月16日

摘要: 关于打地鼠游戏的一些说明开发工具:MASM6.11 和 Virtual PC 2007开发所在系统:windows 9X一些难点和思想: 首先,由于这些所有的东西都涉及到了中断操作,所以我们的环境不能搭建在windows7下面,因为这些后面来的系统已经把安全性能提高到了很高的境界,除非你去破解他,否则是没有办法进行实值模式操作的,所以,无奈的,我们只能在98下面进行所有的操作,又因为现在的机子很多都已经不能支撑这么古老的而又让人怀念的系统了,包括驱动,反正我的两台电脑都装不了,一台是根本装不了,另外一台是没有驱动的尴尬,导致键盘不能使用,所以,我们只能选择在虚拟机环境下进行操作了,虽然虚拟机环 阅读全文

posted @ 2011-04-16 23:41 Code_HXH 阅读(4397) 评论(6) 推荐(6) 编辑

2011年4月6日

摘要: 使用的编译器:MASM8.0和Visual Studio 2008我们主要通过C++和汇编各自构建一个功能完全相同的链表结构,其中这个链表的功能有:1. 声明结构2. 构建链表3. 对链表进行冒泡排序4. 对链表进行复制操作5. 计算从1-5所花费的毫秒数这里就是我们链表所要做的事情,同样的,我们链表采用的是指针链表,单向,非双向,考虑到汇编实现起来会有很多障碍,所以我们尽量让代码简洁些,这样子能够更好的从C++翻译到Assembly里面.好的,那我么现在就开始吧.首先,我们要先构造一个数组,这个数组我决定用汇编编译器来生成,反正代码之前都已经写好过了:The Code:.codemain P 阅读全文

posted @ 2011-04-06 17:54 Code_HXH 阅读(1501) 评论(3) 推荐(4) 编辑

2011年4月4日

摘要: hDelay MACRO thetime:REQ mov eax,thetime call delayENDMhDelay 3000 hGotoXY MACRO X:REQ, Y,REQ push edx mov dh,X mov dl,Y call Gotoxy pop edxENDMhGotoXY 10,20hShowMaxXY MACRO.datastr1 byte "the MAXScreen is : ",0highs byte ?lengths byte ?dots byte ",",0.code push eax push edx mov 阅读全文

posted @ 2011-04-04 17:54 Code_HXH 阅读(384) 评论(0) 推荐(0) 编辑

摘要: 低级语言就是麻烦,你有百分之五十的时间用在语法上面,关于如何进行类型匹配,关于如何让参数传递不会出错,关于各种各样的小细节,关于栈会不会指向错误,所有的东西都是关注到小细节上面,所以我也渐渐明白为啥这个东西一般人是没有办法作出一个独立完整的项目了,想想高级语言,他更多的是放在你想用什么去实现的基础上来做的,你要专注的就是把你的思路变成可行的方案,其它的不用去在意太多,而这破东西则会一直压抑着你的思路.太关注小细节反而没有办法做成大事情,或许就是这样吧. 阅读全文

posted @ 2011-04-04 09:12 Code_HXH 阅读(280) 评论(0) 推荐(0) 编辑

2011年4月3日

摘要: TITLE COORD and the systemTime (.asm); This program; Last update:2011.4.3INCLUDE Irvine32.inc.data systime SYSTEMTIME <> xypos COORD <10,5> consolehandle DWORD ? colonStr byte ":",0.codemain PROC;//获取win32控制台的标准输出手柄 invoke GetStdHandle,STD_OUTPUT_HANDLE mov consolehandle,eax ;/ 阅读全文

posted @ 2011-04-03 19:06 Code_HXH 阅读(381) 评论(0) 推荐(1) 编辑

摘要: TITLE MASM Template (main.asm); Description:; ; Revision date:2010/3/26INCLUDE Irvine32.inc.data ;//TODD to imply the string on here. str1 byte "(1) x AND y",0 str2 byte "(2) x OR y",0 str3 byte "(3) NOT x",0 str4 byte "(4) x XOR y",0 str5 byte "(5) exit 阅读全文

posted @ 2011-04-03 18:35 Code_HXH 阅读(621) 评论(0) 推荐(0) 编辑