资讯详情

嵌入式操作系统移植实例:使用ADS移植uC/OS-II

  选择开发工具在嵌入式系统设计中,的选取是一个重要的考虑因素,通常这是与开发项目的需求和应用背景相关。一般嵌入式开发工具包含用于目标系统的交叉编译器、、以及辅助处理用的二进制文件分析工具等。

  目前可以用来编译链接产生 处理器执行代码的开发工具主要有如下几类:1. ARM 公司提供的 ARM Developer Suite 集成开发环境主要工具有 armasm、armcc、armlink、fromelf 等。

  2. GNU 组织提供的 tool chain for arm主要工具有 arm-elf-gcc、arm-elf-gdb、arm-elf-objcopy 等3. 公司提供的 eMbedded Visual Tools主要工具有 clarm、clthumb、c2_arm、link、lib等这里我们选用 ARM 公司提供的 ADS 下的工具集来编译我们的程序和链接目标代码并最终生成可执行的二进制映像。这里介绍一下主要会用到的一些工具:armasm.exe : 汇编文件编译器armcc.exe : C 文件编译器armlink.exe : 目标文件连接器fromelf.exe : 用于将 axf 或者 elf 格式转换成其他格式的文件,例如二进制映像。

  armprof.exe : 对调试过程中生成的 profiling 记录文件做分析用的工具软件启动代码由于板子的 0x0 地址处是 32M 的Flash ROM,因此在板子加电后,会从 Flash 中顺序执行启动代码。为了能使得mC/OS-II 运行,启动代码需要完成如下工作:1. 设置 异常向量表,即在 0x0-0x1c 位置放置7条跳转指令(其中 0x14 为空)

  2.分别实现每种异常的处理程序,其中包括 Reset_Handler、Undefined_Handler、SWI_Handler、Prefetch_Handler、Abort_Handler、IRQ_Handler、FIQ_Handler. 3. 程序从 Reset_Handler 进入后,需要首先进行相关硬件的初始化操作,例如 初始化、 speed、Interrupt Controller、UART、timer 等。

  4. 建立每种异常状态下的系统堆栈,为了简单起见可以只在 svc 态 和 irq 态下建立堆栈:setup_svc_stack,setup_irq_stack. 5. 强制 arm 处理器状态转换为 svc 管理态。

  6. 跳转到mC/OS-II 代码的 main 入口,实际上是编译链接后产生的 __main 入口。

  时钟与中断处理时钟控制逻辑在图1中,有4种和系统时钟相关寄存器,它们的含义如下:● OSCR: 一个自动递增计数的 32 位。

  ● OSMR3-0: 4 个 32 位的匹配寄存器,当 OSCR 的值匹配时产生中断。

  ● OSSR: 状态寄存器,当 OSCR 和 OSMR 匹配时,会对 OSSR 做标志。

  ● OIER: 使能寄存器,表示当匹配发生时,允许在 OSSR 设置一个标识位。

  OSCR 在自动累加的过程中,与OSMR里面设定的那些匹配寄存器进行匹配,发现有匹配的事件时,就会对 OSSR 中的相应位置设一个标志位“1”,表示OSCR与对应的OSMR 发生了匹配。当然这个匹配发生的前提是发生匹配的那个OSMR在OIER中的相应位被使能,否则OSMR中的设置将不起作用。

1 2 下一页> -电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司