西東京市にいる組み込みおやじ-電子工作、回路設計、ファーム TIPS

このブログはビーコンの代表である菅原が、電気電子、電子工作、組み込みソフトウェアなどで、自分が苦労したところや面白い気づきなどを記事にしていきます。電子工作やマイコンに親しむ人が少しでも増えたらという思いでつづります。
やっぱり、電子工作が好きなんですよ。
nRF5x をGCCでコンパイルする。(暫定)
0

    JUGEMテーマ:組み込み開発

     

    nR52をGCCでコンパイルしたので、メモとする。

    いつもは恵まれた統合開発環境を使っていたこともあり、GCCを使う機会が無かったこともあり、なおかつ、Linux使いというわけでもなく、なじみが無かったので、結構苦労した。

     

    参考にしたサイト

    GCC ARM Toolchainでmbedをオフラインビルド

     

    ここより抜粋

    GCC ARM Toolchainのインストール

    gcc-arm-none-eabi-4_8-2013q4-20131204-win32.exeをダウンロードして、実行する。

    忘れずに、最後はAdd path to environment variableにチェックを入れる。(環境変数を追加してくれる)

    Gnu Makeの追加

    C:¥Program Files (x86)¥GNU Tools ARM Embedded¥4.8 2013q4¥binに下記のファイルを追加する。

    make.exe
    libiconv2.dll
    libintl3.dll
    上記ファイルは、sorceforge.netのmake-3.81-bin.zipとmake-3.81-dep.zipの中にある。
    引用終わり・・

    --

    ということで、

    今回は ble_app_nrsをコンパイルしてみたかったので

    ・・・¥nRF5_SDK_12.2.0_f012efa¥examples¥ble_peripheral¥a_ble_app_hrs¥pca10040¥s132¥armgcc

    のディレクトリまでおりて

    makeを実行。

    するとなにやらエラーが出てくる。

     

    ¥nRF5_SDK_12.2.0_f012efa¥components¥toolchain¥gcc¥Makefile.windows

    の中を見てみると

    インストールされているコンパイラのバージョンが違っていて、そのためにインストールされているフォルダが違っていた。

    4.9 2015q3 を 4.8 2014q3 に書き換えた。

     

    GNU_INSTALL_ROOT := C:/Program Files (x86)/GNU Tools ARM Embedded/4.8 2014q3
    GNU_VERSION := 4.9.3
    GNU_PREFIX := arm-none-eabi
     

    再び makefileのフォルダでmake.exeを実行するとコンパイルがあっさり通った。

     

    Keil の統合開発環境で見てみるとよくわかるが、Nordicが提供しているプロジェクトは階層構造が結構複雑だ。

     

     

    CUIの環境ではこれを見渡すのが難しいことと、いまのままではデバッガが使えない。いろいろと改善の余地があるけれど、まずはこれで開発を進めていく。

     

     

     

     

    | ビーコン菅原 | nRF5x Nordic | 09:06 | comments(0) | trackbacks(0) |
    nRF51のサンプルソースは内部クロックに設定されている。
    0
      JUGEMテーマ:組み込み開発

      nRF51 はNordic社のARMデバイスとなりますが、Bluetooth LEのプロセッサとして、あちこちのBLEのモジュールに搭載されています。

      で、このデバイスは低消費電力であったり、ソフトウェアを介さずにペリフェラルを連結できたり、というハードウェアの魅力もありますが、サンプルソースが公開されていて、それをベースに開発が始められるということで、サポートが充実していることもよいですね。

      で、前回はまったところを報告したいと思います。

      タイマーとADCを接続して、定期的なサンプリングをしたかったのですが、どうもサンプル周期の精度が悪いということがありました。
      nRF51は 内蔵の16Mhz RCクロックと 外部に 16MHz/32Mhzの水晶振動子を接続して 16MHzのクロックを発生できます。
      私が参考にしたNordicのサンプルソースでは 内部クロックを使用していました。
      そのために、サンプル周期がぴたりとあわないということです。

      2.4GHzの無線を使用しているので、クロックは水晶振動子に違いないと思い込んでおりました。
      無線に関するところは、専用に精度がよいクロック源を使っているかもしれません。

      外部クロックに切り替えたところ、一定の値を示すようになりました。

      ちなみに 外部クロックに切り替えるサンプルソースです。
      nRF51で。動作しています

      // 外部クロック(32MHzクリスタル)に切り替える
      NRF_CLOCK->EVENTS_HFCLKSTARTED = 0;
      NRF_CLOCK->TASKS_HFCLKSTART    = 1;
      while ( NRF_CLOCK->EVENTS_HFCLKSTARTED == 0){
          // イベント待ち
          __NOP();
      }
       
      | ビーコン菅原 | nRF5x Nordic | 21:50 | comments(0) | trackbacks(0) |
      通信中のnRF51はFlash書き換えをすると通信が切れてしまう
      0
        JUGEMテーマ:組み込み開発
        nRF51はNORDIC社が提供するマイコンですが、Bluetooth LE のサービスを提供しています。

        中身は Cortec-M0で FlashROMを 256K/128K 積んでおります。Flash消去中/書き込み中は割り込みを止めないといけないのですが、そのためにBluetoothLEの通信が途切れてしまいます。

        不揮発性メモリが必要な場合には外付けする必要があります。



         
        | ビーコン菅原 | nRF5x Nordic | 14:37 | comments(0) | trackbacks(0) |
           1234
        567891011
        12131415161718
        19202122232425
        262728293031 
        << August 2018 >>
        + RECOMMEND
        + RECOMMEND
        + SELECTED ENTRIES
        + RECENT COMMENTS
        + RECENT TRACKBACK
        + CATEGORIES
        + ARCHIVES
        + つぶやき
        + MOBILE
        qrcode
        + LINKS
        + PROFILE