dongsytem

所属分类:界面编程
开发工具:C/C++
文件大小:4811KB
下载次数:54
上传日期:2006-06-02 10:02:16
上 传 者nanrenzb
说明:  嵌入式C编译程序(单片机)完整版高质量(按键 显示 坐标....)全译真正完整程序编译
(Embedded C compiler (SCM), a complete version of high-quality (Press showed coordinates ....) Full Translation truly End the whole procedure compiler)

文件列表:
dongsytem (0, 2006-04-03)
dongsytem\Untitled Project.IMB (331776, 2006-03-28)
dongsytem\Untitled Project.IMD (3568, 2006-03-28)
dongsytem\Untitled Project.IAB (929792, 2006-03-28)
dongsytem\Untitled Project.IAD (9408, 2006-03-28)
dongsytem\Untitled Project.PR (42944, 2006-03-28)
dongsytem\Untitled Project.PS (2429324, 2006-04-01)
dongsytem\Untitled Project.PFI (540, 2006-04-01)
dongsytem\Untitled Project.PO (776, 2006-04-03)
dongsytem\Untitled Project.PRI (271728, 2006-03-28)
dongsytem\Untitled Project.WK3 (13470, 2006-04-02)
dongsytem\UNTITL~1.SearchResults (439, 2006-03-30)
dongsytem\DONGXINSYSTEM (0, 2006-04-03)
dongsytem\DONGXINSYSTEM\vssver.scc (48, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core (0, 2006-04-03)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII (0, 2006-04-03)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\OS_Custom_Task.c (12656, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\vssver.scc (48, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\For RM9200 (0, 2006-04-03)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\For RM9200\BSP.C (27695, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\For RM9200\BSP.H (707, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\For RM9200\os_cpu.h (6739, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\For RM9200\os_cpu_a.s (15846, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\For RM9200\os_cpu_c.c (14629, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\For RM9200\os_dbg.c (12008, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\For RM9200\ST_Populate_Vector.c (8914, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\For RM9200\vssver.scc (144, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core (0, 2006-04-03)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\OS_CFG.H (8564, 2006-03-31)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\os_cfg_r.h (8561, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\os_core.c (68281, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\OS_DBG.C (10323, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\os_dbg_r.c (10323, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\os_flag.c (54008, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\os_mbox.c (25351, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\os_mem.c (18700, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\os_mutex.c (29981, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\os_q.c (37340, 2006-03-29)
dongsytem\DONGXINSYSTEM\uC_Core\uC_OSII\Core\os_sem.c (23622, 2006-03-29)
... ...

在加载工程之时有几个注意事项: ADS的工程文件在New AT91RM9200-uCOS 2005.08.05\AT91RM9200-uCOS\compil 1。 cstartup_ads_flash.s init_flash.c 这两个文件是不用的,使用ADS请选择DebugRAM。DebugFlash在此没有被使用。 2。 The ARM contains an exception vector table (also called the interrupt vector table) starting at address 0x00000000. There are only seven (7) entries in the vector table. Each entry has enough room to hold a single 32-bit instruction. The instruction placed in this table is generally a branch instruction with a signed 26-bit destination address. In other words, the ARM can branch to an address that is roughly +/- 0x0200000 from the vector location. ST_Populate_Vector.c是向0x00地址复制中断向量表,这里没有使用ATMEL设置中断的库函数,由于此函数设置的中断服务程序有效地址范围为+/-0x0020000,而使用内存加载的地址为0x20000000以上,大大超过了它的有效范围(这也是旧版OS在加载到RAM中就出错的原因)。如果打算将程序使用在FLASH中,那么可以应用ATMEL的中断设置函数。 3。 如果你想在OS_CPU_IRQ_ISR中断处理中维护多个中断(嵌套),只要修改OS_CPU_A.ASM中的下列语句,把NO_INT去掉(即打开中断)即可。 MSR CPSR_c, #(NO_INT | IRQ32_MODE) ; Change to IRQ mode (to use the IRQ stack to handle interrupt), you can enable interrupt here 只有Tick来临并调用了OSTimeTick()之后才可能出现任务切换,因此对于非Tick中断结束后调用OSIntExit()是不可能出现任务切换的,除非当前中断发生在Tick中断之内。 4。 当前版本可以直接通过Bootloader来加载,但须要在ADS工程中把RO Base改为0x21f00000(这是Bootloader加载程序的地址,并从处此引导)。但有BIN文件大小不可超过100KByte的限制,这是由Bootloader程序限制的。如果超过请使用U-BOOT来处理。 5。 Tick的时长请到Timer0_Init()中修改,在AT91F_TC_Open(AT91C_BASE_TC0,TC_CLKS_MCK1024,AT91C_ID_TC0)中选择不同的TC_CLKS_MCK???即可。 这个函数在Bsp.c中。 6。 当Idle任务完成后调用OSTaskIdleHook,在此我加入了使CPU进入IDLE模式的代码。 7。 中断的处理一定要按照例子中的格式,否则将不能正常处理。 9200在UCOS2中断处理的伪代码: 从AIC中取得中断向量地址; while (向量地址!=AIC_SPU){ /* Handle ALL interrupting devices */ if(向量地址==某一处理程序地址) { 转向中断服务; /* Call ISR for interrupting device */ 清对应的中断标志; 通知AIC中断处理完毕; }else { if(向量地址==某一处理程序地址) { 转向中断服务; /* Call ISR for interrupting device */ 清对应的中断标志; 通知AIC中断处理完毕; }else{ . . . . 如果条件都不满足提示出现非法中断; } } 从AIC中取得中断向量地址; } 通知AIC,SPU处理完毕; 8。 DEF_DEBUG_EN定义在工程配置的->ARM C Compiler->Preprocessor中。 此工程中除去main.c以外,所有通过串口输出的调试信息都受到这个标志的控制,定义了则输出否则无提示。

近期下载者

相关文件


收藏者