こんにちは。NoMaYです。ライセンスはMIT Licenseでした。TLSとしてmbed TLSが使用されていました。サポートされているボードの写真を見ていたら、どれにも有線LANコネクタが無いことに気付きました。時代の流れでしょうか、、、Getting Started with Amazon FreeRTOSaws.amazon.com/freertos/getting-started/Amazon FreeRTOSaws.amazon.com/freertos/Amazon FreeRTOS ソースコードgithub.com/aws/amazon-freertos[関連リンク]FreeRTOS - freertos.orgwww.freertos.org/FreeRTOS - sourceforge.netsourceforge.net/projects/freertos/files/FreeRTOS kernel自体はCC-RXにも対応github.com/aws/amazon-freertos/tree/master/lib/FreeRTOS/portable/RenesasAmazon FreeRTOSはTLSにmbed TLSを使用github.com/aws/amazon-freertos/tree/master/lib/third_party/mbedtls[ニュース]組み込み業界に大インパクト「Amazon FreeRTOS」の衝撃 - 大原雄介,MONOistmonoist.atmarkit.co.jp/mn/articles/1712/28/news011.htmlアマゾン「AWS IoT」は何が衝撃的なのか - 大原雄介,MONOistmonoist.atmarkit.co.jp/mn/articles/1510/21/news026.html(2018/01/01 : 記事を選び直しました。)[追記]もしかしたら、オープンソースライセンスのドライバライブラリが用意されていないから、ルネサスさんはアマゾンさんに相手にして貰えないのかも、、、ちなみに、FreeRTOS kernel自体のライセンスがV10からModified GPLからMIT Licenseに変わったようです。
こんにちは。NoMaYです。Amazon FreeRTOSでサポートされているボードのWi-Fiモジュールについて調べてみました。(シェルティさんはSTM32L4 Discovery Kit IoT Nodeを注文された、(わわいさんはLPC54018 IoT Moduleに少し興味を持たれた?) ようです。) STM32L4 Discovery Kit IoT NodeのWi-FiモジュールのInventek ISM43362-M3G-L44はDigi-Keyで購入出来るようです。さらに、Amazon FreeRTOSのGitHubのソースを調べると、LPC54018 IoT ModuleのWi-FiモジュールのLongsys GT1216よりも制御プログラムのソース規模が非常に小さかったです。(もっとも、逆に、Longsys GT1216の制御プログラムのソース規模が非常に大きく見えた理由は、それに搭載されているQualcomm QCA4004のSDKが丸ごと何でもかんでも入っていたからだった、というだけのこともあるかも知れませんが。)Microchip Technology IncorporatedCuriosity PIC32MZ EF Development Board (Coming Soon)⇒WiFi 7 click carries the ATWINC1510-MR210PB IEEE 802.11 b/g/n modulewww.mikroe.com/wifi-7-click使用可能な接続方法 : SPIAmazon FreeRTOSのGitHubのソースにコードが全く含まれていない為、それ以上は調査しませんでしたNXP SemiconductorsLPC54018 IoT Module⇒Longsys GT1216 Wi-Fi (IEEE 802.11b/g/n) module based on Qualcomm QCA4004www.longsys-iot.com/portfolio/gt1x16/使用可能な接続方法 : UART, SPI, GPIOAmazon FreeRTOSのGitHubのソースでの接続方法 : SPI (たぶん)Amazon FreeRTOSのGitHubのソース : amazon-freertos-1.0.0\lib\wifi\portable\nxp\lpc54018_iot_module\aws_wifi.camazon-freertos-1.0.0\lib\third_party\mcu_vendor\nxp\LPC54018\middleware\wifi_qca\amazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\common\application_code\nxp_code\pin_mux.*STMicroelectronicsSTM32L4 Discovery Kit IoT Node⇒Wi-Fi® module Inventek ISM43362-M3G-L44 (802.11 b/g/n compliant)www.inventeksys.com/products-page/wifi-modules/ism4336-m3g-l44-e-embedded-serial-to-wifi-module/使用可能な接続方法 : UART, SPIAmazon FreeRTOSのGitHubのソースでの接続方法 : SPI (たぶん)Amazon FreeRTOSのGitHubのソース : amazon-freertos-1.0.0\lib\wifi\portable\st\stm32l475_discovery\aws_wifi.camazon-freertos-1.0.0\lib\third_party\mcu_vendor\st\stm32l475_discovery\BSP\Components\es_wifi\amazon-freertos-1.0.0\demos\st\stm32l475_discovery\common\application_code\st_code\es_wifi_*.*Texas InstrumentsSimpleLink™ Wi-Fi® CC3220SF Wireless Microcontroller LaunchPad™ Development Kit⇒マイコン内蔵Wi-Fiモジュールそれ以上は調査しませんでした[追記]ソースを見ていて思ったのですが、よくよく考えてみると、基本的なI/Oインターフェース(デジタル/アナログ/シリアル/ファイルシステム/等)のAPIが何も規定されていないのは、mbed OS、Zephyr、T-Engine、Arduino(一般的にはOSとして扱われませんが)、等とは異質な存在であるような気がしました。[余談]GR-CITRUS(RX631)ボード+WA-MIKAN(ESP8266)ボードでAmazon FreeRTOSが動いたりなんかすると、ちょっと面白いのかも知れない、と思ったりとか思わなかったりとか、、、
こんにちは。NoMaYです。前の投稿の終わりに書き足した、mbed OS、Zephyr、T-Engine、Arduino(一般的にはOSとして扱われませんが)、等の基本的なI/Oインターフェース(デジタル/アナログ/シリアル/ファイルシステム/等)のAPI、というのは以下のAPI等のことです。このようなAPIはAmazon FreeRTOSでは規定されておらず、各半導体メーカのAPIを使って下さい、ということなのだと思います。ルネサスさんのRXであれば、コード生成機能、FIT、或いはPDG2/RPDL、といったもののAPIをそのまま使い続ければ良い、ということになるのだと思います。mbed OS (公式)os.mbed.com/docs/v5.6/reference/drivers.htmlZephyr (公式)docs.zephyrproject.org/api/io_interfaces.htmlT-Engine (公式)www.tron.org/ja/wp-content/themes/dp-magjam/pdf/specifications/ja/TEF040-S216-01.00.01_ja.pdfwww.tron.org/ja/specifications/Arduino (個人ウェブサイト)garretlab.web.fc2.com/arduino_reference/language/index.htmlちなみに、T-Engineのカーネルの部分(μT-Kernel 2.0)は、どうやらIEEEで世界標準規格になるらしいです。IEEE Standards Association (IEEE-SA) and TRON Forum Sign Agreement to Advance IoT Development and Interoperability - TRON Forum NEWSwww.tron.org/blog/2017/12/ieee-standards-association-ieee-sa-and-tron-forum-sign-agreement-to-advance-iot-development-and-interoperability/T-Kernel最新情報 μT-Kernel 2.0がIEEE標準に! TRONWARE VOL.167発売 (注意: 過去の号です) - トロンフォーラム ニュースwww.tron.org/ja/2017/10/post-3324/IoT対応「トロン」OS、IEEEの世界標準に トロンフォーラムが著作権譲渡 - 日刊工業新聞 電子版www.nikkan.co.jp/articles/view/00453976あと、ウェブで調べ物をしていて、Amazon FreeRTOSのスライドが公開されていることに気付きました。Amazonの公式のもののようでしたので、リンクを貼りました。NEW LAUNCH! Amazon FreeRTOS: IoT Operating System for Microcontrollers - IOT212 - re:Invent 2017 www.slideshare.net/AmazonWebServices/new-launch-amazon-freertos-iot-operating-system-for-microcontrollers-iot212-reinvent-2017
こんにちは。NoMaYです。以前に、Amazon FreeRTOSのDemoプロジェクトがEclipseの仮想フォルダやリンクされたフォルダという機能を使ったプロジェクトのようでしたので、それがどんな感じのものであるか分かるようにe2 studio (v6.1.0)のプロジェクトを無理矢理作ってみました。ですが、感じは分かったものの、全くコンパイル出来ませんでした。そこでプロジェクト設定を詰めてみたところ、それなりにCC-RXでコンパイルが進むようになりましたので、以下のzipファイルに固めてみました。(どのように詰めたのかを後ほど投稿します。またCS+のプロジェクト設定も同様に詰めて後日投稿しようとは思っています。)aws_demos_renesas_rx_mcu_experiment_20171218.zipなお、まだコンパイル出来ないソースはありますし、そもそもMCU依存部やボード依存部を作らないとリンク出来ません。更に、e2 studioでは毎度お馴染みのトラブルですが、メイク機能が誤動作して毎回全ビルドになってしまいます。かふぇルネへの過去の投稿を読み直してみようと思っています。添付したzipファイルでは、Amazon FreeRTOS 1.0.0のフォルダに統合しやすいように、以下のフォルダ構成にしてみました。他から持って来たソースは以下の通りです。なお、STM32L4 Discovery Kit IoT NodeのSTMicroelectronics社のソースには、STMicroelectronics社のMCUやMPUでしか使ってはいけません、という条項が付いていましたので、それらのものを持って来るのは避けるようにしました。demos\renesas\rx231-rsk\common\config_files\*.* ← amazon-freertos-1.0.0\demos\st\stm32l475_discovery\common\config_files\*.*(持って来たのはSTM32L4 Discovery Kit IoT NodeですがCopyright (C) 2017 Amazon.com, Inc.のものです。)demos\renesas\rx231-rsk\common\config_files\FreeRTOSConfig.h ← FreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\src\FreeRTOSConfig.h(FreeRTOSConfig.hでは、足りない定義をSTM32L4 Discovery Kit IoT NodeのCopyright (C) 2017 Amazon.com, Inc.のものから持って来たり、GCC特有の記述をCC-RXでコンパイル出来るような細工をひとまず追加したり、といったこともしました。)demos\renesas\rx231-rsk\common\application_code\main.c ← amazon-freertos-1.0.0\demos\vendor\board\common\application_code\main.cdemos\renesas\rx231-rsk\common\application_code\iodefine.h ← r_bsp\mcu\rx231\register_access\iodefine.h(FreeRTOS kernelのソースがiodefine.hをインクルードしているので、ひとまずコピペすることにしました)demos\renesas\rx231-rsk\common\application_code\time.h ← 今回作成(中身の無いダミーファイルです)(mbedTLSのソースがtime.hをインクルードしているのですが、CC-RXには無く、試してみると中身は無しでも構わないようでしたので、ひとまず中身の無いダミーファイルを作成しました)以下のフォルダは空にしました。なぜなら、e2 studioの場合、ルネサスさんのRXで、コード生成機能、FIT、或いはPDG2、といったものを使った時は、プロジェクトフォルダの下にコードが生成されますので、そこにそのまま置いておく方が楽そうな気がしたからです。demos\renesas\rx231-rsk\common\application_code\renesas_code\(Amazon FreeRTOSのソースでは半導体メーカのBSPの初期化コードを置くことを想定している気がします)lib\third_party\mcu_vendor\renesas\rx231-rsk\(Amazon FreeRTOSのソースでは半導体メーカのBSPを置くことを想定している気がします)添付したzipファイルのプロジェクトでは、FITやコード生成機能のソースを生成出来るようにしてみました。とはいえ、Amazon FreeRTOSと繋ぐコードが無いですので、生成出来るようになっているというだけです。(手元でビルドした時には試しに幾つか生成させてビルドしてみましたが、単にそれだけですので、添付したzipファイルではファイルを削除してフォルダのみ残しました。ところが、後になって気付いたのですが、フォルダが残っているとFITでコード生成させる時に誤動作するようですので、その場合は、フォルダを削除してからコード生成させないといけないようです。)手元でビルドした時のビルドログは以下の通りです。(先に添付したzipファイルのプロジェクトではCC-RX V2.07を使う設定になっていますが、当方特有の事情でCC-RX V2.03でビルドした時のものです。)aws_demos_renesas_rx_mcu_experiment_build_log_20171218.zip[関連リンク]生成されたコードを公開((再)配布)してもよいコード生成支援ツールの種類のまとめjapan.renesasrulz.com/cafe_rene/f/forum21/4302/threadCS+が生成したcstart.asm/stkinit.asm/hdwinit.asm/iodefine.hは公開(再配布)可能ですか?japan.renesasrulz.com/cafe_rene/f/forum21/4014/cs-cstart-asm-stkinit-asm-hdwinit-asm-iodefine-h
こんにちは。NoMaYです。Amazon FreeRTOSのDemoプロジェクトで、e2 studio (v6.1.0)のプロジェクトとして無理矢理作ってみましたが、以下のようにプロジェクト設定を詰めたところ、それなりにCC-RXでコンパイルが進むようになりました。(なお、今改めて考えると、(1)~(5)がミソだったのですが、(6)~(9)はオマケでした。)(1) フォルダの設定が[ビルドから除外]になっていたのを解除する(2) リンクされたフォルダのパス(およびフォルダの名前)を変更する(3) フォルダの除外設定を行う(4) コンパイル時のインクルードパスを設定する(変更する)(5) コンパイル時のマクロ定義を設定する(そのまま)(6) コンパイルエラーがあってもビルドを継続する設定にする(7) プログラム名を設定する(8) 試しにFITでコード生成させてみた(9) 試しにコード生成機能でコード生成させてみた
(1) フォルダの設定が[ビルドから除外]になっていたのを解除するこれが原因で全くコンパイル出来ませんでした。(今改めて考えると、「全くコンパイル出来なかった」と言うよりは「全くコンパイルが行われなかった」と言うべきだった気がします。)解除前:解除後:手順:
(2) リンクされたフォルダのパス(およびフォルダの名前)を変更するAmazon FreeRTOSのDemoプロジェクトはEclipseのリンクされたフォルダという機能を使っていますが、そのリンクされたリソースのロケーションをプロジェクトのプロパティで変更しました。ひとまず青枠で囲ったもののみを変更しました。ややこしいのは、Eclipseの仕様として、リンクされたリソースのリソース名をプロジェクトのプロパティでは変更出来ないようなのです。ですので、それはプロジェクトエクスプローラ上で変更しました。赤枠で囲った部分のことです。変更前:変更後:変更箇所:
(3) フォルダの除外設定を行うAmazon FreeRTOSのDemoプロジェクトに含まれるFreeRTOS kernalの部分は、Eclipseのリソースフィルターという機能を使ってコンパイルするソースを選ぶようになっていました。そこで、フォルダのプロパティでリソースフィルターの設定を変更して、コンパイルするソースを切り替えました。変更前:変更後:手順1:手順2:手順3:リソースフィルタを編集するダイアログの画面:
(4) コンパイル時のインクルードパスを設定する(変更する)Amazon FreeRTOSのDemoプロジェクトのインクルードパスの設定を(たとえ無理矢理にしろ)e2 studio上から確認する方法を思い付きませんでした。ですので、Demoプロジェクトに含まれるそれぞれの統合開発環境の環境設定ファイルをエディタで開いて確認しました。また、FreeRTOS kernelのDemoプロジェクトのRX231のインクルードパスの設定も確認しました。さらに、ルネサスさんのRXのコード生成機能やFITのことも考え、以下のインクルードパスを設定することにしました。また、今後のことも考え、e2 studioにインクルードパスのデータをインポートするxmlファイルもエクスポートしてみました。${TCINSTALL}/include/${ProjName}//${ProjName}/config_files/${ProjName}/application_code/${ProjName}/application_code/renesas_code/${ProjName}/application_code/common_demos/include/${ProjName}/lib/aws/include/${ProjName}/lib/aws/include/private/${ProjName}/lib/aws/FreeRTOS/portable/Renesas/RX600v2/${ProjName}/lib/third_party/jsmn/${ProjName}/lib/third_party/pkcs11/${ProjName}/lib/third_party/mbedtls/include/${ProjName}/src/${ProjName}/src/cg_src/${ProjName}/r_bsp/${ProjName}/r_configインポートデータ:AmazonFreeRTOS_RenesasRX_e2studio6_IncludePaths.xml参考にした情報:amazon-freertos-1.0.0\demos\st\stm32l475_discovery\ac6\.cprojectamazon-freertos-1.0.0\demos\ti\cc3220_launchpad\ccs\.cprojectamazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\iar\aws_demos.ewpamazon-freertos-1.0.0\demos\pc\windows\visual_studio\aws_demos.vcxprojFreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\.cproject
■ amazon-freertos-1.0.0\demos\st\stm32l475_discovery\ac6\.cproject <option id="gnu.c.compiler.option.include.paths.1847441575" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/config_files}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/application_code}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/application_code/st_code}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/application_code/common_demos/include}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/aws/include}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/aws/include/private}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/aws/FreeRTOS/portable/GCC/ARM_CM4F}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/jsmn}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/pkcs11}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mbedtls/include}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/STM32L4xx_HAL_Driver/Inc}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/STM32L4xx_HAL_Driver/Inc/Legacy}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/CMSIS/Include}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/CMSIS/Device/ST/STM32L4xx/Include}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/B-L475E-IOT01}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/Common}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/hts221}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/lis3mdl}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/lps22hb}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/lsm6dsl}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/vl53l0x}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/es_wifi}""/> </option> ■ amazon-freertos-1.0.0\demos\ti\cc3220_launchpad\ccs\.cproject <option id="com.ti.ccstudio.buildDefinitions.TMS470_16.9.compilerID.INCLUDE_PATH.1680333660" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_16.9.compilerID.INCLUDE_PATH" valueType="includePath"> <listOptionValue builtIn="false" value="${TREADSTONE_ROOT}/lib/third_party/mcu_vendor/ti/SimpleLink_CC32xx/v1_40_01_00/source"/> <listOptionValue builtIn="false" value="${TREADSTONE_ROOT}/lib/third_party/mcu_vendor/ti/SimpleLink_CC32xx/v1_40_01_00/source/ti/drivers/net/wifi"/> <listOptionValue builtIn="false" value="${TREADSTONE_ROOT}/lib/third_party/mcu_vendor/ti/SimpleLink_CC32xx/v1_40_01_00/kernel/freertos/posix"/> <listOptionValue builtIn="false" value="${TREADSTONE_ROOT}/lib/third_party/mcu_vendor/ti/SimpleLink_CC32xx/v1_40_01_00/kernel/freertos/posix/sys"/> <listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/> <listOptionValue builtIn="false" value="${PROJECT_ROOT}"/> <listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/config_files}"/> <listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/lib/aws/include}"/> <listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/lib/aws/include/private}"/> <listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/application_code/ti_code}"/> <listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/application_code/common_demos/include}"/> <listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/lib/aws/FreeRTOS/portable/CCS/ARM_CM3}"/> <listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/lib/third_party/jsmn}"/> <listOptionValue builtIn="false" value="${TREADSTONE_ROOT}/lib/third_party/pkcs11"/> </option> ■ amazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\iar\aws_demos.ewp <option> <name>CCIncludePath2</name> <state>$PROJ_DIR$</state> <state>$PROJ_DIR$/../common/application_code/nxp_code</state> <state>$PROJ_DIR$/../../../../lib/third_party/mcu_vendor/nxp/LPC54018</state> <state>$PROJ_DIR$/../../../../lib/third_party/mcu_vendor/nxp/LPC54018/drivers</state> <state>$PROJ_DIR$/../../../../lib/third_party/mcu_vendor/nxp/LPC54018/drivers/common</state> <state>$PROJ_DIR$/../../../../lib/third_party/mcu_vendor/nxp/LPC54018/utilities</state> <state>$PROJ_DIR$/../../../../lib/third_party/mcu_vendor/nxp/LPC54018/utilities/debug_console</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mbedtls\include</state> <state>$PROJ_DIR$\..\..\..\..\lib\include</state> <state>$PROJ_DIR$\..\..\..\..\lib\include\private</state> <state>$PROJ_DIR$\..\common\config_files</state> <state>$PROJ_DIR$\..\..\..\..\lib\FreeRTOS\portable\IAR\ARM_CM4F</state> <state>$PROJ_DIR$\..\..\..\common\include</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\jsmn</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\pkcs11</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\utilities\log</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\utilities\io</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\utilities\str</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/port/boards/clickbrd_tread/freertos/gt202</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/port/boards/clickbrd_tread/freertos</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/port/env/freertos</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/include</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/include/AR6002</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/include/AR6002/hw2.0/hw</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/include/AR6002/hw4.0/hw</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/custom_src/stack_custom</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/custom_src/include</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/common_src/include</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/common_src/stack_common</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/common_src/hcd</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/common_src/wmi</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/port</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/wifi_qca/port/drivers/flexcomm_freertos</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/usb/device</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/usb/include</state> <state>$PROJ_DIR$\..\..\..\..\lib\third_party\mcu_vendor\nxp\LPC54018\middleware/usb/osa</state> </option> ■ amazon-freertos-1.0.0\demos\pc\windows\visual_studio\aws_demos.vcxproj <AdditionalIncludeDirectories>..\common\win_pcap;..\common\config_files;..\common\application_code\include;..\..\..\..\demos\common\include;..\..\..\..\lib\include;..\..\..\..\lib\include\private;..\..\..\..\lib\FreeRTOS\include;..\..\..\..\lib\FreeRTOS\portable\MSVC-MingW;..\..\..\..\lib\FreeRTOS-Plus-TCP\include;..\..\..\..\lib\FreeRTOS-Plus-TCP\Source\portable\BufferManagement;..\..\..\..\lib\FreeRTOS-Plus-TCP\Source\portable\Compiler\MSVC;..\..\..\..\lib\third_party\mbedtls\include;..\..\..\..\lib\third_party\tracealyzer_recorder\Include;..\..\..\..\lib\third_party\jsmn;..\..\..\..\lib\third_party\pkcs11;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> このままでは見辛いので改行を入れました <AdditionalIncludeDirectories> ..\common\win_pcap; ..\common\config_files; ..\common\application_code\include; ..\..\..\..\demos\common\include; ..\..\..\..\lib\include; ..\..\..\..\lib\include\private; ..\..\..\..\lib\FreeRTOS\include; ..\..\..\..\lib\FreeRTOS\portable\MSVC-MingW; ..\..\..\..\lib\FreeRTOS-Plus-TCP\include; ..\..\..\..\lib\FreeRTOS-Plus-TCP\Source\portable\BufferManagement; ..\..\..\..\lib\FreeRTOS-Plus-TCP\Source\portable\Compiler\MSVC; ..\..\..\..\lib\third_party\mbedtls\include; ..\..\..\..\lib\third_party\tracealyzer_recorder\Include; ..\..\..\..\lib\third_party\jsmn; ..\..\..\..\lib\third_party\pkcs11; %(AdditionalIncludeDirectories) </AdditionalIncludeDirectories> ■ FreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\.cproject <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.renesas.Compiler.option.incFileDirectories.1913911194" name="Include file directories" superClass="com.renesas.cdt.renesas.Compiler.option.incFileDirectories" valueType="includePath"> <listOptionValue builtIn="false" value=""${TCINSTALL}/include""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/Full_Demo}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/Full_Demo/Standard_Demo_Tasks/include}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/Renesas_Code}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FreeRTOS_Source/portable/Renesas/RX600v2}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FreeRTOS_Source/include}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/> </option>
(5) コンパイル時のマクロ定義を設定する(そのまま)こちらも(4)のインクルードパスと同じく、Amazon FreeRTOSのDemoプロジェクトのマクロ定義の設定を(たとえ無理矢理にしろ)e2 studio上から確認する方法を思い付きませんでした。ですので同じく、Demoプロジェクトに含まれるそれぞれの統合開発環境の環境設定ファイルをエディタで開いて確認しました。また、FreeRTOS kernelのDemoプロジェクトのRX231のマクロ定義の設定も確認しました。なお、ルネサスさんのRXのコード生成機能やFITでは特にコンパイル時のマクロ定義は使われていなかったと思います。そして、以下のマクロ定義を設定することにしました。(というか、無理矢理作ったプロジェクトで既にそうなっています。) また、今後増えるかも知れないと考え、e2 studioにマクロ定義のパスのデータをインポートするxmlファイルもエクスポートしてみました。(ちょっと無理矢理な動機付けですが、(4)のインクルードパスに対してやったのと同じことをやっておきたかった、ということなのです。)__RXインポートデータ:AmazonFreeRTOS_RenesasRX_e2studio6_Macros.xml参考にした情報:amazon-freertos-1.0.0\demos\st\stm32l475_discovery\ac6\.cprojectamazon-freertos-1.0.0\demos\ti\cc3220_launchpad\ccs\.cprojectamazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\iar\aws_demos.ewpamazon-freertos-1.0.0\demos\pc\windows\visual_studio\aws_demos.vcxprojFreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\.cproject
■ amazon-freertos-1.0.0\demos\st\stm32l475_discovery\ac6\.cproject <option id="gnu.c.compiler.option.preprocessor.def.symbols.1779062689" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> <listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> <listOptionValue builtIn="false" value="STM32L475xx"/> <listOptionValue builtIn="false" value="MQTTCLIENT_PLATFORM_HEADER=MQTTCMSIS.h"/> <listOptionValue builtIn="false" value="ENABLE_IOT_INFO"/> <listOptionValue builtIn="false" value="ENABLE_IOT_ERROR"/> <listOptionValue builtIn="false" value="SENSOR"/> <listOptionValue builtIn="false" value="RFU"/> </option> ■ amazon-freertos-1.0.0\demos\ti\cc3220_launchpad\ccs\.cproject <option id="com.ti.ccstudio.buildDefinitions.TMS470_16.9.compilerID.DEFINE.1149275802" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_16.9.compilerID.DEFINE" valueType="definedSymbols"> <listOptionValue builtIn="false" value="CC3220sf"/> </option> ■ amazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\iar\aws_demos.ewp <option> <name>CCDefines</name> <state>DEBUG</state> <state>CPU_LPC54018</state> <state>CPU_LPC54018JET180=1</state> <state>BOARD_USE_VIRTUALCOM</state> <state>USB_STACK_FREERTOS</state> <state>USB_DEVICE_CONFIG_LPCIP3511HS=1</state> <state>USB_STACK_USE_DEDICATED_RAM=1</state> <state>USE_RTOS=1</state> <state>MBEDTLS_CONFIG_FILE="aws_mbedtls_config.h"</state> <state>FSL_RTOS_FREE_RTOS</state> <state>A_LITTLE_ENDIAN</state> </option> ■ amazon-freertos-1.0.0\demos\pc\windows\visual_studio\aws_demos.vcxproj <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;__PRETTY_FUNCTION__=__FUNCTION__;%(PreprocessorDefinitions)</PreprocessorDefinitions> このままでは見辛いので改行を入れました <PreprocessorDefinitions> WIN32; _DEBUG; _CONSOLE; _WIN32_WINNT=0x0500; WINVER=0x400; _CRT_SECURE_NO_WARNINGS; __PRETTY_FUNCTION__=__FUNCTION__; %(PreprocessorDefinitions) </PreprocessorDefinitions> ■ FreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\.cproject <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.renesas.Compiler.option.defines.1356205858" name="Defines" superClass="com.renesas.cdt.renesas.Compiler.option.defines" valueType="definedSymbols"> <listOptionValue builtIn="false" value="__RX"/> </option>
(6) コンパイルエラーがあってもビルドを継続する設定にするコンパイル出来るようにする作業の時は、コンパイルエラーで即停止するより、この方が効率が良いと思うからです。[最初のビルド・エラーで停止]のチェックを外す
(7) プログラム名を設定する今改めて考えると、そもそもMCU依存部やボード依存部を作らないとリンク出来ませんので、現時点で設定しておく必要は無かったと思います、、、aws_demo
(8) 試しにFITでコード生成させてみた試しです。
(9) 試しにコード生成機能でコード生成させてみた試しです。
こんにちは。NoMaYです。Amazon FreeRTOSのDemoプロジェクトで、e2 studio (v6.1.0)のプロジェクトとして無理矢理作ってみましたが、それなりにCC-RXでコンパイルが進むようになったので、それをCS+ for CC (V6.00.00(2017/10/05版))のプロジェクトに変換してみました。Amazon FreeRTOSのDemoプロジェクトはEclipseの仮想フォルダやリンクされたフォルダという機能を使ったプロジェクトなのですが、これらの機能はソースパスの指定だけでなくインクルードパスの指定にも使われています。残念ながら、e2 studio→CS+のプロジェクト変換では、ソースパスはリアルのパスへ変換されるのに対し、インクルードパスはリアルのパスへは変換されず、コンパイルエラーが大量に発生しました。そこで、CS+上で手作業でインクルードパスを修正したところ、e2 studioと同様にCS+でも、それなりにCC-RXでコンパイルが進むようになりました。e2 studioのプロジェクトでは、今のところ、インクルードパスは以下の設定になっています。${TCINSTALL}/include/${ProjName}//${ProjName}/config_files/${ProjName}/application_code/${ProjName}/application_code/renesas_code/${ProjName}/application_code/common_demos/include/${ProjName}/lib/aws/include/${ProjName}/lib/aws/include/private/${ProjName}/lib/aws/FreeRTOS/portable/Renesas/RX600v2/${ProjName}/lib/third_party/jsmn/${ProjName}/lib/third_party/pkcs11/${ProjName}/lib/third_party/mbedtls/include/${ProjName}/src/${ProjName}/src/cg_src/${ProjName}/r_bsp/${ProjName}/r_config/${ProjName}/r_rspi_rx/${ProjName}/r_rspi_rx/src/${ProjName}/r_pincfgCS+のプロジェクトでは、上のインクルードパスの設定が素朴に以下の設定に変換されていました。..\%ProjectName%..\%ProjectName%\config_files..\%ProjectName%\application_code..\%ProjectName%\application_code\renesas_code..\%ProjectName%\application_code\common_demos\include..\%ProjectName%\lib\aws\include..\%ProjectName%\lib\aws\include\private..\%ProjectName%\lib\aws\FreeRTOS\portable\Renesas\RX600v2..\%ProjectName%\lib\third_party\jsmn..\%ProjectName%\lib\third_party\pkcs11..\%ProjectName%\lib\third_party\mbedtls\include..\%ProjectName%\src..\%ProjectName%\src\cg_src..\%ProjectName%\r_bsp..\%ProjectName%\r_config..\%ProjectName%\r_rspi_rx..\%ProjectName%\r_rspi_rx\src..\%ProjectName%\r_pincfg以下はe2 studioのビルドログから抜き出したものですが、mbed TLSのソースの1つがコンパイルされる時のCC-RXのコマンドの全体とその中のインクルードパスの部分(を個々に改行して見易くしたもの)です。上の素朴に変換されたパスと以下のリアルのパスを見比べると、一致していないことが分かります。(ちなみに、今回は%ProjectName%がaws_demosですので、ぶっちゃけ、まるで見当外れのパスになっていますが、、、)
'Scanning and building file: C:/Renesas/AmazonFreeRTOS/amazon-freertos-1.0.0/lib/third_party/mbedtls/library/aes.c''Invoking: Scanner and Compiler'ccrx -MM -MP -output=dep="lib/third_party/mbedtls/source/aes.d" -MT="lib/third_party/mbedtls/source/aes.obj" -MT="lib/third_party/mbedtls/source/aes.d" -isa=rxv2 -fpu -include="C:\Renesas\CS+\CC\CC-RX\V2.03.00\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\config_files","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\application_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\application_code\renesas_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\common\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\include\private","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\FreeRTOS\portable\Renesas\RX600v2","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\third_party\jsmn","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\third_party\pkcs11","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\third_party\mbedtls\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\src\cg_src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_bsp","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_config","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_rspi_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_rspi_rx\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_pincfg" -define=__RX -lang=c99 -nomessage -debug -optimize=0 -speed -nologo -nologo "C:/Renesas/AmazonFreeRTOS/amazon-freertos-1.0.0/lib/third_party/mbedtls/library/aes.c"ccrx -isa=rxv2 -fpu -include="C:\Renesas\CS+\CC\CC-RX\V2.03.00\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\config_files","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\application_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\application_code\renesas_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\common\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\include\private","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\FreeRTOS\portable\Renesas\RX600v2","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\third_party\jsmn","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\third_party\pkcs11","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\third_party\mbedtls\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\src\cg_src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_bsp","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_config","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_rspi_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_rspi_rx\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_pincfg" -define=__RX -lang=c99 -nomessage -output=obj -obj_path="lib/third_party/mbedtls/source" -debug -optimize=0 -speed -nologo -nologo "C:/Renesas/AmazonFreeRTOS/amazon-freertos-1.0.0/lib/third_party/mbedtls/library/aes.c"'Finished Scanning and building: C:/Renesas/AmazonFreeRTOS/amazon-freertos-1.0.0/lib/third_party/mbedtls/library/aes.c'
-include="C:\Renesas\CS+\CC\CC-RX\V2.03.00\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6", ← mtpjファイルがあるのはココ"C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\config_files","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\application_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\application_code\renesas_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\common\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\include\private","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\FreeRTOS\portable\Renesas\RX600v2","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\third_party\jsmn","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\third_party\pkcs11","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\lib\third_party\mbedtls\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\src\cg_src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_bsp","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_config","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_rspi_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_rspi_rx\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\r_pincfg"
そこで、以下の通りにインクルードパスを修正しました。(.\は明示的に書く必要はありませんが修正箇所を分かり易くする為に付けました。)...\common\config_files..\common\application_code..\common\application_code\renesas_code..\..\..\..\demos\common\include..\..\..\..\lib\include..\..\..\..\lib\include\private..\..\..\..\lib\FreeRTOS\portable\Renesas\RX600v2..\..\..\..\lib\third_party\jsmn..\..\..\..\lib\third_party\pkcs11..\..\..\..\lib\third_party\mbedtls\include.\src.\src\cg_src.\r_bsp.\r_config.\r_rspi_rx.\r_rspi_rx\src.\r_pincfg以下、画面コピーです。e2 studioのプロジェクトのインクルードパス修正前のCS+のプロジェクトのインクルードパス修正後のCS+のプロジェクトのインクルードパスProjectNameはaws_demosですので注意なお、CS+でも、理由は異なりますが、メイク機能が誤動作して毎回全ビルドになってしまうトラブルが発生しましたので、以下の通りにプロジェクトの設定を変更しました。(e2 studioのプロジェクトも、トラブルを解決出来ましたので、zipファイルに固めて後ほど投稿します。ちなみに、原因は自分の作業ミスでした。)[インクルード・ファイルが存在しないソースの扱い] を [再コンパイル/アセンブルしない] に変更
こんにちは。NoMaYです。Amazon FreeRTOSのDemoプロジェクトで、無理矢理作ってみたとは言え、それなりにCC-RXでコンパイルが進むようになったe2 studio v6とCS+ for CCのプロジェクトを以下のzipファイルに固めてみました。なお、以下のzipファイルでは、以前の投稿のaws_demos_renesas_rx_mcu_experiment_20171218.zipで発生していたメイク機能が誤動作して毎回全ビルドになってしまうトラブルを解決したe2 studio v6のプロジェクトに修正して、その時の「他から持って来たソース」と一緒に固めています。(また、その時から追加のソースは無いです。)aws_demos_renesas_rx_mcu_experiment_20171224.zipCS+のプロジェクトファイルは以下のフォルダに置きました。なお、先ほどの以前の投稿のaws_demos_renesas_rx_mcu_experiment_20171218.zipと同じく、このzipファイルでもFITやコード生成機能で生成されたソースを削除してフォルダのみ残しました。その為、CS+のプロジェクトでは、それらのフォルダのソースについては以下のようにビルドから除外しました。(e2 studioではソースが無ければ単に無いというだけですが、CS+ではソースが無いとエラーが発生するので以下のようにしました。)手元でビルドした時のビルドログは以下の通りです。(上に添付したzipファイルのプロジェクトではCC-RX V2.07を使う設定になっていますが、当方特有の事情でCC-RX V2.03でビルドした時のものです。ちょっと紛らわしいですが、この時にはFITやコード生成機能で生成されたソースともどもビルドしていました。)aws_demos_renesas_rx_mcu_experiment_csp_build_log_20171224.zipaws_demos_renesas_rx_mcu_experiment_e2studio6_build_log_20171224.zip
こんにちは。NoMaYです。GitHubのAmazon FreeRTOSのソースコードがV1.1.0になり、Microchip Curiosity PIC32MZEFのソースが追加されたり、OTA Agentのベータ版が追加されたり、といった変更が行われていました。Amazon FreeRTOS ソースコードgithub.com/aws/amazon-freertosAmazon FreeRTOS V1.1.0 変更点github.com/aws/amazon-freertos/blob/master/change_log.txt以下、その一部です。
OTA Agent V0.9.0 Beta release of OTA Update library for Amazon FreeRTOS. Includes supportfor the Texas Instruments CC3220SF-LAUNCHXL and Windows Simulator.
ちなみに、Amazon FreeRTOSのソースコードに含まれる各半導体メーカのHALやBSPなどのライセンスは以下のようになっていました。(それぞれの後に続く免責の文面はリンク先のソースを参照して下さい。)Microchip Technology Inc.github.com/aws/amazon-freertos/blob/master/lib/third_party/mcu_vendor/microchip/harmony/v2.04/bsp/bsp.h
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
↑MITライセンスgithub.com/aws/amazon-freertos/blob/master/lib/third_party/mcu_vendor/microchip/harmony/v2.04/framework/driver/driver.h
Microchip licenses to you the right to use, modify, copy and distributeSoftware only when embedded on a Microchip microcontroller or digital signalcontroller that is integrated into your product or third party product(pursuant to the sublicense terms in the accompanying license agreement).You should refer to the license agreement accompanying this Software foradditional information regarding your rights and obligations.
↑独自ライセンス(ですがMicrochip社のMCUやDSCで使うのであれば使用、変更、複製、配布は出来る)NXPgithub.com/aws/amazon-freertos/blob/master/lib/third_party/mcu_vendor/nxp/LPC54018/project_template/board.h
* Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, this list * of conditions and the following disclaimer. * * o Redistributions in binary form must reproduce the above copyright notice, this * list of conditions and the following disclaimer in the documentation and/or * other materials provided with the distribution. * * o Neither the name of the copyright holder nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission.
↑三条項BSDライセンスSTMicroelectronicsgithub.com/aws/amazon-freertos/blob/master/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/B-L475E-IOT01/stm32l475e_iot01.h
* Redistribution and use in source and binary forms, with or without * modification, are permitted, provided that the following conditions are met: * * 1. Redistribution of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of STMicroelectronics nor the names of other * contributors to this software may be used to endorse or promote products * derived from this software without specific written permission. * 4. This software, including modifications and/or derivative works of this * software, must execute solely and exclusively on microcontroller or * microprocessor devices manufactured by or for STMicroelectronics. * 5. Redistribution and use of this software other than as permitted under * this license is void and will automatically terminate your rights under * this license.
↑三条項BSDライセンスにSTMicroelectronics社のMCUやMPUでしか使ってはいけませんという条項を付けたものgithub.com/aws/amazon-freertos/blob/master/lib/third_party/mcu_vendor/st/stm32l475_discovery/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h
* Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of STMicroelectronics nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission.
↑三条項BSDライセンスTexas Instrumentsgithub.com/aws/amazon-freertos/blob/master/lib/third_party/mcu_vendor/ti/SimpleLink_CC32xx/v1_40_01_00/source/ti/boards/CC3220SF_LAUNCHXL/Board.h
* Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of Texas Instruments Incorporated nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission.
↑三条項BSDライセンス
こんにちは。NoMaYです。ウェブで調べ物をしていて、github.ioにYutaka Katoさんという人が『STM32L4 Discovery Kit IoT Node に Amazon FreeRTOS を導入する』という投稿をされていることに気付きました。「Amazon FreeRTOS」と「AWS IoT」を始めるやり方を知るのに役立ちそうでしたので、リンクを投稿してみました。STM32L4 Discovery Kit IoT Node に Amazon FreeRTOS を導入する - Yutaka Katomikan.github.io/2017/12/13/setup-amazon-freertos-on-stm32l4-discovery-kit-iot-node/少し調べてみたのですが、クラウド側には、Amazon FreeRTOSのダウンロードページの他には、Amazon FreeRTOS専用のサービスが用意されている訳ではなくて、既存のAWS IoT / AWS IoT Coreというものを使うらしいです。AWS IoT Coreaws.amazon.com/jp/iot-core/aws.amazon.com/jp/iot-core/features/aws.amazon.com/jp/iot-core/pricing/aws.amazon.com/jp/iot-core/getting-started/ ← ルネサスさんのYRDKRX63Nも載ってました(MicriumのRTOSを使う)aws.amazon.com/jp/iot-core/resources/[関連リンク]Micrium/Renesas AWS IoT Getting Startedgithub.com/micrium/awsiot[余談]別スレッドでも引用したデータ(ちょっと古い)ですが、EE TimesというところとUBM Electronicsというところが、2015年(と2014年)にアンケート調査(だと思う)した結果の各RTOS(というかRTOSでは無いものも込みで)のシェアだそうです。(なお、Micriumの広報とEE Timesの記事の中に含まれていたものです。)2015 UBM Electronics study広報タイトル: Micrium RTOS Kernels are #1 in 2015 — UBM Survey調査結果: www.micrium.com/ubm2015/#foobox-1/0/ubm_os_in_use.png2015 EE Times study (同じデータのようです)記事タイトル: ARM Flexes Mbed, RTOSes Respond (EE Times 2015/11/13)調査結果: www.eetimes.com/document.asp?doc_id=1328259&image_number=12015年のデータで言えば FreeRTOS+Micrium(uC/OS-II)+Micrium(uC/OS-III)=22%+19%+8%=49% になりますね。[追記]あと、Amazonの「AWS IoT Coreの開始方法」のスターターキットの一覧と「UBM Survey」 / 「EE Times study」の両方に名前が載っているRTOSとしてTI-RTOSもありました。これは2015年のデータで言えば3%になってました。