摘要:在实际的工程中,会采用很多同类的2440核心板,但是每个开发板的mac地址一样会导致在组网的时候就会有冲突,具体的解决办法是: 切换到/etc/init.d vi ifconfig-eth0 注释掉: # DEV_ADDR=`cat /sys/class/net/eth0/address` # if [ "$DEV_ADDR" = "00:00:00:00:00:00" ]; then ifco...
阅读全文
随笔分类 - ARM
摘要:S3C2440的中断寄存器: 1.中断分两大类:内部中断和外部中断。 2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体参考datesheet数据手册。 寄存器:EXTINT0-EXTINT2:三个寄存器设定EINT0-EINT23的触发方式。 EINTFLT0...
阅读全文
摘要:前导码和帧开始符 10/100M 网卡(MII PHY)一次传输4位(一个半字)。因此前导符会成为7组0101+0101,而帧开始符成为0101+1101。8位数据会先发送低4位,再发送高4位。1000M网卡(GMII)一次传输8位,而10Gbit/s(en:XGMII) PHY芯片一次传输32位。 注意当以octet描述时,先传输7个01010101然后传输11010101。由于8位数据的低4...
阅读全文
摘要:在DM9000接受数据的时候一般采取的是中断的方式,这样子比较高效但是我们上位机发生数据给我们的dm9000网卡芯片的时候,接受中断是怎么产生的呢: 数据包接收功能是 DM9000 芯片实现网络功能的基础,在接收数据时采用中断方式,即当有数据到来并在 DM9000 内部 CRC 校验通过后会产生一个接收中断,中断发生时可以将 DM9000 所接收到的数据包读出并交由上层协议进行处理。接收到的数据在...
阅读全文
摘要:在编译文件定义全局变量的时候,编译出现错误,经查是在另一个.c文件里面把我这个声明的变量又重新给赋值了一次,这个是不对的,如果你想定义全局变量的话,或者向调用其他.c文件里面的定义的全局变量的话,那么你在引用的.c文件里面加上extern char num;类似的语句就可以,不能重新给这个变量在定义的时候赋值。 /------------------------------------------...
阅读全文
摘要:一般情况下,IAR编译ARM程序出现 “duplicate definitions for IAR” 这种错误一般情况下是,你需要将你的变量声明放在你的xx.c文件里面,不应该放在你的xx.h的头文件,这样就解决你的问题!
阅读全文
摘要:DM9000(A)是一个全集成、功能强大、性价比高的快速以太网MAC控制器,它带有一个通用处理器接口、EEPROM接口、10/100 PHY和16KB的SRAM(13KB作为接收FIFO,3KB作为发送FIFO)。它采用单电源供电,可兼容3.3V、5V的IO接口电平。 DM9000(A)同样支持MII(Media Independent Interface 介质无关)接口,连接到HPNA(Hom...
阅读全文
摘要:要分析arm2440的启动流程,先得了解arm2440的硬件配置,在arm2440这款cpu里面没有什么存储的芯片,除了以个4kb的SRAM(静态存储器可以运行程序,但是最重要的一点就是掉电就失掉所有的数据)注意这4kb是cpu自己的不是外设的的。好了现在讲述下启动的流程。(一下是从nand flash 启动) 1、首先机器上电,从外部的nand flash 的0x0000-0x01000也就是前...
阅读全文
摘要:U-Boot移植好后就要考虑如何引导内核了(以下介绍的是bootm方式,开发板是友善之臂的mini2440)。所用的U-Boot是移植的U-Boot-2009.08 ,内核是mini2440光盘中的kernel-2.6.29。U-Boot引导内核分三步:内核的编译、启动参数的设置、下载固化。 (一)内核的编译 通常,u-boot为kernel提供一些kernel无法知道的信息,比如ramdisk...
阅读全文
摘要:1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。 2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3. 文件系统。包括根文件系统和建立于 Flash 内存设...
阅读全文
摘要:一》基础 我们知道rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是 根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正 的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统。 为了改变这个种子的值,C提供了 srand()函数,它的原形是void sra...
阅读全文
摘要:在C程序main函数中,接收用户输入任意个整数,然后在main中调用使用ARM汇编编写的函数(在该函数中完成对这些整数的排序功能),然后再在C程序main函数中输出这些排好顺序的整数。 main.c #include <stdio.h> int main() { int i=0; int num=0; int *array=NULL; while(num <= 0) //输入数组中元素的个数 {...
阅读全文
摘要:在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。 在 ARM 的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令以及其他伪...
阅读全文
摘要:最近刚重装系统,自己的辛苦收集的网站全没了,悲剧啊,网上找了找发现可以用google浏览器资料的同步功能来实现这个想法,也就是说无论你在哪里只要你输入你的帐号在你的浏览器里面,也就是登录您的gmail帐号,你就可以看到你的以前的网站。操作手法:1.在你的浏览器的扳手那里弹出的对话框里面选择“选项”这个栏目,扳手应该会找到的吧,嘿嘿2.在你的个人资料选项里面有一选择同步,再在弹出的对话框输入你的帐号和密码就可以了哈哈截图:
阅读全文
摘要:参考网站:http://www.waveshare.net/ 现在要用avrstudio5开发项目,现在总结ATMEL系列的芯片如下:
阅读全文
摘要:参考网站:http://www.waveshare.net/ 现在要用avrstudio5开发项目,现在总结ATMEL系列的芯片如下:
阅读全文
摘要:参考网站:http://www.waveshare.net/ 现在要用avrstudio5开发项目,现在总结ATMEL系列的芯片如下:
阅读全文