IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 一、cubeide的使用与笔记 -> 正文阅读

[嵌入式]一、cubeide的使用与笔记

一,应用使用

**1.**使用CubeIde 时生成hex或者bin,进行下载配置
工程右键》Properties》C/C++ Build 》Settings 》
找到Build Steps选项卡,在“Post-build steps”的“Command”输入以下命令
生成hex:

arm-none-eabi-objcopy "${ProjName}.elf" -O ihex "${ProjName}.hex"

生成bin:

arm-none-eabi-objcopy "${ProjName}.elf" -O binary "${ProjName}.bin"

这样就会在你工程的编译目录下生成对应的和工程同名的hex或bin文件
如果是使用TrueStudio for stm32
需要将“arm-none-eabi-objcopy”替换成“arm-atollic-eabi-objcopy”

图示:
在这里插入图片描述
1.选择配置

在这里插入图片描述
2.注意生成文件提示

在这里插入图片描述
3.选择烧写文件格式。

二、选择Rtos时注意点

**1.**freertos
->
soucse
-> ->
task.c 移植性
queue.c 编译
list.c 平台
port.c

            内核包含:
            task,queue,list
            (timers,croutine定时,协同)

**2.**存储
分heap_1.2.3.4.c
——1,不释放,不删除任务。(内核启动前创建任务的小实时系统);
——2,允许删除,释放任务。(动态小型实时任务);
——3,用于malloc,free
——4,需要在应用代码中直接使用移植层内存分配方案

**1.**使用FreeRTOS时,为防止重复定义,必须从stm32f4xx_it.c/.h中删除SVC_Handler和PendSV_Handler

CMSIS-RTOS是实时操作系统的通用API,此模块由cmsis_os.c/h文件表示

内核信息的控制 API:
osKernelInitialize 初始化内核
osKernelstart 启动内核
oskernelRunning 查询内核运行情况
oskernelSysTick,获取内核定时器的计数
osKernelSysTickFrequency, 内核系统定时器的频率
osKernelSystickMicrosec把微妙转为系统内核定时器值
线程管理 API
osThreadCreate 开始线程函数
osThreadTerminate, 停止线程函数
osThreadYield 执行传递到下个就绪线程
osThreadGetld 获取线程表示符
osThreadSetPriority 设置线程的执行优先级
osThreadGetPriority 获取当前线程的执行优先级
等待函数 API
osDelay 等待指定时间
osWait 等待信号,消息,邮箱等任何事件
定时器管理 API
osTimerCreate ,定时器huidiao函数
osTimerStart 重新开始定时器
信号管理 API
osSignalSet 设置信号标准
osSignalClear 复位线程信号标志
osSignalClear 挂起执行,直到特定信号被设置
互斥量管理 API
osMutexCreat 初始化互斥量
osMutexWait 得到互斥量,等待互斥量可用时
osMutexRelease 释放互斥量
osMutexDelete 删除互斥量
信号量管理APT
osSemaphoreCreate 初始化信号量
osSemaphoreWait 等待信号量,等到可用
osSemaphoreRelease 释放信号量
osSemaphoreDelete 删除信号量
内存池管理 API:
osPoolCreate 初始化内存池
osPoolAlloc 分配内存快
osPoolCAlloc 分配内存块并置零
osPoolFree 释放内存块
消息队列管理 API:
osMessageCreate 初始化消息队列
邮箱管理 API:
osMailCreate
osMailAlloc
osMailCAlloc
osMailPut
osMailGet
osMailFree

3、 RTOS内核本身需要大约5到10 K字节ROM空间
,创建的线程或队列数增加,RAM使用量就会上升

CPU时钟由FreeRTOSConfig.h中的configCPU_CLOCK_HZ定义
在STM32CubeF4 固件内它由SystemCoreClock提供,
表示HCLK时钟(AHB总线),当通过调用SystemClock_Config()函数配置RCC时钟时会设置此值。

任何使用RTOS API函数的中断服务程序,
其优先级必须手动设置为大于等于FreeRTOSConfig.h文件
中configMAX_SYSCALL_INTERRUPT_PRIORITY的设置值

**1.**怎样使用非SysTick时钟生成时间片中断?用户可选择性地自己提供时间片中断源,
方法是使用非SysTick的定时器生成中断:
?提供vPortSetupTimerInterrupt()的实现,
它会以configTICK_RATE_HZ FreeRTOSConfig.h常量指定的频率生成中断。
?将xPortSysTickHandler()安装为定时器中断的处理程序,
确保xPortSysTickHandler() 在FreeRTOSConfig.h中未映射至SysTick_Handler(),
且在port.c中未重命名为SysTick_Handler()。

**2.**FreeRTOS在STM32的移植大致由3个文件实现,
一个.h文件定义编译器相关的数据类型和中断处理的宏定义;PORTMACRO.H (portmacro.h)
一个.c文件实现任务的堆栈初始化、系统心跳的管理和任务切换的请求 ;PORT.C (port.c)
一个.s文件实现具体的任务切换; PORTASM.S (portasm.S)

xPortStartScheduler
设置中断优先级?配置心跳时钟

vPortStartFirstTask
定位堆栈地址?触发SVC软中断

vPortSVCHandler
初始化任务环境?调度器开始工作

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章           查看所有文章
加:2022-04-28 12:02:29  更:2022-04-28 12:03:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:46:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码