Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

Amazon FreeRTOSだそうです。ルネサスさんのRXは参加しないのかな?

こんにちは。NoMaYです。

ライセンスはMIT Licenseでした。TLSとしてmbed TLSが使用されていました。サポートされているボードの写真を見ていたら、どれにも有線LANコネクタが無いことに気付きました。時代の流れでしょうか、、、

Getting Started with Amazon FreeRTOS
aws.amazon.com/freertos/getting-started/

Amazon FreeRTOS
aws.amazon.com/freertos/

Amazon FreeRTOS ソースコード
github.com/aws/amazon-freertos

[関連リンク]

FreeRTOS - freertos.org
www.freertos.org/

FreeRTOS - sourceforge.net
sourceforge.net/projects/freertos/files/

FreeRTOS kernel自体はCC-RXにも対応
github.com/aws/amazon-freertos/tree/master/lib/FreeRTOS/portable/Renesas

Amazon FreeRTOSはTLSにmbed TLSを使用
github.com/aws/amazon-freertos/tree/master/lib/third_party/mbedtls

[ニュース]

組み込み業界に大インパクト「Amazon FreeRTOS」の衝撃 - 大原雄介,MONOist
monoist.atmarkit.co.jp/mn/articles/1712/28/news011.html

アマゾン「AWS IoT」は何が衝撃的なのか - 大原雄介,MONOist
monoist.atmarkit.co.jp/mn/articles/1510/21/news026.html

(2018/01/01 : 記事を選び直しました。)

[追記]

もしかしたら、オープンソースライセンスのドライバライブラリが用意されていないから、ルネサスさんはアマゾンさんに相手にして貰えないのかも、、、

ちなみに、FreeRTOS kernel自体のライセンスがV10からModified GPLからMIT Licenseに変わったようです。

  • わわいです
    あらら、、FreeRTOSをフォークしてるだけだと思ったら取得してしまったのね。

    opensource.srad.jp/.../

    #ソースをDLしようとしたらクレジットカード番号が必要だったでござるの巻
  • In reply to わわい:

    わわいさん、こんにちは。NoMaYです。

    あっ、確かにFreeRTOS kernelのソースのCopyright (C)がAmazon.com, Incになってますね。そこまでは気付かなかったです。ところで、ソースをDLしようとしてクレジットカード番号を要求されたというURLはどこでしょうか?(ひょっとして、私、Amazon FreeRTOSのソースについて勘違いしているのかな、、、)

    github.com/aws/amazon-freertos/blob/master/lib/FreeRTOS/tasks.c

     * FreeRTOS Kernel V10.0.0
     * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.

    sourceforge.net/p/freertos/code/HEAD/tree/trunk/FreeRTOS/Source/tasks.c

     * FreeRTOS Kernel V10.0.0
     * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.

     

  • In reply to NoMaY:

    わわいです
    ああ、githubにもあがってたのね。。
    アマゾンのページからたぐってったら、AmazonAWSのアカウント作らんとという話で、そこでクレジットカード番号がw
    まー、入会特典で12ヶ月のAmazonAWS無料使用権がついてきてるんだけど、なにしよーか。
  • ちゅーたです。

    開発者のRichard BarryさんはAWS Teamとして活動するのかー。
    (2012年のRenesas DevConでBarryさんと会ったのは懐かしいおもひで・・)

    The FreeRTOS kernel was originally developed by Richard Barry around 2003, and was later developed and maintained by Richard's company, Real Time Engineers Ltd. FreeRTOS was a runaway success, and in 2017 Real Time Engineers Ltd. passed stewardship of the FreeRTOS project to Amazon Web Services (AWS). Richard continues to work on FreeRTOS as part of an AWS team. Read more on the AWS open source blog.

    www.freertos.org/RTOS.html
  • こんにちは。NoMaYです。

    ウェブで調べ物をしていて、Qiitaというサイトにeggmanさんという人が『FreeRTOS V9.0.0のAPI一覧』と『Amazon FreeRTOSのAPI一覧』という2つの投稿をされていることに気付きました。「FreeRTOS」と「Amazon FreeRTOS」で何が違うのか知るのに役立ちそうでしたので、リンクを投稿してみました。

    FreeRTOS V9.0.0のAPI一覧 - eggman
    qiita.com/eggman/items/8af5d3719977f71d3bbf

    Amazon FreeRTOSのAPI一覧 - eggman
    qiita.com/eggman/items/687f318cf5d391c3d47a

    [関連リンク]

    ちなみに、ルネサスさんでFreeRTOSを検索すると以下のものが見つかりました。(欧州と米国は同じ検索結果のようでした。他の地域は検索しませんでした。)

    ドキュメント検索: FreeRTOS

    日本(Japan)
    www.renesas.com/ja-jp/search/keyword-search.html#genre=document&q=FreeRTOS

    RX62Nグループ OSアダプタレイヤー: RI-600 とFreeRTOS (TM) の点滅デモンストレーション
    Mar.22.13 Rev.1.02 6.53 Mbytes R01AN0765JS0102 アプリケーションノート

    RX62Nグループ RI600とFreeRTOS (TM) 用のユーザーマニュアルおよびAPI 仕様
    Mar.05.12 Rev.1.00 4.09 Mbytes R01AN0766JS0100 アプリケーションノート

    欧州(Europe/Middle East/Africa)
    www.renesas.com/en-eu/search/keyword-search.html#genre=document&q=FreeRTOS

    RZ/A1H Group Renesas Starter Kit+ FreeRTOS Sample Code for e2 studio
    Oct.14.16 Rev.1.00 574.69 Kbytes R01AN3087EG0100 Application Notes

    RX62N Group RX62N Multimedia Demonstration on RI600 & FreeRTOS (TM)
    Sep.05.12 Rev.1.02 1.48 Mbytes R01AN0764ES0102 Application Notes

    RX62N Group OS Adaptor Layer: RI-600 and FreeRTOS (TM) Blinky Demonstration
    Sep.05.12 Rev.1.02 2.58 Mbytes R01AN0765ES0102 Application Notes

    RX62N Group OS Adaptor Layer: User Manual and API Specification for RI600 & FreeRTOS (TM)
    Oct.11.11 Rev.1.00 4.04 Mbytes R01AN0766ES0100 Application Notes

    米国(America)
    www.renesas.com/en-us/search/keyword-search.html#genre=document&q=FreeRTOS

    RZ/A1H Group Renesas Starter Kit+ FreeRTOS Sample Code for e2 studio
    Oct.14.16 Rev.1.00 574.69 Kbytes R01AN3087EG0100 Application Notes

    RX62N Group RX62N Multimedia Demonstration on RI600 & FreeRTOS (TM)
    Sep.05.12 Rev.1.02 1.48 Mbytes R01AN0764ES0102 Application Notes

    RX62N Group OS Adaptor Layer: RI-600 and FreeRTOS (TM) Blinky Demonstration
    Sep.05.12 Rev.1.02 2.58 Mbytes R01AN0765ES0102 Application Notes

    RX62N Group OS Adaptor Layer: User Manual and API Specification for RI600 & FreeRTOS (TM)
    Oct.11.11 Rev.1.00 4.04 Mbytes R01AN0766ES0100 Application Notes

    サンプルプログラム検索: FreeRTOS

    日本(Japan)
    www.renesas.com/ja-jp/search/keyword-search.html#genre=sampleprogram&q=FreeRTOS

    RX231 Group Serial Transfer Demo using RX real-time OS Package
    Mar.31.17 Source, Project
    ( Firmware Integration Technology(FIT) / FreeRTOS )
    ( e2 studio project / CC-RX )

    RX64M Group Network echo server application using RX real-time OS Package
    Sep.30.16 Source, Project
    ( e2 studio project / CC-RX )

    RX62Nグループ OSアダプタレイヤー: RI-600 とFreeRTOS (TM) の点滅デモンストレーション
    Mar.22.13 C source

    欧州(Europe/Middle East/Africa)
    www.renesas.com/en-eu/search/keyword-search.html#genre=sampleprogram&q=FreeRTOS

    RX231 Group Serial Transfer Demo using RX real-time OS Package
    Mar.31.17 Source, Project
    ( Firmware Integration Technology(FIT) / FreeRTOS )
    ( e2 studio project / CC-RX )

    RZ/A1H Group Renesas Starter Kit+ FreeRTOS Sample Code for e2 studio
    Oct.14.16 Source, Project
    ( e2 / GNUARM-NONE )

    RX64M Group Network echo server application using RX real-time OS Package
    Sep.30.16 Source, Project
    ( e2 studio project / CC-RX )

    RX62N Group RX62N Multimedia Demonstration on RI600 & FreeRTOS™
    Sep.05.12 C source

    RX62N Group OS Adaptor Layer: RI-600 and FreeRTOS™ Blinky Demonstration
    Sep.05.12 C source

    米国(America)
    www.renesas.com/en-us/search/keyword-search.html#genre=sampleprogram&q=FreeRTOS

    RX231 Group Serial Transfer Demo using RX real-time OS Package
    Mar.31.17 Source, Project
    ( Firmware Integration Technology(FIT) / FreeRTOS )
    ( e2 studio project / CC-RX )

    RZ/A1H Group Renesas Starter Kit+ FreeRTOS Sample Code for e2 studio
    Oct.14.16 Source, Project
    ( e2 / GNUARM-NONE )

    RX64M Group Network echo server application using RX real-time OS Package
    Sep.30.16 Source, Project
    ( e2 studio project / CC-RX )

    RX62N Group RX62N Multimedia Demonstration on RI600 & FreeRTOS™
    Sep.05.12 C source

    RX62N Group OS Adaptor Layer: RI-600 and FreeRTOS™ Blinky Demonstration
    Sep.05.12 C source

    [追記]

    この際ですので、FreeRTOSのサイトでルネサスさんを検索してみました。

    FreeRTOSサイト内検索: Renesas
    cse.google.com/cse?cx=partner-pub-1432383574659805%3Az8fglgeedjr&q=Renesas
     

  • こんにちは。NoMaYです。

    FreeRTOSのサイトを見ていて、Amazon FreeRTOSでサポートされているボードが以下の半導体メーカのものであった理由に気付きました。そもそものFreeRTOSの「パートナー」さんだったからですね、、、

    Microchip Technology Incorporated
    Curiosity PIC32MZ EF Development Board (Coming Soon)

    NXP Semiconductors
    LPC54018 IoT Module

    STMicroelectronics
    STM32L4 Discovery Kit IoT Node

    Texas Instruments
    SimpleLink™ Wi-Fi® CC3220SF Wireless Microcontroller LaunchPad™ Development Kit

    www.freertos.org/FreeRTOS-V10.html

  • In reply to NoMaY:

    NoMaYさん

    シェルティです。こんにちは。

    いつも貴重な情報を展開いただき、ありがとうございます。
    Amazon FreeRTOS、すごいですね。

    私はSTのAmazon FreeRTOS対応ボードを注文してみました。私のふゆやすみの工作課題ですね。

    ルネサス製品だと、RXマイコンがちょうどリアルタイムOSが対象とする性能レンジですね。
    こうしてみると、RXマイコンは少し世界から取り残されている感がしてしまいます。
    FreeRTOS自体はRXマイコンをサポートしていますので、ちょっとソフト開発してあげれば
    RXマイコン上でAmazon FreeRTOSを動かすことは可能だと思います。

    FreeRTOSは1年くらい前に、FreeRTOS+TCPというネットワークスタックを研究成果としてリリースしておりまして、
    思えばそれがAmazon FreeRTOSの布石だったように思います。

    IoT向けの規格をOSI参照モデルに当てはめて考えてみると、
    1-7層までオールインワンでAmazon FreeRTOSが提供できるようになりました。
    これはとてもすごいことだと思います。
    これが普及すれば、7層までIoT機器のデファクトスタンダード化待ったなしの状況ですね。

    1=physical: Ethernet (defacto standard), Wireless-LAN, BLE5.0, maybe LoRa
    2=datalink: IEEE 802.xx (defacto standard)
    3=network: Internet Protocol (defacto standard)
    4=transport: Transmission Control Protocol or User Datagram Protocol (defacto standard)
    5=session: Socket API implementation (defacto standard)
    6=presentation: SSL/TLS implementation (defacto standard)
    7=application: AWS(MQTT) for IoT (defacto standard???)

    6層のSSL/TLS実装のためにARMはソフトウェアベンダを買収してmbed TLSを作りました。
    またARMコアのセキュリティ性向上のためCryptoCellという暗号ハードウェアIPも買ってきています。
    これらを統合してTrustZoneという新しいセキュリティソフトウェアプラットフォームを提唱してきていますね。
    ARMはどうやらCPU技術の次はセキュリティ技術で世界を囲い込む戦略のように見えます。

    今6層のmbed TLSの暗号プリミティブ実装はソフトウェア暗号ライブラリのようですが、
    これがどのように今後暗号ハードウェアIP活用のものに置き換わっていくのか、
    要注目であると思います。

    以上です。
  • こんにちは。NoMaYです。

    SEGGERによるcross-platform Embedded Studioとthe market leading J-LinkでのAmazon FreeRTOSデバッグ環境だそうです。このスレッドの最初の投稿に書いたAmazon FreeRTOSのGitHubのソースに対して、以下のウェブページのSEGGERのパッケージのソースでは以下のフォルダが追加されていました。(デモプログラムのソースの修正も若干ありました。) SEGGERはFreeRTOSの「パートナー」では無かったので自前でやった、というところでしょうか、、、

    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\es\
    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\common\application_code\segger\
    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\lib\third_party\mcu_vendor\nxp\LPC54018\es\

    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\demos\st\stm32l475_discovery\es\
    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\demos\st\stm32l475_discovery\common\application_code\segger\
    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\lib\third_party\mcu_vendor\st\stm32l475_discovery\es\

    SEGGER Support for Amazon Web Services and Amazon FreeRTOS
    www.segger.com/aws/


    ソースの比較結果


    ちなみに、Amazon FreeRTOSのGitHubのソース(およびSEGGERのパッケージのソース)には、以下のフォルダがありましたので、自前でボードを追加する時は同様にやって下さい、ということのようです、、、

    amazon-freertos-1.0.0\demos\vendor\
    amazon-freertos-1.0.0\lib\third_party\mcu_vendor\vendor\
    amazon-freertos-1.0.0\lib\wifi\portable\vendor\                [2017/12/12 追記]
    amazon-freertos-1.0.0\lib\secure_sockets\portable\vendor\           [2017/12/19 追記]
    amazon-freertos-1.0.0\lib\pkcs11\portable\vendor\         (未追加?) [2017/12/19 追記]







    なお、以下のフォルダにはEclipseでお馴染みの.projectファイルと.cprojectファイルがありました。

    amazon-freertos-1.0.0\demos\st\stm32l475_discovery\ac6\
    amazon-freertos-1.0.0\demos\ti\cc3220_launchpad\ccs\




  • こんにちは。NoMaYです。

    1つ前の投稿の最後でAmazon FreeRTOSのGitHubのソースのDemoフォルダの中を少し見てみたのですが、このスレッドの最初の投稿に書いたsourceforge.netのFreeRTOS kernelのソースのDemoフォルダの中も少し見てみました。



    なお、FreeRTOS kernelのルネサスマイコンでのDemoプログラムは、上の画面コピーのものだけでは無く、全部で以下のものがあるようです。

    www.freertos.org/a00090.html#RENESAS




  • こんにちは。NoMaYです。

    Amazon FreeRTOSのDemoプロジェクトがEclipseの仮想フォルダやリンクされたフォルダという機能を使ったプロジェクトのようでしたので、以下の手順でDemoプロジェクトがどんな感じのものであるか分かるようなe2 studio (v6.1.0)のプロジェクトを無理矢理作ってみました。(ちなみに、まだ全くコンパイル出来ません。([追記] 2017/12/20 「全くコンパイル出来なかった」と言うよりは「全くコンパイルが行われなかった」と言うべきだった気がします。) 後日、プロジェクトの設定を詰めてみようかとは思っています。もっとも、MCU依存部やボード依存部を作らないとリンク出来ませんが、、、)

    aws_demos_renesas_rx_mcu_experiment_20171210.zip
    内容:
    .project
    .cproject
    aws_demos.mtpj
    aws_demos.rcpc
    aws_demos.rcpe

    (1) 以下のフォルダを(下位階層も含めて)追加する

    作成するフォルダ: (下位階層については下の方の画面コピーを参照して下さい)
    amazon-freertos-1.0.0\demos\renesas\
    amazon-freertos-1.0.0\lib\third_party\mcu_vendor\renesas\

    (2) 以下のファイルを(1)で追加した以下のフォルダにコピーする

    コピー元のファイル:
    amazon-freertos-1.0.0\demos\st\stm32l475_discovery\ac6\.project
    FreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\.cproject
    FreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\.info

    コピー先のフォルダ:
    amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\

    (3) コピーした.projectファイルをエディタで変更する

    変更前: (該当箇所のみ記載します)

        <natures>
            <nature>org.eclipse.cdt.core.cnature</nature>
            <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
            <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
            <nature>fr.ac6.mcu.ide.core.MCUProjectNature</nature>
        </natures>

    変更後: (該当箇所のみ記載します)

        <natures>
            <nature>org.eclipse.cdt.core.cnature</nature>
            <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
            <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
            <nature>com.renesas.cdt.core.kpitcnature</nature>
            <nature>com.renesas.cdt.core.kpitccnature</nature>
        </natures>

    (4) e2 studioを起動してワークスペースフォルダとして以下のフォルダを指定する

    amazon-freertos-1.0.0\demos\renesas\

    (5) e2 studioが起動したら以下のプロジェクトを「既存プロジェクトをワークスペースへ」でインポートする

    aws_demos(親フォルダ\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6)

    (6) インポートしたaws_demosプロジェクトを「古い e2studio プロジェクトを更新...」で更新する

    これにより自動的に削除されるファイル:
    amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\.info

    以下、画面コピーです。





    なお、この際だと思い、e2 studioでCS+向けルネサス共通プロジェクトファイル(rcpc)をエクスポートして、CS+ for CC V6.00.00(2017/10/05版)でインポートしてみましたが、プロジェクトの構造が変わってしまっていました。(後日、調査してみようとは思っています。こちらも、まだ全くコンパイル出来ません。([追記] 2017/12/20 こちらは「全くコンパイルが行われなかった」訳では無くて「全くコンパイル出来なかった」の方です。) もちろん、MCU依存部やボード依存部を作らないとリンク出来ませんが、、、)



    ちなみに、プロジェクトの設定を詰めてコンパイル出来るようになったら、以下のボードなどで使われているRX65NへMCUを変更することも出来るだろうと考えています。

    RX65N Envision Kit (RS Componentsでも販売開始されたようです。(私が注文したものは週末にMouserから届きました。))
    www.renesas.com/ja-jp/products/software-tools/boards-and-kits/renesas-promotion-boards/rx65n-envision-kit.html

    RX65N Wi-Fi Cloud Connectivity Kit (今のところ日本からは購入出来ないようです。技適の関係でしょうか?将来は?)
    www.renesas.com/en-us/solutions/key-technology/connectivity/wi-fi/rx65n-wi-fi-kit.html

    [追記]

    そういえば、mbed OSとは異なり、C言語ベースですね。(mbed OSはC++言語ベースでした。)

  • In reply to NoMaY:

    わわいです
    githubからダウンしてきたソースには Demoフォルダの下に各種CPUのHEWのプロジェクトファイルがあります
    RX630のヤツをHEWで開いてビルドボタンであっさりビルドは通りました。動かしはしていませんw

    まあ、E2Lite で動かせようとすると、どのみちe2Studio でビルドするようにせんといかんですが。

    #AmazonのほーにはWindows用デモ、とか提携メーカボード用のソースとかが上がってますね
  • こんにちは。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 Incorporated
    Curiosity PIC32MZ EF Development Board (Coming Soon)
    ⇒WiFi 7 click carries the ATWINC1510-MR210PB IEEE 802.11 b/g/n module
    www.mikroe.com/wifi-7-click
    使用可能な接続方法 : SPI
    Amazon FreeRTOSのGitHubのソースにコードが全く含まれていない為、それ以上は調査しませんでした

    NXP Semiconductors
    LPC54018 IoT Module
    ⇒Longsys GT1216 Wi-Fi (IEEE 802.11b/g/n) module based on Qualcomm QCA4004
    www.longsys-iot.com/portfolio/gt1x16/
    使用可能な接続方法 : UART, SPI, GPIO
    Amazon FreeRTOSのGitHubのソースでの接続方法 : SPI (たぶん)
    Amazon FreeRTOSのGitHubのソース :
    amazon-freertos-1.0.0\lib\wifi\portable\nxp\lpc54018_iot_module\aws_wifi.c
    amazon-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.*

    STMicroelectronics
    STM32L4 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, SPI
    Amazon FreeRTOSのGitHubのソースでの接続方法 : SPI (たぶん)
    Amazon FreeRTOSのGitHubのソース :
    amazon-freertos-1.0.0\lib\wifi\portable\st\stm32l475_discovery\aws_wifi.c
    amazon-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 Instruments
    SimpleLink™ 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.html

    Zephyr (公式)
    docs.zephyrproject.org/api/io_interfaces.html

    T-Engine (公式)
    www.tron.org/ja/wp-content/themes/dp-magjam/pdf/specifications/ja/TEF040-S216-01.00.01_ja.pdf
    www.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 NEWS
    www.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.c
    demos\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/thread

    CS+が生成した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\.cproject
    amazon-freertos-1.0.0\demos\ti\cc3220_launchpad\ccs\.cproject
    amazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\iar\aws_demos.ewp
    amazon-freertos-1.0.0\demos\pc\windows\visual_studio\aws_demos.vcxproj
    FreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\.cproject

    0876.AmazonFreeRTOS_IncludePaths.txt
    ■ 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="&quot;${workspace_loc:/${ProjName}}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/config_files}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/application_code}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/application_code/st_code}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/application_code/common_demos/include}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/aws/include}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/aws/include/private}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/aws/FreeRTOS/portable/GCC/ARM_CM4F}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/jsmn}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/pkcs11}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mbedtls/include}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/STM32L4xx_HAL_Driver/Inc}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/STM32L4xx_HAL_Driver/Inc/Legacy}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/CMSIS/Include}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/CMSIS/Device/ST/STM32L4xx/Include}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/B-L475E-IOT01}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/Common}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/hts221}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/lis3mdl}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/lps22hb}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/lsm6dsl}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/vl53l0x}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/third_party/mcu_vendor/st/stm32l475_discovery/BSP/Components/es_wifi}&quot;"/>
    								</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="&quot;${TCINSTALL}/include&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/Full_Demo}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/Full_Demo/Standard_Demo_Tasks/include}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/Renesas_Code}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FreeRTOS_Source/portable/Renesas/RX600v2}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FreeRTOS_Source/include}&quot;"/>
    									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
    								</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\.cproject
    amazon-freertos-1.0.0\demos\ti\cc3220_launchpad\ccs\.cproject
    amazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\iar\aws_demos.ewp
    amazon-freertos-1.0.0\demos\pc\windows\visual_studio\aws_demos.vcxproj
    FreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\.cproject

    6201.AmazonFreeRTOS_Macros.txt
    ■ 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) 試しにコード生成機能でコード生成させてみた

    試しです。







Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page