
嵌入式学习
memoryjs
这个作者很懒,什么都没留下…
展开
-
新唐Cortex—M0学习之外部中断与定时器中断
进入南航的学习已经两周了,从开始接触新唐的cortex—M0到现在,对它的整体架构有了一定的认识,但是还是不足,以此记下自己的一点心得很成果,与大家一起分享!这次的项目是红外模块,即实现捕捉红外信号,解码,发射红外信号,让开发板学习红外信号!天下大事,必作于细原创 2011-07-04 10:36:21 · 8552 阅读 · 12 评论 -
新唐cortex-m051中慎用printf()函数----一个printf()函数4kB大小
最近整合项目,遇到一个问题,我一开始没有注意,后来才慢慢发现,那就是我的程序已经烧不进去芯片中,经过翻查手册后才发现,新唐cortex-m051的Flash只有8KB,我的程序编译完之后bin文件竟然有16KB,而我的程序加上注释也只有1300多行,怎么会那么大呢? 笔者不知道是什么问题,于是就开始删减程序,把一些可以要可以不要的程序删除,(就是要了之后会更人性化的部分部分),等删除到原创 2011-12-02 11:25:33 · 4542 阅读 · 0 评论 -
新唐cortex-m0,RS485通讯(二),一个硬币的作用
最近笔者画的PCB板子回来了,但是调试485功能的时候,出现了问题 用过485的朋友们都知道,485芯片有两个引脚是控制收发方向的,如果把新唐m0串口配置成485功能,它内部就会有RTS0来控制收发方向:如图:上图是个实验电路,新唐M0中RTS0的方向正好和485的收发控制方向一致,即RTS0为低,485为接受功能 而笔者的PCB板子上用的是下图: 我们可以看到原创 2012-01-04 11:28:24 · 4228 阅读 · 1 评论 -
OCMJ8X15B金鹏液晶屏驱动程序+字库规律
笔者最近在弄金鹏的液晶屏,现在这个年代了,不跑点液晶屏程序实在是说不过去,如果能上3G模块,wifi模块那就更加好了。 这个液晶屏相对于其它液晶屏,它没有什么特别特殊的地方,前段时间,笔者用了一个不带字库的液晶屏,那叫一个痛苦,每次显示字符或者汉字还要算出它的字符码,而且它的逻辑比较难懂,不过最后写了一个函数,即在横坐标,纵坐标确定的后,写一个字符,液晶屏程序的封装就应该这样简单!原创 2012-05-12 15:56:45 · 7960 阅读 · 8 评论 -
c语言中结构体成员变量加“点”问题
笔者最近学习ARM9,各种问题不会,在努力探索中,不知道怎么把以前ARM7的知识和现在的联系起来,但是最近发现一个C语言的疑惑,属C语言基础问题,望大神们指点指点。#include typedef struct _led{ int ver; char name[10];}LED;int main(void){ int i; LED leds[]={ { .v原创 2012-07-13 10:13:43 · 2229 阅读 · 4 评论 -
关于构造IOCTL命令的学习心得
在编写ioctl代码之前,需要选择对应不同命令的编号。为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非串行设备输入流修改波特率,如果每一个ioctl命令都是唯一的,应用程序进行这种操作时就会得到一个EINVAL错误,而不是无意间成功地完成了意想不到的操作。 要按Linux内核的约定方法原创 2012-07-18 09:08:16 · 975 阅读 · 0 评论 -
从Cortex-M0编程方法到ARM9编程方法思想转变------定义命令
最近一直在看ARM9编程,买了一块开发板,卖开发板的商家和我说,“板子不跑Linux,那就不叫嵌入式编程”。我听了之后很是纳闷,那以前学的是什么?不都白学了。 已经研究嵌入式Linux编程有一段时间了,慢慢的有点明白了嵌入式Linux编程方法和思想,但是不能窥其全貌,就在今天下午,慢慢的理解了一个知识点,写下来和大家分享。 在嵌入式Linux编程中,有个非常重要的函数叫做:io原创 2012-08-01 17:12:06 · 2327 阅读 · 0 评论 -
从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。 笔者因此写上自己的学习心得,希望能给和我一样转变做嵌入式Linux这块的朋友一点帮助,早点入门,原创 2012-08-08 17:44:57 · 4770 阅读 · 0 评论 -
Makefile自动生成工具-----autotools的使用(详细)
相信每个学习Linux的人都知道Makefile,这是一个很有用的东西,但是编写它是比较复杂,今天介绍一个它的自动生成工具,autotools的使用。很多GNULinux的的软件都是用它生成Makefile的,包括我们非常熟悉的Linux内核源代码。 1、准备: 需要工具 autoscan aclocal autoheader automake转载 2012-08-13 16:36:07 · 17461 阅读 · 0 评论 -
调试PCB板中,结果短路了,这是一个非常纠结的问题,写下解决经验
PCB板子画好之后,下面的就是验证上面的电路,如果顺利的话,非常快,因为以前的电路都做过实验,然而,总会遇到这样那样的问题,让我们停滞不前,写下我自己的出问题原因,告诫自己,同时也希望和我一样产生问题的同僚们得到一点帮助。 1.产品级的电路和实验级的电路:虽然说很多电路我们都做过实验室,但是真正用到产品上和实验,电路是有点大同小异的,笔者曾经用过的485电路是实验级别的,一直能够调试成原创 2012-01-16 21:34:08 · 4731 阅读 · 0 评论 -
新唐cortex-m0一个 printf为什么那么大?(新唐人员的解答)
笔者去了新唐Mini51的发布会,这次的板子比去年的M051,功能和附件上多了很多,而不只是一个最小系统,可以在板子焊接新的器件,也自带了一些LED灯和可变电路,还有I2C模块。 于是我问了一个printf为什么会这么大? printf是keil(笔者用的keil开发的)内部的封装,由于可变参等问题,内部的封装非常复杂,新唐的人员也不知道为什么会那么大,但是有个方法可以减少它的大小,方原创 2011-12-26 11:16:58 · 4098 阅读 · 0 评论 -
PCB板绘制之我见,已经画了很长时间了
最近看到我的同门的状态,“画板子中”,“重画板子中”... 程序其实很久就写的差不多了,由于新唐cortex-m051的Flash只有8kb,我编译好的二进制文件已经超出了这个范围,已经调试不了程序了,所以就画PCB板了,用新买来的新唐cortex-m052(Flash有16KB,才5块2,性价比高)于是我和我的同门就开始画板子了,我画的是cortex-m0节点,他画的是cortex-m3的原创 2011-12-12 11:38:30 · 10209 阅读 · 4 评论 -
新唐Cortex—M0学习红外发射
红外发射搞了我整整5天,最后一天是加班加点才搞了出来!我用的是HS0038B这个接收端,而"38"代表要载波成38KHZ的意思,电路图如下:我原来以为只要往P3.6端口写1,那红外就会发出1,太天真了,红外发射一定要载波,调制,这样抗干扰的能力才强!但是我当时原创 2011-07-04 10:39:48 · 2465 阅读 · 2 评论 -
新唐Cortex—M0学习之PC编程与嵌入式编程的差别
这是一个很重要的概念!1.printf()的时间在PC编程中,你可以用printf()这个函数来看变量值,而忽略它所占用的时间,(相对于3GHZ的CPU来说可以忽略),但是在嵌入式编程中,用printf()在超级终端中看变量值的时候,它的开销你要计算进去,尤其原创 2011-07-04 10:37:52 · 2743 阅读 · 0 评论 -
新唐cortex-m051学习之读写Flash
今天做的是读写Flash,因为最后从红外接收学习到的编码需要存入Flash中,所以读写Flash是一个很重要的模块!然而新唐的例程中没有对数据Flash的读写,只有对LDROM 和 APROM的读写,其实差不了太多,为了不给以后的同仁多走弯路,这里特地写下笔者原创 2011-07-05 17:26:19 · 7768 阅读 · 4 评论 -
I2C和AT24C256的应用
纠结的第二个问题,也纠结了一个多礼拜,原因是在I2C写入从器件地址的时候没有响应,即返回的I2C总线状态为0x20! AT24C256,这一个256K位的EEPROM,说的通俗一点就是一个32KB的硬盘(可以这么理解),由于上面文章说的,新唐的M051只有4KB,而我的一个原创 2011-08-04 10:57:12 · 9182 阅读 · 4 评论 -
自学习式,智能万能空调遥控-----纠结了我一个多礼拜的问题
好久没有发文章了,不是最近没有学习,而是因为最近遇到了一个非常头疼的问题,那就是自学习是万能空调遥控器的制作,原来做的遥控编码是电视机的,而空调的编码的恶心之处在于: 每个厂商的编码长度,编码格式都不一样,即没有一个统一的标准,NEC的标准是有9ms高电平和4.5ms低电平原创 2011-08-04 10:44:02 · 5990 阅读 · 5 评论 -
新唐cortex-m0之RS485通讯
又有好久没有更新博客了,不要认为我又去偷懒了,因为笔者开学了,但是我的新唐的学习并没有结束。这么长时间没有写博客因为我在学习的过程中又遇到了纠结的问题,这个问题从9月1日到现在快三个星期了,就是RS485通讯,特此写下自己的错误,避免看到文章的人再走弯路。 如果大家用的新唐原创 2011-09-21 08:42:46 · 7157 阅读 · 21 评论 -
新唐cortex-m0一个霸气的功能,48个引脚都可以产生中断
笔者的项目虽然已经接近尾声,但是不断的被要求加入一些新的功能,从而体验到新唐Cortex-M0一个非常霸气的功能,那就是48个引脚都可以产生中断! 外部中断一般用于按键,按键一多,外部中断就不够用了,如果用查询的方式的话,一定会非常影响效率的,所以这个功能无疑是给了我们一个非常便捷的方式来实现多个按键。 在我做的分体式空调之遥控器部分里,在现场调试安装这个东西的时候,是不可能让上位机原创 2011-11-03 16:37:24 · 3894 阅读 · 0 评论 -
自己总结的电子元器件的作用---光耦,电感,磁珠等等
做嵌入式的,对于电路不说多么精通,但是至少要看懂电路,知道作用,经过笔者半年来做的项目,总结一些电子元件的作用,希望对大家有帮助 1.电阻的作用,此处省去n个字,你懂的 2.电容:一般是滤波作用,电容越小滤波的频率就越高,一般用103,,104的电容,笔者做的项目中右按键的,用104的电容,在新唐芯片中,不需要人工消除抖动,效果比较好(103代表,10*10^3 pf) 3.三极原创 2011-12-09 11:04:17 · 5387 阅读 · 4 评论 -
tftp服务器环境搭建-----笔者亲测,可以成功
嵌入式Linux中,有三个比较常用的服务,一个是tftp服务,一个是nfs服务,还有一个是ssh服务。 tftp服务主要是在上位机编译好程序后,用tftp命令下载到开发板上运行,因此用的频率非常高。 相信很多朋友也一样,网上找的资料一大推,而且手法不一样,实验下来也很多不成功,我和大多数朋友一样,昨天找了一个下午,一直到现在才弄好,Linux方面的资料是很多,但是很杂,很乱:转载 2012-08-03 09:02:50 · 10269 阅读 · 4 评论