kuainiao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年1月15日

摘要: mips cpu 产生exception/interrupt后,cpu 会跳到特定的几个地址上, BEV=0时,一般的在0x80000180,当然还有些其他地址,详细的要去看mips书籍 这里有这样的代码 FUNC_START(other_vector) mfc0 k0,cause # K0 = exc... 阅读全文
posted @ 2013-01-15 16:47 kuainiao 阅读(654) 评论(0) 推荐(0) 编辑

摘要: 启动代码分析(for MIPS): packages/hal/mips/arch/v2_0/src/vector.S FUNC_START(reset_vector) //reset向量,地址为0xbfc00000,内核由此地址启动 #ifndef CYG_HAL_STARTUP_RAM # if defined(CYGPKG_HAL... 阅读全文
posted @ 2013-01-15 16:46 kuainiao 阅读(797) 评论(0) 推荐(0) 编辑

摘要: ##----------------------------------------------------------------------------- ## Hardware supplied vectors .set noreorder .section ".reset... 阅读全文
posted @ 2013-01-15 16:44 kuainiao 阅读(564) 评论(0) 推荐(0) 编辑

摘要: ecos代码分析(4) 下面开始看cyg_start() < redboot/v3_0/src/main.c> void cyg_start(void) :: an no parameters routine è CYGACC_CALL_IF_MONITOR_VERSION_SET(RedBoot_ 阅读全文
posted @ 2013-01-15 16:04 kuainiao 阅读(754) 评论(0) 推荐(0) 编辑

摘要: ecos代码分析(3) 在看cyg_start()之前,先要解决3个问题: 1. __startup_stack在哪里定义? 2. cyg_hal_invoke_constructors()这个机制是如何使用? 3. CALL_IF*机制是如何实现? 1. __startup_stack在哪里定义? 阅读全文
posted @ 2013-01-15 16:02 kuainiao 阅读(444) 评论(0) 推荐(0) 编辑

摘要: ecos代码分析(2) 228 bl hal_mmu_init 此前内存初始化好了,sp也设置好了,可以运行C程序 170 void 171 hal_mmu_init(void) 172 { 173 unsigned long ttb_base = SMDK2410_SDRAM_PHYS_BASE 阅读全文
posted @ 2013-01-15 16:01 kuainiao 阅读(579) 评论(0) 推荐(0) 编辑

摘要: ecos代码分析(1) 前面分析了u-boot,再分析一下ecos,听说ecos比较复杂,所以还是采取挨船下竿的原则,分析u-boot相似的smdk2410这块开发板。 1. 首先找到链接文件 <hal/arm/arm9/smdk2410/v3_0/include/pkgconf/mlt_arm_a 阅读全文
posted @ 2013-01-15 15:54 kuainiao 阅读(1241) 评论(0) 推荐(0) 编辑

View Code