嵌入式系统的汇编与C语言之争
对于每个学习嵌入式系统的人而言,都会在内心存在着使用汇编和C语言的争执,特别是对于初学者更有这方面的顾虑,我应该是学汇编还是C语言呢?
对于高手而言,使用汇编还是C都是为了同一个目的-----实现系统应有的功能,所以对于他们来说,汇编和C都是异曲同工!说起来似乎很简单,但做起来就不是如此简单了。对于刚使用语言编程的人来说,可能这个说法对他们而言,有点高高在上的感觉。
汇编语言涉及到硬件的每一个细节,所以如果要想对一个嵌入式处理器有一个全面的理解,就必须要将每一条汇编语言弄懂,会用每一条汇编语言,知道这条汇编语言执行之后对处理器的影响,处理器是如何执行的,对各种标志位的影响如何。汇编在某些场合也是一个不二选择,特别在很多定时要求严格的场合也是如此,某些编译器或许也不允许直接用C语言开关中断,这时候也得使用汇编。这也是很多的编译器为什么使用“在线汇编”做法的原因。
PCMCIA 网卡 芯片 RTL8139
装上redhat9.0后再装该网卡驱动。
1.使用#ifconfig 查看当前可以使用的网卡,只显示lo,即仅环路网络可以使用;
2.#ifconfig eth0 up 提示错误,可知eth0还不能使用
3.#lsmod 并未发现有8139相关的驱动已加载
4.进入/lib/modules/2.4.20-8/kernel/drivers/net 查看是否有8139相关的驱动模块,找到8139cp.o与8139too.o,说明驱动已有,只是未加载
5.modprobe 8139too 或8139cp 可尝试几次即可确定使用哪一个
6.再使用lsmod 可以看到8139相关驱动已加载,
7.使用#ifconfig 查看eth0是否可用,可重复步骤5尝试两个加载文件。
8.加载完成后,可以使用#netconfig 配置网卡的IP,DNS等
9.可打开网页验证是否正确加载
到目前为止,系统应该已经可以使用网卡,但是还不能使其在系统启动的时候自动加载,可以关机再开机用#lsmod查看并未加载。可重复上述步骤后进行一下步骤:
ATMEGA16L的串口问题======================在使用ATMEGA16L的过程中遇到了一个比较奇怪的问题,让ATMEGA16L分别工作在3.3v和5.0v,发送数据0x00-0xff,在串口调试终端接收的数据出现了不同,在3.3v时工作正常,而在5.5v时则出错。不知道各位在使用过程中是否也遇到了类似的情况?它的USART的工作跟电压是否有关系?但是在datasheet上却没有看到相关的内容。
---------------------------------------------------------------------下面是试验记录:
晶振:内部4M波特率:2400,根据数据手册设置初值:U2X=1,UBBR=207调试终端:sscom32发送数据:0-255电平转换芯片:max232 电容:10uf
在sscom32接收窗口显示数据当工作电压为3.3v 接收数据正常为0x00--0xff;
ps2技术参考资料:
http://space.ednchina.com/Upload/Blog/2008/5/24/bd0e0f71-e580-4b18-ae79-e9b5d370b914.pdf
进入VIM时候,1.默认为输入命令模式,在此模式下可以输入以下几个字符进入普通模式
a 进入 INSERT 模式i 进入 INSERT 模式v 进入 VISUAL 模式
2. INSERT 模式下可以输入字符等在左下角会显示当前的模式 INSERT
假设已经输入一些字符,按ESC键,可进入INSERT模式下的命令输入有如下的命令i 进入插入模式后,光标在当前字符前面;a 进入插入模式后,光标在当前字符后面;h j k l 分别是光标左移、下移、上移、右移(按方向键也可用来移动光标)x 删除一个字符dd 删除一行J 删除本行的回车符,把下一行并入本行末尾r 字符 替换光标所在字符为新字符^ $ 分别是光标移到行首和行末,当然也可以用HOME END 键数字G 移动光标到第若干行,如果直接按 G 则移动到最后一行
3.VISUAL 模式下不可以输入字符,但可以进行复制粘贴
AVR中的ATMEGA8515引脚跟AT89S52的引脚兼容,可以在51的实验板上稍微做一些改动就可以用在AVR的学习上,下图是最小系统。
AVR系统:RST_J1的1、2短接;根据熔丝位设置是否短接XT_J1、XT_J2,来使用外部晶振;CUP_J3断开;
51系统:RST_J1的2、3短接;XT_J1、XT_J2短接;CPU_J3短接
电路图:
有的人把人家的网站都弄垮,叫黑客。有的人技术很好,也叫黑客。黑客的意思太多了。如果你认为“黑客”也是好人,那我就是“黑客”。 —— 刘蝶雨
以前使用的串口调试工具都不能显示中文,很不方便,最近找到一个能显示中文的,用起来方便多了,一下是下载连接:
这个是以前使用的:
NOKIA 3300 LCD控制芯片-S1D15G10
NOKIA 3310,5110,6110 LCD控制芯片-PCD8544
显示器件是许多电子设备都带有的,简单一点的如数码管,如果要显示字符就得用到点阵LED或者液晶屏了,其中液晶屏则能显示更多的字符或汉字,而且体积也要小,显示字符数目也更多,占用微控制器的引脚也要少一些,下面简单比较一下几种LCD: