资源描述
1直流电机控制系统设计Linux下编程实现 ARM系统的pwm输出,进而控制直流电 动机。能够实现直流电动机得调速转动,也能够使其恒速转 动。2采纳UP-NETARM2410-S 嵌入式实验平台.PC 机Pentium 500以上,硬盘10G以上,Pc 机操作系统 REDHAT LINUX 9.0+MINICOM+ARM LINUX开发环境3pwm发生器用到的存放器有1, 。TCFG0准时器配置存放器 02. TCFG1准时器配置存放器 13TCON准时器控制存放器4TCNTB0&TCMPB0 准时器计数缓冲区存放器和比较缓冲 区存放器5TCNT00准时器察看存放器4硬件设计(框图,连线图)5软件设计。程序 函数的流程图:-ff1 4 B.I I irdcm_main.c直流电动机调速控制程序 #include #include #include #include #define DCM_IOCTRL_SETPWM(0x10)#define DCM_TCNTB0(16384)static int dcm_fd = -1;char *DCM DEV=/dev/dcm/0raw;t)void Delay(intint i;for(;t0;t-)for(i=0;i400;i+);& & & & & & & & & & & & & & & & & & & & & & & & & & /*&/*/ int main(int argc, char *argv)int i = 0;int status = 1;int setpwm = 0;int factor = DCM_TCNTB0/1024;if(dcm_fd=open(DCM_DEV ,O_WRONLY)0) printf(Error opening %s devicen”, DCM_DEV); return 1;for (;) for (i=-512; i=512; i+) if(status = 1)setpwm = i;elsesetpwm = -i;ioctl(dcm_fd,DCM_IOCTRL_SETPWM,(setpwm* factor);Delay(500);printf(setpwm = %d n”, setpwm);status = -status;close(dcm_fd);return 0;6简单地说,BootLoader就是在操作系统内核运行以前运行的一段小程序。经过这段小程序,我们能够初始化硬件设 施、成立内存空间映照图,进而将系统的软硬件环境带到一 个适合状态,以便为最后调用操作系统内批准备好正确的环境。在嵌入式系统中,往常并无像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完好由BootLoader来达成。比如在一个鉴于 ARM7TDMI core的嵌入式系统中,系统在上 电或复位时往常都从地点0x00000000处开始履行,而在这个地点处安排的往常就是系统的BootLoader程序。往常,bootLoader是严重地依靠于硬件而实现的,特别是在嵌入式世界。所以,在嵌入式世界里成立一个通用的BootLoader几乎是不行能的。指引加载程序是系统加电后运行的第一段软件代码。1. 在PC机器中:PC机中的指引加载程序由BIOS(其实质就是一段固件程序)和位于硬盘 MBR中的OS Bo otLoader (比方,LILO和GRUB 等)一同构成。BIOS在达 成硬件检测和资源分派后,将硬盘MBR中的BootLoad er读 到系统的RAM中,而后将控制权交给 OS BootLoad er。BootLoader的主要运行任务就是将内核映象从硬盘上读到RAM中,而后跳转到内核的进口点去运行,也即开始启 动操作系统。2. 在专用的嵌入式板子运行GNU/Linux系统已经变得愈来愈 流行。一个嵌入式Linux系统从软件的角度看往常能够分为 四个层次:1、指引加载程序。包含固化在固件(firmware)中的boot代码(可选),和BootLoader两大多数。2、Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。3、文件系统。包含根文件系统和成立于Flash内存设施之上文件系统。往常用 ramdisk来作为 rootfs。4、用户使用程序。特定于用户的使用程序。有时在用户使用程序和内核层之间可能还会包含一个嵌入式图形用户界面。常用的嵌入式 GUI有:QT和GTK等。常有 bootloader : Redboot,Armboot,uboot,blob 等等。要点介 绍 Blob 和 U-bootBlobBlob(Boot Loader Object) 是由 Jan-Derk Bakker and ErikMouw公布的,是特意为StrongARM 构架下的LART设计 的 Boot Loader。Blob的最后版本是blob-2.0.5。Blob支持SA1100的LART主板,但用户也能够自行修改移植。Blob也供给两种工作模式,在启动时处于正常的启动加 载模式,可是它会延时10秒等候终端用户按下随意键而将Blob切换到下载模式。假如在 10秒内没实用户按键,则Blob连续启动 Linux内核。其基本功能为:初始化硬件(CPU速度,储存器,中止, RS232串口)-指引Linux内核并供给 ramdisk-给LART下载一个内核或许ramdisk-给FLASH 片更新内核或许 ramdisk-测定储存配置并通知内核-给内核供给一个命令行Blob功能比较齐备,代码较少,比较适合做改正移植,用来指引Liunx,当前大多数S3C44B0板都用Blob改正移 植此后加载uClinux。U-BootU-Boot是由开源项目PPCBoot发展起来的,ARMboot并 入了 PPCBoot,和其余一些 arch 的 Loader 合称 U-Boot。2002年12月17日第一个版本公布,同时PPCBoot和ARMboot停止保护。U-Boot 自觉布此后已更新 6次,最新版本为,U-Boot的支持是连续性的。U-Boot支持的办理器构架包含PowerPC (MPC5xx,MPC8xx,MPC82xx,MPC7xx,MPC74xx,4xx), ARM(ARM7,ARM9,StrongARM,Xscale),MIPS (4Kc,5Kc), x86 等等, U-Boot (Universal Bootloader)从名字就能够看 出,它是在GPL下资源代码最完好的一个通用Boot Loader。U-Boot供给两种操作模式:启动加载(Boot loading)模 式和下载(Downloading)模式,并拥有大型Boot Loader的全 部功能。主要特征为:-SCC/FEC以太网支持-BOOTP/TFTP 指引|-IP , MAC预置功能 -在线读写 FLASH , DOC, IDE , IIC , EEROM , RTC-支持串行口 kermit , S-record下载代码-辨别二进制、 ELF32、pImage 格式的 Image,对 Linux指引有特其余支持-监控(minitor)命令集:读写I/O,内存,存放器、内存、外设测试功能等-脚本语言支持(近似 BASH脚本)-支持WatchDog , LCD logo,状态指示功能等U-Boot的功能是这样之强盛,涵盖了绝大多数办理器构架,供给大批外设驱动,支持多个文件系统,附加调试、脚本、指引等工具,特别支持Linux,为板级移植做了大批的工作。版本特别包含了对SA1100和44B0芯片的移植,所以 44B0移植主假如针对Board的移植,包含FLASH、内存配置以及串口波特率等等。U-Boot的完好功能性和后续不停的支持,使系统的升级保护变得十分方便。u-Boot内核和根文件系统烧写请翻开超级终端和实验箱电源,进入uboot。1、在内核和根文件系统的烧写以前需要先配置网络环境1) uboot启动此后使用 printenv查察环境变量2) 改正服务器ip和当地ip2、windows平台下tftp服务的配置3、烧写根文件系统1)把根文件系统映像下载到RAM的0x30008000处:2)正式烧写以前先擦出flash :nand erase 0x280000 0x4000003)开始烧写根文件系统到nand flash :nand write 0x30008000 0x280000 0x2500004、烧写内核1)把内核下载到 RAM的0x30008000处:tftp 0x30008000 uImage2)正式烧写以前先擦出flash:nand erase 0x80000 0x2000003)开始烧写内核到 nand flash :nand write 0x30008000 0x80000 0x2000007请翻开虚构机和超级终端,并翻开实验箱电源进入linux。在宿主机长进行调试改正程序。1、将driver文件夹、kernel文件夹和 app文件夹拷贝拷贝到 linux 的 /home/bc 目 录下。2在宿主机上翻开程序所在目录,编写好适合的Makefile文件3进行编译,先 make clean下,而后自动编译 make。假如有 错误提示进行改正,直到没错为止。4、先minicom 达成接口等的配置后将/home/bc挂载到目标板的上mount - t nfs - o nolock 192.168.0.XXX:/home/bc /mnt/nfs3、进入driver目录,加载驱动4、lsmod查察能否安装好5回到dc_motor目录cd .而后运行程序,./dcm_main在minicom窗口会显示转速的变化。察看试验箱 电动机在运行。此时程序调试运行成功8剖析总结在编写Makefile文件时注意编写的格式,在指令前要加一个Tab制表符,不然会编译犯错。还要划分大小写,采纳交错 编译,编译改正时在宿主机上,运行时在minicom平台。之前要进行一段挂载,在改正好ip以后选好适合的目标文件进 行挂载。以后能够运行,查察结果。在此次试验过程中,进 一步认识了 linux的方便奇特,功能强盛。还在上面放了视 屏及音乐文件,惊喜万分。认识了做一个linux系统的全过程以及调试改正方法。从书籍扩展到实质操作,学到更多, 兴趣更浓了,我想这是一门值很有前程的学科。
展开阅读全文