
个人技术总结
嵌入式的半瓶水
爱好嵌入式物联网,追逐大师的脚步学习。
展开
-
解决mdk生成bin烧录lpc1343无法运行问题
<br />最近拿到了lpc1343的最小系统板,arm cortex-M3,好东西啊。<br />拿起手册赶紧看起,看完系统时钟跟GPIO部分就忍不住要跑程序了。呵呵<br />具体的配置就不说了。写好程序就开始编译。<br />通过LPC1343 芯片本身自带的USB BootLoader 来更新我自己的程序,这个功能太爽了。<br />首先mdk生成的是hex文件,需要转化为bin文件,用keil自带的工具可以实现<br />使用FROMELF命令行生成BIN的文件,<br />使用方法如下:<br原创 2010-11-28 20:38:00 · 4628 阅读 · 3 评论 -
让hg版本库自动化测试
前言在嵌入式开发中,测试是很重要的一个环节,但是开发人员往往会忽视它。所以把自动化测试与代码紧密结合在一起是这篇文章的主题。我们开发人员平时维护代码的时候使用最多的是版本库工具,很多时候代码修改完了,本地一编译,通过就提交了。但是却忽视了一个问题:程序编译通过就一定能正常运行了?显然是不对的。前期准备这里需要准备以下工具:1,linux -- 这里我使用了ubuntu2,原创 2014-10-20 12:57:45 · 1895 阅读 · 0 评论 -
C语言求质数的算法
qianya上次被出了一题质数的C语言求解题目,当时用了最粗暴的算法,回来仔细参考资料,其实答案有很多种:1,小学生版本:判断 x 是否为质数,就从 2 一直算到 x-1。static rt_uint32_t array1[ARRAY_LEN];void func1(void){ for (rt_uint32_t i = 1; i { a原创 2014-06-13 12:38:44 · 19705 阅读 · 4 评论 -
cooja的原理
最近一直在关注cooja的实现,看了很多源代码,大概理解了一点点,总结一下:1,contiki的代码里面:platform目录里面有cooja这个平台,在这个平台里面有软件实现contiki仿真的底层实现:SYS首先我们看到sys,这部分代码是软件实现了线程,与contiki里的线程是不同的,这个线程是linux平台的NET这里是net的抽象接口,与通常contiki平原创 2014-03-04 21:08:10 · 4206 阅读 · 1 评论 -
contiki的5种定时器理解
一,概述Contiki的定时器包含一个硬件时钟模型,五个定时器模型,五种timer简述如下:timer --be used to check if a time period has passed[1]stimer --be used to check if a time period has passed[1]ctimer --Active timer, calls a fun原创 2014-04-17 17:46:04 · 3350 阅读 · 0 评论 -
ProtoThreads如何工作的
最近把手头的SD卡更新NK到NAND项目完成,总算抽空上网瞎逛游了。正好群里面有人推荐了一个系统,说是对小资源的单片机非常适合。这里我就推荐2篇网文:http://www.daxia.com/bibis/moredata30_1234764_43130.shtmlhttp://blog.youkuaiyun.com/t_larry/archive/2008/10/18/3097191.aspx这2翻译 2010-11-28 20:30:00 · 10702 阅读 · 2 评论 -
contiki的rime协议分析-abc
前言 一直在关注contiki,特别是对里面的网络部分特别感兴趣。这里要提及2个人:1,Jelline大神,帖子比较详细介绍了contiki的资料,入门是够了。2,原同事,他的帖子对contiki的一些app应用以及移植也介绍比较详细,对于网络的应用和IOT(物联网)讲的比较多。大家都可以去他们的帖子参考学习下。我这里就会记录一些我对rime学习的一些心得。rim原创 2014-04-24 22:45:40 · 3699 阅读 · 0 评论 -
cortex M0与msp430的比较
现在Cortex M0已经越来越流行了,而且ARM原创 2014-04-16 16:28:23 · 5201 阅读 · 0 评论 -
uip的yeelink实现
前言物联网的IPV6应用是一个趋势,contiki是集成了6lowpan的一个集成开发工具。uip是集成在内部的,支持IPV6以及IPV4,这里先通过IPV4与平台连接建立一个数据通道。后续会跟进IPV6以及6lowpan的应用。而且uip不需要OS支持,以事件驱动的方式编程,占用的RAM以及ROM都符合嵌入式的需求。之前我们需要了解一些背景知识:1,http的相关知识2,ye原创 2014-03-28 09:49:12 · 6027 阅读 · 21 评论 -
RTThread的finsh在IAR 430上移植的可行性
RTThread的finsh是个好东西,如果想移植到IAR 430平台,是需要一些移植工作的,因为finsh需要重新定义一个section,然后把代码放入指定section;那么我们来看看在IAR430平台下如何实现这些:一,链接文件的修改:以我用的msp430f1611为例,找到lnk430f1611.xcl拷贝一份,找到// --------------------------原创 2013-12-30 17:35:12 · 3474 阅读 · 1 评论 -
自动删除-IAR项目工程生成垃圾文件的工具
做嵌入式开发,IAR工程编译会产生很多垃圾文件,在版本库提交的时候手动去删除会很麻烦。制作一个python脚本:代码如下# -*- coding: utf-8 -*-# in order to delte the files that with extendsnames# 任务:需要对指定格式的文件进行批量删除,如''exe",".swf"等等。# # 步骤:#原创 2013-03-12 17:55:47 · 4505 阅读 · 0 评论 -
内存的slab算法
•Slab分配模式把对象分组放进缓冲区(尽管英文中使用了Cache这个词,但实际上指的是内存中的区域,而不是指硬件高速缓存)。因为缓冲区的组织和管理与硬件高速缓存的命中率密切相关,因此,Slab缓冲区并非由各个对象直接构成,而是由一连串的“大块(Slab)”构成,而每个大块中则包含了若干个同种类型的对象,这些对象或已被分配,或空闲。上面是slab算法的定义。由此我们可以看出,sla原创 2012-05-14 16:27:29 · 2243 阅读 · 0 评论 -
观察者模式-在wsnos中的应用以及拓展
为什么要使用设计模式虽然设计模式并不是万能钥匙(如果世上真有此物的话),但设计模式可确保通过熟知和公认的解决方案解决常见问题。模式存在的实施基础在于:大多数问题其他人或开发团队已经遇到并解决了。因此,模式提供了一种在开发人员和组织之间共享可使用的解决方案的机制。无论这些模式的出处是什么,这些模式都利用了大家所积累的知识和经验。 这可确保更快地开发正确的代码,并降低在设计或实现中出现错误的可原创 2012-03-20 09:11:02 · 1175 阅读 · 1 评论 -
static_cast 与reinterpret_cast
static_cast用法:static_cast ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成子类表示)时,由转载 2012-03-08 17:07:28 · 716 阅读 · 0 评论 -
RT-Thread的优先级算法
RT-Thread的优先级有3种级别,最大分别是8,32,256.我们逐一来分析,在此之前看一下下面的变量:const rt_uint8_t rt_lowest_bitmap[] ={ /* 00 */ 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 10 */ 4, 0, 1, 0, 2, 0, 1, 0, 3,原创 2011-06-10 15:45:00 · 3434 阅读 · 0 评论 -
WinCE驱动开发问题精华集锦(一)
<br />在mediaplayer全屏播放的时候,我可以用键盘上的某一个键调节声音大小,现在我想在屏幕上显示调节的结果就跟我们看电视一样能出来一些标记。当声音变大在屏幕上就增多,当声音变小的时候就减少 <br />得到播放窗口的DC,然后在上面显示一个不同颜色的矩形或者其它形状。 <br />在ce自制平台中如何添加自己的驱动?cec文件和reg,bib文件有何区别?看混了,不知道如何才能让驱动注册到平台中。另外,reg和bib是我在编写驱动必须要自己写的么 <br />CE 的驱动分为本机驱动和流驱动,转载 2011-01-19 14:43:00 · 854 阅读 · 0 评论 -
gitlab的自动备份经历
前提gitlab手动备份gitlab自动备份crontabfind和rm双备份机制代码前提之前休假的时候,公司里搭建的gitlab服务器莫名宕机,为此还被召唤回公司。到公司以后鼓捣了一下,发现是硬盘损坏,这下没辙了只能放弃。 休假完以后到公司重新更换硬盘、重装系统、安装gitlab,让大家重新申请账号、提交版本库。整个过程耗时耗力,回头想想当时要是要是做了双硬盘备份,也就不会有这么麻烦原创 2015-11-25 17:33:03 · 23508 阅读 · 1 评论