NXP JN516X (TWELITE) をプログラミングする(Downloads)

JN516Xのコア機能はとりあえず制覇できた感がする。これでやっとアプリケーション開発に入れそうだ。(笑)

【修正履歴】
2022-12-01
WPanクラス及びOTA-UPDATE/OTA-BRIDGEの改良。OTA-UPDATEはLinux(ftdi_sio)対応。OTA-BRIDGEは機能を追加しより汎用的に使えるようになった。

2022-11-07
・JN516X-PROGのデバイス情報(-d)としてMAC-Addressを追加。
・SystemクラスのBoardクラスとLedクラスの初期化順序の問題によりLed登録情報が削除されてしまっていたので修正。
・EEPRomクラスのデータ消去時の値が間違っていたので修正。(0xFFから0x00に変更)
・WPanクラスに下記関数を追加。
void setPanId(uint16 u16PanId);
uint16 getPanId(void);
bool setShortAddress(uint16 u16Addr);
uint16 getShortAddress(void);
void getMacAddress(MAC_ExtAddr_s &addr);

2022-06-28
Semクラスのタイミングバグ修正とTask::start()に負数のスタックサイズ指定をしたとき登録タスクではなく直前の登録タスクのスタックサイズ指定になっていて混乱しやすいので修正。

2022-06-23
Semクラスのバグ修正とTaskクラスのチューニング。それと2レベルではあるがタスク優先度を追加し起床タスクの優先度を一時的にあげる仕組みを追加してみた。リアルタイムにはスイッチングしないが休止状態から起床されたタスクが最優先で実行されるようになる。可能ならリアルタイム性を追加したいところではあるがリアルタイムやタイムスライスに対応すると標準ライブラリを含む全てのライブラリもマルチスレッド対応にする必要があったりしてとても大変なことになるで対応はしない。

2022-06-20
Taskクラスの微妙な感じがしていたタスク切り替え処理を改良してみた。今のところ対応は考えてないけどタイムスライスも行けそうな感じになってきた気がする。

2022-06-18
Fifoクラスのバグ修正。

2022-06-17
Fifoクラスの仕様変更。

2022-06-16
Fifoクラスを追加。

2022-06-15
Sync/Mutex/Sem/Eventクラスのコード最適化の続きを行った。

2022-06-14
Sync/Mutex/Sem/Eventクラスのコード最適化を行った。

2022-06-09
タスク終了時のタイミングバグを修正。

2022-06-08
割り込み禁止期間のチューニングを行った。

2022-06-07
Sync::sleep()が思いっきりバグってたので修正。(-_-;)

2022-06-06
いくつかの改良とバグ修正。

2022-06-05
Sync::sleep()のタイムアウト対応に伴い、Task::sleep()/Task::sleepMicroseconds()を追加。指定時間経過するまでタスクを休止できるためSystem::delay()/System::delayMicroseconds()よりも効率的に時間待ちができるようになる。但し、メインタスクに関しては無線機能等でポーリング処理が必要なため今まで通りSystem::delay()/System::delayMicroseconds()が実行される。

【Windows-eclipse-project】
JN516X-PROG-eclipse.zip
JN516X-OTA-eclipse.zip

【JN516X-eclipse-project】
JN5164-MWSDK-eclipse.zip
JN5164-MWSDK-OTA-BRIDGE-eclipse.zip
JN5164-MWSDK-OTA-BOOT-eclipse.zip
JN5169-MWSDK-eclipse.zip
JN5169-MWSDK-OTA-BRIDGE-eclipse.zip
JN5169-MWSDK-OTA-BOOT-eclipse.zip

【JN5164-BeyondStudio-project】
JN5164-SW4165-bstudio.zip

【関連投稿】
NXP JN516X (TWELITE) をプログラミングする(開発環境の構築)
NXP JN516X (TWELITE) をプログラミングする(メイン・ルーチン)
NXP JN516X (TWELITE) をプログラミングする(TICKTIMER)
NXP JN516X (TWELITE) をプログラミングする(UART)
NXP JN516X (TWELITE) をプログラミングする(SYSTEM)
NXP JN516X (TWELITE) をプログラミングする(GPIO)
NXP JN516X (TWELITE) をプログラミングする(TIMER)
NXP JN516X (TWELITE) をプログラミングする(ALARM)
NXP JN516X (TWELITE) をプログラミングする(WAKETIMER)
NXP JN516X (TWELITE) をプログラミングする(WATCHDOG)
NXP JN516X (TWELITE) をプログラミングする(I2C)
NXP JN516X (TWELITE) をプログラミングする(SPI)
NXP JN516X (TWELITE) をプログラミングする(ADC)
NXP JN516X (TWELITE) をプログラミングする(COMPARATOR)
NXP JN516X (TWELITE) をプログラミングする(CLOCK)
NXP JN516X (TWELITE) をプログラミングする(BROWNOUT)
NXP JN516X (TWELITE) をプログラミングする(PULSCOUNTER)
NXP JN516X (TWELITE) をプログラミングする(INFRARED)
NXP JN516X (TWELITE) をプログラミングする(RANDOM-GENERATOR)
NXP JN516X (TWELITE) をプログラミングする(FLASH)
NXP JN516X (TWELITE) をプログラミングする(EEPROM)
NXP JN516X (TWELITE) をプログラミングする(WPAN)
NXP JN516X (TWELITE) をプログラミングする(Eclipse-CDT+MWSTAGE)
NXP JN516X (TWELITE) をプログラミングする(乗算と除算)
NXP JN516X (TWELITE) をプログラミングする(マルチタスク)
NXP JN516X (TWELITE) をプログラミングする(フラッシュ・プログラマー)
NXP JN516X (TWELITE) をプログラミングする(OTA UPDATE)
NXP JN516X (TWELITE) をプログラミングする(TWELITE CUE/MC3630)
NXP JN516X (TWELITE) をプログラミングする(LED)
NXP JN516X (TWELITE) をプログラミングする(AES)
NXP JN516X (TWELITE) をプログラミングする(Downloads)