A Day in the Life

nrf51 の nano.specs で printf で float の値を表示する

float の値を printf に表示したいだけなのに時間がかかった…。

newlib-nano を使ってるので、

にあるとおり、

-u _printf_float

を ldflags に追加すれば良い。

mbed の cli 環境下で追加する。

[4]>_<X mbed --version
0.9.5
[4]>_<X mbed compile \?
usage: make.py [-h] [-m MCU] [-t TOOLCHAIN] [--color] [--cflags CFLAGS]
               [--asmflags ASMFLAGS] [--ldflags LDFLAGS] [-c] [-o OPTIONS]
               [-p PROGRAM] [-n PROGRAM] [-j JOBS] [-v] [--silent] [-D MACROS]
               [-S] [-f GENERAL_FILTER_REGEX] [--automated] [--host HOST_TEST]
               [--extra EXTRA] [--peripherals PERIPHERALS]
               [--dep DEPENDENCIES] [--source SOURCE_DIR]
               [--duration DURATION] [--build BUILD_DIR] [-N ARTIFACT_NAME]
               [-d DISK] [-s SERIAL] [-b BAUD] [-L] [--rtos] [--rpc] [--eth]
               [--usb_host] [--usb] [--dsp] [--fat] [--ublox] [--testlib]
               [-l LINKER_SCRIPT]
make.py: error: unrecognized arguments: ?

を見ると、--ldflags に値を渡せば良さそう。なんだけど、こいつが内側の make.py で呼び出している gcc.py に値を渡していないので、設定しても無駄。

mbed toolchain を直接弄って指定する。

## .temp/tools/toolchains/gcc.py 
        if use_nano:
            self.ld.append("--specs=nano.specs")
            self.ld += ["-u _printf_float"] # 追加

あと同階層にある gcc.pyc は削除しておく。

ううう…。

記事の一覧 >

関連するかもエントリー

BLE Nano V1.5 を mbed 上で 32K RAM で扱う
BLE Nano は V1.0 では 16KB の RAM が、V1.5 から 32K RAM がのっている。が、mbed 上では現在 1.0 ベースしかなく、折角の 32K RAM が使えない。ので使えるようにする方法メモ。mbed OS 5 の場合rtos の INITIAL...
BLE Nano は V1.0 では 16KB の RAM が、V1.5 から 32K RAM がのっている。が、mbed 上では現在 1....
Keras を使わずに TensorFlow 2 を使い素朴な全層結合ニューラルネットワークを作る
TensorFlow では、高レベルAPIであるKerasを使うことで、簡単にニューラルネットワークのモデル作成~訓練、その他NNで行いたい様々なことを実現できる。しかしながら、自分のようなNN初心者にとっては何をやってるか解らないで使ってしまっていたため、簡単な順伝播型のNNを...
TensorFlow では、高レベルAPIであるKerasを使うことで、簡単にニューラルネットワークのモデル作成~訓練、その他NNで行いたい...
nrf51 のファームウェアから SoftDevice を切り離す
mbed 環境でコンパイルすると、現在S130のSoftDeviceが結合されて作成される。SoftDevice は一度書き込めば再度書き込む必要が無く、分離することでSoftDevice書き込みを省略し、高速に書き込める。nRF51_OTA_strip.py を使うhttps:...
mbed 環境でコンパイルすると、現在S130のSoftDeviceが結合されて作成される。SoftDevice は一度書き込めば再度書き込...