| | 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 网上商城 | 芯片价格参考 | 留言 | 论坛 | 网络协议 | 驱动设计 | 购买指南-HowtoBuy | | |
![]() |
![]() |
| 您现在的位置: FPGA开发板&SOPC开发板-嵌入式控制研究室 >> ARM >> ARM入门 >> 文章正文 |
|
|||||
| 如何开发arm(4) | |||||
| 作者:佚名 文章来源:互联网 点击数: 更新时间:2007-6-9 | |||||
|
/************************************************************************** #define INTCON (0x01c00000+0x200000) /* 中断控制器 */ cpu_init_crit: /* 关闭看门狗 */ /** 清除所有中断位,设置INTMRs实现。*/ /* 设置时钟控制寄存器 */ /* 设置锁相环,控制CPU运行速度。 */ #if CONFIG_S3C44B0_CLOCK_SPEED==66 #elif CONFIG_S3C44B0_CLOCK_SPEED==75 # error CONFIG_S3C44B0_CLOCK_SPEED undefined #endif /* 调用子函数返回 */ /*************************************************/ real_vectors: undefined_instruction: software_interrupt: prefetch_abort: data_abort: not_used: 把引导的汇编看完,已经准备C的运行环境,下面就开始学习C的源程序,从start.S文件里到跳文件lib_arm\board.c里运 行. /*引导程序从汇编start.S里跳到这里执行。蔡军生 2005/07/19*/ void start_armboot (void) #if defined(CONFIG_VFD) defined(CONFIG_LCD) unsigned long addr; #endif /* 下面一句是阻止3.4以上版本的GCC进行代码优化,把后面的代码删除掉。 */ __asm__ __volatile__("": : :"memory"); /* 清空gd指向的结构 */ 这一段准备好保存参数的全局变量区. /* 用循环调用所有初始化函数 */ 的,做什么样的初始化,怎么样为后面做好运行的准备工作。看到第一个初始化函数,就是CPU初始化(cpu_init), 这个函数是在cpu\s3c44b0\cpu.c里,它的作用就是进行S3C44B0初始化工作。看到这个函数内容如下: /* CPU初始化。蔡军生 2005/07/23*/ 后,它的初始化值是不启用内部的8K缓冲区的,必须由程序进行设置。接着看看那个调用的函数又是怎么样初始化内 部缓存区的呢? /* CPU内存的缓冲初始化。蔡军生 2005/07/23*/ NCACHBE0 = 0xC0000000; /* 设置SYSCFG寄存器启用8K缓冲区。 */ reg = SYSCFG; SYSCFG = reg; 在这个函数里,第一个先调用函数是进行缓冲区清0的工作,它有一些特别的地方,如下: / |
|||||
| 文章录入:fengfeiyi 责任编辑:fengfeiyi | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 如何开发arm(3) 如何开发arm(2) 如何开发arm(1) 在ARMulator中移植uClinux(… 在ARMulator中移植uClinux(… 在ARMulator中移植uClinux(… 在ARMulator中移植uClinux(… 在ARMulator中移植uClinux(… S3c2410软件调试总结 MiniGUI在AT91RM9200开发板上… |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | | |
![]() |
Copyright © 2005www.21control.com 嵌入式控制技术研究室 版权所有 站长:康草科技 |