PSoC4/LEDチカチカ(FreeRTOS版)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[PSoC4]]
#contents
2015/06/07からのアクセス回数 &counter;
** 参考資料 [#t3d33faf]
[[基板付き体験編 ARM PSoCで作るMyスペシャル・マイコン>htt...
に倣って、LEDチカチカ(FreeRTOS版)を試してみます。
** FreeRTOSのダウンロード [#k67bc91b]
CypressのフォーラムPSoC4からFreeRTOSDemo.zipをダウンロー...
- http://www.cypress.com/?app=forum&id=4749&rID=89893
** プロジェクトの作成 [#ie084e6d]
[[PSoC4/LEDチカチカ(ソフト版)]]と同じようにPSoC4_LED_Fr...
- プロジェクトフォルダーにFreeRTOSCofnig.hをコピー
- プロジェクトフォルダーにFreeRTOSDemoのFreeRTOSをコピー
- プロジェクトにFreeRTOS/src, FreeRTOS/includeフォルダー...
- FreeRTOSのsrc/, include/以下のファイルをプロジェクトに...
*** main.c [#ha29bf3a]
main.cを以下の様に書き替えます。
#pre{{
#include <project.h>
#include <FreeRTOS.h>
#include <task.h>
// Define Prototype
void prvHardwareSetup();
/* ------------------------------------------------------...
* FreeRTOS support and configuration functions
* ------------------------------------------------------...
void prvHardwareSetup( void )
{
/* Port layer functions that need to be copied into ...
extern void xPortPendSVHandler( void );
extern void xPortSysTickHandler( void );
extern void vPortSVCHandler( void );
extern cyisraddress CyRamVectors[];
/* Install the OS Interrupt Handlers. */
CyRamVectors[ 11 ] = ( cyisraddress ) vPortSVCHandler;
CyRamVectors[ 14 ] = ( cyisraddress ) xPortPendSVHan...
CyRamVectors[ 15 ] = ( cyisraddress ) xPortSysTickHa...
}
void vApplicationStackOverflowHook( xTaskHandle pxTask, s...
{
/* The stack space has been execeeded for a task, co...
taskDISABLE_INTERRUPTS();
for( ;; );
}
void vApplicationMallocFailedHook( void )
{
/* The heap space has been execeeded. */
taskDISABLE_INTERRUPTS();
for( ;; );
}
// define user function values and prototypes
#define TASK_STACK_LED 128
#define TASK_PRIORITY_LED (tskIDLE_PRIORITY +1)
void Task_LED(void *pvParameters);
int main()
{
prvHardwareSetup();
CyGlobalIntEnable;
xTaskCreate(Task_LED, \
(signed portCHAR *) "LED", \
TASK_STACK_LED , \
NULL, \
TASK_PRIORITY_LED, \
NULL);
vTaskStartScheduler();
while(1) continue;
return 1; // We should never reach this
}
// Task : LED
void Task_LED(void *pvParameters)
{
const portTickType xDelay = 500 / portTICK_RATE_MS; ...
while(1) {
LED_Write(~LED_Read());
vTaskDelay(xDelay);
}
}
}}
*** 最終ビルドと書き込み [#o120cf46]
最後にもう一度ビルドします。以下の様にSRAMが90.7%と結構逼...
#pre{{
Flash used: 4566 of 32768 bytes (13.9%).
SRAM used: 3716 of 4096 bytes (90.7%). Stack: 1024 bytes....
}}
最後にDebug→Programでプログラムを書き込みます。
&ref(th_PSoC4_Pioneeer_LED_FreeRTOS.jpg);
作成したプロジェクトファイルをZIPにまとめました。
- &ref(PSoC4_LED_FreeRTOS.zip);
** コメント [#fbdc4c12]
#vote(おもしろかった[1],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
終了行:
[[PSoC4]]
#contents
2015/06/07からのアクセス回数 &counter;
** 参考資料 [#t3d33faf]
[[基板付き体験編 ARM PSoCで作るMyスペシャル・マイコン>htt...
に倣って、LEDチカチカ(FreeRTOS版)を試してみます。
** FreeRTOSのダウンロード [#k67bc91b]
CypressのフォーラムPSoC4からFreeRTOSDemo.zipをダウンロー...
- http://www.cypress.com/?app=forum&id=4749&rID=89893
** プロジェクトの作成 [#ie084e6d]
[[PSoC4/LEDチカチカ(ソフト版)]]と同じようにPSoC4_LED_Fr...
- プロジェクトフォルダーにFreeRTOSCofnig.hをコピー
- プロジェクトフォルダーにFreeRTOSDemoのFreeRTOSをコピー
- プロジェクトにFreeRTOS/src, FreeRTOS/includeフォルダー...
- FreeRTOSのsrc/, include/以下のファイルをプロジェクトに...
*** main.c [#ha29bf3a]
main.cを以下の様に書き替えます。
#pre{{
#include <project.h>
#include <FreeRTOS.h>
#include <task.h>
// Define Prototype
void prvHardwareSetup();
/* ------------------------------------------------------...
* FreeRTOS support and configuration functions
* ------------------------------------------------------...
void prvHardwareSetup( void )
{
/* Port layer functions that need to be copied into ...
extern void xPortPendSVHandler( void );
extern void xPortSysTickHandler( void );
extern void vPortSVCHandler( void );
extern cyisraddress CyRamVectors[];
/* Install the OS Interrupt Handlers. */
CyRamVectors[ 11 ] = ( cyisraddress ) vPortSVCHandler;
CyRamVectors[ 14 ] = ( cyisraddress ) xPortPendSVHan...
CyRamVectors[ 15 ] = ( cyisraddress ) xPortSysTickHa...
}
void vApplicationStackOverflowHook( xTaskHandle pxTask, s...
{
/* The stack space has been execeeded for a task, co...
taskDISABLE_INTERRUPTS();
for( ;; );
}
void vApplicationMallocFailedHook( void )
{
/* The heap space has been execeeded. */
taskDISABLE_INTERRUPTS();
for( ;; );
}
// define user function values and prototypes
#define TASK_STACK_LED 128
#define TASK_PRIORITY_LED (tskIDLE_PRIORITY +1)
void Task_LED(void *pvParameters);
int main()
{
prvHardwareSetup();
CyGlobalIntEnable;
xTaskCreate(Task_LED, \
(signed portCHAR *) "LED", \
TASK_STACK_LED , \
NULL, \
TASK_PRIORITY_LED, \
NULL);
vTaskStartScheduler();
while(1) continue;
return 1; // We should never reach this
}
// Task : LED
void Task_LED(void *pvParameters)
{
const portTickType xDelay = 500 / portTICK_RATE_MS; ...
while(1) {
LED_Write(~LED_Read());
vTaskDelay(xDelay);
}
}
}}
*** 最終ビルドと書き込み [#o120cf46]
最後にもう一度ビルドします。以下の様にSRAMが90.7%と結構逼...
#pre{{
Flash used: 4566 of 32768 bytes (13.9%).
SRAM used: 3716 of 4096 bytes (90.7%). Stack: 1024 bytes....
}}
最後にDebug→Programでプログラムを書き込みます。
&ref(th_PSoC4_Pioneeer_LED_FreeRTOS.jpg);
作成したプロジェクトファイルをZIPにまとめました。
- &ref(PSoC4_LED_FreeRTOS.zip);
** コメント [#fbdc4c12]
#vote(おもしろかった[1],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
ページ名:
SmartDoc