SlideShare a Scribd company logo
About STM32F407
Reference
FreeRTOS
Reference
Eclipse
IDE
 System Workbench for STM32
 STM32Cube
 http://www.openstm32.org/HomePage
Reference
Get start
 The first project
 HAL Driver
 GPIO
 USART
STM32Cube
Import into Eclipse
Burn into board
Use Virtual COM Port
FreeRTOS start
 USART Output
USART Output
Task Create
pxTaskCode : Task function 指標,指向一個 Loop function.
pcName : 任務名稱,只是識別用,方便除錯
usStackDepth : 此參數用於設定程序或用掉多少堆疊空間
詳見 FreeRTOS Menu 第六章。
pvParameters : 輸入引數,之後會示範如何使用
uxPriority : 優先權,0 為最高,最小是 (configMAX_PRIORITIES – 1),
configMAX_PRIORITIES 為自定義。
pxCreatedTask : 用來識別 Task 的名稱,這個名稱可用於改變任務優先權或是刪除任
務,用不到可設定為NULL
回傳值 : pdTRUE / errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY
Task 建立成功 /記憶體空間不夠,第五章有詳細說明
Task Create
參數的傳遞
如果要執行相似的程式,可以只用一個Task function(vTaskFunction),
加上傳入引數 pvPrameters 就可以創立不同的Task但是使用同一個Function。
優先權管理
在設定檔 FreeRTOSConfig.h 中可設定優先權的上限 configMAX_PRIORITIES 。
FreeRTOS 本身沒有限制優先級數的上限,但越大的話所耗用的記憶體越多,
建議設定在本身 Task 數量的最小值。
優先權管理
 Task 2 被餓死了…
優先權管理
 修正一下,組塞…. vTaskDelay
優先權管理
 修正一下….查詢 vTaskDelayUntil
優先權管理
優先權管理
 合併起來會怎麼跑?
優先權管理
用空閒任務換算CPU使用率
 通過空閒任務hook函數(或稱回檔,hook, or
call-back),可以直接在空閒任務中添加應用
程式相關的功能。空閒任務hook函數會被空
閒任務每迴圈一次就自動調用一次。
 通常空閒任務鉤子函數被用於:
 執行低優先順序,後臺或需要不停處理的功能。
 測試處系統處理裕量
 將處理器配置到低功耗模式——提供一種自動省
電方法,使得在沒有任何應用功能需要處理的時
候,系統自動進入省電模式。
空閒任務
更換任務優先權
void vTaskPrioritySet(
xTaskHandle pxTask,
unsigned portBASE_TYPE uxNewPriority );
pxTask 修改的任務名稱,若是輸入NULL 即可修改自己的優先權。
uxNewPriority 設定優先權層級,最大為(configMAX_PRIORITIES – 1)
unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask );
pxTask 查詢的任務名稱,輸入NULL可以查詢自己的優先層級
更換任務優先權
 任務1創建在最高優先順序,以保證其可以最先運行。任務
1首先列印輸出兩個字串,然後將任務2的優先順序提升到
自己之上。
 任務2一旦擁有最高優先順序便啟動執行。由於任何時候只
可能有一個任務處於運行態,所以當任務2運行時,任務1
處於就緒態。
 任務2列印輸出一個資訊,然後把自己的優先順序設回低於
任務1的初始值。
 任務2降低自己的優先順序意味著任務1又成為具有最高優
先順序的任務,所以任務1重新進入運行態,任務2被強制
切入就緒態。
更換任務優先權
更換任務優先權

More Related Content

What's hot

Erlang jiacheng
Erlang jiachengErlang jiacheng
Erlang jiachengAir-Smile
 
Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析
wang hongjiang
 
Java7 fork join framework and closures
Java7 fork join framework and closuresJava7 fork join framework and closures
Java7 fork join framework and closures
wang hongjiang
 
全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版
Simen Li
 
[嵌入式系統] MCS-51 實驗 - 使用 IAR (1)
[嵌入式系統] MCS-51 實驗 - 使用 IAR (1)[嵌入式系統] MCS-51 實驗 - 使用 IAR (1)
[嵌入式系統] MCS-51 實驗 - 使用 IAR (1)
Simen Li
 
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutorInside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutorAdy Liu
 
Nio trick and trap
Nio trick and trapNio trick and trap
Nio trick and trap
dennis zhuang
 
Php Extension--yahoo(Cc0cc)
Php Extension--yahoo(Cc0cc)Php Extension--yahoo(Cc0cc)
Php Extension--yahoo(Cc0cc)
sunlick
 
Java Thread
Java ThreadJava Thread
Java Thread
艾鍗科技
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
Chong-Kuan Chen
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
Kris Mok
 
Device Driver - Chapter 6字元驅動程式的進階作業
Device Driver - Chapter 6字元驅動程式的進階作業Device Driver - Chapter 6字元驅動程式的進階作業
Device Driver - Chapter 6字元驅動程式的進階作業
ZongYing Lyu
 
ES5 introduction
ES5 introductionES5 introduction
ES5 introduction
otakustay
 
Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式
ZongYing Lyu
 
[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階
Simen Li
 
Reactive X 响应式编程
Reactive X 响应式编程Reactive X 响应式编程
Reactive X 响应式编程
Jun Liu
 
Effective linux.1.(commandline)
Effective linux.1.(commandline)Effective linux.1.(commandline)
Effective linux.1.(commandline)
wang hongjiang
 
cppcheck源码分析
cppcheck源码分析cppcheck源码分析
cppcheck源码分析
Wu Liang
 
C++工程实践
C++工程实践C++工程实践
C++工程实践Shuo Chen
 

What's hot (20)

Erlang jiacheng
Erlang jiachengErlang jiacheng
Erlang jiacheng
 
Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析
 
Java7 fork join framework and closures
Java7 fork join framework and closuresJava7 fork join framework and closures
Java7 fork join framework and closures
 
全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版
 
[嵌入式系統] MCS-51 實驗 - 使用 IAR (1)
[嵌入式系統] MCS-51 實驗 - 使用 IAR (1)[嵌入式系統] MCS-51 實驗 - 使用 IAR (1)
[嵌入式系統] MCS-51 實驗 - 使用 IAR (1)
 
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutorInside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
 
Linux chapt3
Linux chapt3Linux chapt3
Linux chapt3
 
Nio trick and trap
Nio trick and trapNio trick and trap
Nio trick and trap
 
Php Extension--yahoo(Cc0cc)
Php Extension--yahoo(Cc0cc)Php Extension--yahoo(Cc0cc)
Php Extension--yahoo(Cc0cc)
 
Java Thread
Java ThreadJava Thread
Java Thread
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
 
Device Driver - Chapter 6字元驅動程式的進階作業
Device Driver - Chapter 6字元驅動程式的進階作業Device Driver - Chapter 6字元驅動程式的進階作業
Device Driver - Chapter 6字元驅動程式的進階作業
 
ES5 introduction
ES5 introductionES5 introduction
ES5 introduction
 
Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式
 
[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階
 
Reactive X 响应式编程
Reactive X 响应式编程Reactive X 响应式编程
Reactive X 响应式编程
 
Effective linux.1.(commandline)
Effective linux.1.(commandline)Effective linux.1.(commandline)
Effective linux.1.(commandline)
 
cppcheck源码分析
cppcheck源码分析cppcheck源码分析
cppcheck源码分析
 
C++工程实践
C++工程实践C++工程实践
C++工程实践
 

Similar to Free rtos workshop1@nuu

MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程Lixun Peng
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
Ho Kim
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)Shanda innovation institute
 
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOpenSourceCamp
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇小新 制造
 
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试lydiafly
 
Java华为面试题
Java华为面试题Java华为面试题
Java华为面试题yiditushe
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocketpwesh
 
Arduino程式快速入門
Arduino程式快速入門Arduino程式快速入門
Arduino程式快速入門
吳錫修 (ShyiShiou Wu)
 
改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法crasysatan
 
Lua 语言介绍
Lua 语言介绍Lua 语言介绍
Lua 语言介绍
gowell
 
0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)Timothy Chen
 
5, initialization & cleanup
5, initialization & cleanup5, initialization & cleanup
5, initialization & cleanup
ted-xu
 
Spark 巨量資料處理基礎教學
Spark 巨量資料處理基礎教學Spark 巨量資料處理基礎教學
Spark 巨量資料處理基礎教學
NUTC, imac
 
學好 node.js 不可不知的事
學好 node.js 不可不知的事學好 node.js 不可不知的事
學好 node.js 不可不知的事
Ben Lue
 
C++中级培训胶片
C++中级培训胶片C++中级培训胶片
C++中级培训胶片ff1
 
PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术
hoopchina
 
竞赛中C++语言拾遗
竞赛中C++语言拾遗竞赛中C++语言拾遗
竞赛中C++语言拾遗
乐群 陈
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集shademoon
 

Similar to Free rtos workshop1@nuu (20)

MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
 
Optimzing mysql
Optimzing mysqlOptimzing mysql
Optimzing mysql
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
 
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇
 
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试
 
Java华为面试题
Java华为面试题Java华为面试题
Java华为面试题
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocket
 
Arduino程式快速入門
Arduino程式快速入門Arduino程式快速入門
Arduino程式快速入門
 
改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法
 
Lua 语言介绍
Lua 语言介绍Lua 语言介绍
Lua 语言介绍
 
0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)
 
5, initialization & cleanup
5, initialization & cleanup5, initialization & cleanup
5, initialization & cleanup
 
Spark 巨量資料處理基礎教學
Spark 巨量資料處理基礎教學Spark 巨量資料處理基礎教學
Spark 巨量資料處理基礎教學
 
學好 node.js 不可不知的事
學好 node.js 不可不知的事學好 node.js 不可不知的事
學好 node.js 不可不知的事
 
C++中级培训胶片
C++中级培训胶片C++中级培训胶片
C++中级培训胶片
 
PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术
 
竞赛中C++语言拾遗
竞赛中C++语言拾遗竞赛中C++语言拾遗
竞赛中C++语言拾遗
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 

More from 紀榮 陳

Free rtos workshop7@nuu
Free rtos workshop7@nuuFree rtos workshop7@nuu
Free rtos workshop7@nuu
紀榮 陳
 
Free rtos workshop6@nuu
Free rtos workshop6@nuuFree rtos workshop6@nuu
Free rtos workshop6@nuu
紀榮 陳
 
Free rtos workshop5@nuu
Free rtos workshop5@nuuFree rtos workshop5@nuu
Free rtos workshop5@nuu
紀榮 陳
 
Free rtos workshop4@nuu
Free rtos workshop4@nuuFree rtos workshop4@nuu
Free rtos workshop4@nuu
紀榮 陳
 
Free rtos workshop3@nuu
Free rtos workshop3@nuuFree rtos workshop3@nuu
Free rtos workshop3@nuu
紀榮 陳
 
Free rtos workshop 2 @nuu
Free rtos workshop 2 @nuuFree rtos workshop 2 @nuu
Free rtos workshop 2 @nuu
紀榮 陳
 
Free rtos workshop8
Free rtos workshop8Free rtos workshop8
Free rtos workshop8
紀榮 陳
 
Free rtos workshop6
Free rtos workshop6Free rtos workshop6
Free rtos workshop6
紀榮 陳
 

More from 紀榮 陳 (8)

Free rtos workshop7@nuu
Free rtos workshop7@nuuFree rtos workshop7@nuu
Free rtos workshop7@nuu
 
Free rtos workshop6@nuu
Free rtos workshop6@nuuFree rtos workshop6@nuu
Free rtos workshop6@nuu
 
Free rtos workshop5@nuu
Free rtos workshop5@nuuFree rtos workshop5@nuu
Free rtos workshop5@nuu
 
Free rtos workshop4@nuu
Free rtos workshop4@nuuFree rtos workshop4@nuu
Free rtos workshop4@nuu
 
Free rtos workshop3@nuu
Free rtos workshop3@nuuFree rtos workshop3@nuu
Free rtos workshop3@nuu
 
Free rtos workshop 2 @nuu
Free rtos workshop 2 @nuuFree rtos workshop 2 @nuu
Free rtos workshop 2 @nuu
 
Free rtos workshop8
Free rtos workshop8Free rtos workshop8
Free rtos workshop8
 
Free rtos workshop6
Free rtos workshop6Free rtos workshop6
Free rtos workshop6
 

Free rtos workshop1@nuu