微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于STM32的嵌入式双目图像采集系统设计

基于STM32的嵌入式双目图像采集系统设计

时间:12-22 来源:互联网 点击:

1)μC/OS-II不使用C语言中的short、int、long等于处理器相关的数据类型,而是以移植性更强的整数数据类型代替,这样直观、便于移植。所以必须对操作系统和ARM体系结构的数据类型进行统一。

2)虽然ARM 处理器对堆栈向上及向下的两种增长模式都予以支持,但是通常系统仅支持堆栈从上往下长,并且是满递减堆栈,所以文件中定义堆栈增长方式的常量OS_STK_GROWTH的值应为1.

3)定义声明使能中断、结束中断、任务切换等函数。

5.2 文件OS_CPU.C的编写

1)任务堆栈初始化函数OSTaskStkInit()堆栈的概念在ARM 体系结构和系统移植中非常重要,是在ARM 处理器中利用有限的寄存器完成数据和状态记录的载体。在编写堆栈初始化函数OSTaskStkInit()之前,必须根据处理器的结构特点确定堆栈的结构,所以需要对ARM 体系结构有充分的认识。根据ARM 体系结构每种运行模式14个通用寄存器,有一个或两个状态寄存器,很容易该写出OSTaskStkInit()的代码。

TCB结构体中OSTCBStkPtr总是指向用户堆栈最高地址,该地址空间内存放用户堆栈长度,其上空间存放系统堆栈映像,即:用户堆栈空间大小=系统堆栈空间大小+1。

2)μC/OS-II分别使用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()来开中断和开中断,可以直接在C语言编程中应用。

3)可以根据ARM特点和移植目标,增加应用函数。例如处理器模式转换函数、人物初始指令集函数、钩子函数等。

5.3 文件OS_CPU_A.ASM 的编写

这个文件采用汇编语言编写。完成了系统软中断的地址分配、相应的存储区域等,编写了任务级任务切换函数OS_TASK_SW()、中断级任务切换函数OSIntCtxSw()、启动最高优先级任务函数0SStartHighRdy()等函数。完成了C语言和机器硬件语言的对接。

6 结语

本文在基于STM32核心嵌入式μC/OS-II平台上利用的、双向的、可靠的、无重复的数据连接,加上Vxworks系统自身的实时性强和可靠性高等优点,该通信方式完全满

足某型车载武器系统的高速实时网络通信要求,在实际的操作使用中,取得了良好的效果。

立即加入意法半导体技术社区

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top