こんにちは。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の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ファイルに固めて後ほど投稿します。ちなみに、原因は自分の作業ミスでした。)[インクルード・ファイルが存在しないソースの扱い] を [再コンパイル/アセンブルしない] に変更