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

このブログはビーコンの代表である菅原が、電気電子、電子工作、組み込みソフトウェアなどで、自分が苦労したところや面白い気づきなどを記事にしていきます。電子工作やマイコンに親しむ人が少しでも増えたらという思いでつづります。
やっぱり、電子工作が好きなんですよ。
<< SSDはなぜ250Gなのか解った気がする | main | 【反省】はんだシュッ太郎は使ったらメンテナンスしなくては >>
nRF のスタックの指定について
0

    JUGEMテーマ:組み込み開発

     

    nRFのスタックの指定についてメモ。

    nRF52シリーズのマイコンのBLEプロジェクトをarm-none-eabi-gccで開発しているがスタックは指定をしないと0x2000となっている。これを変更したい場合 Makefileの ASMFLAGS に -D__STACK_SIZE=(スタックサイズ)の指定をする。

    # Assembler flags common to all targets
    ASMFLAGS += -x assembler-with-cpp
    ASMFLAGS += -D__STACK_SIZE=2048
    ASMFLAGS += -DNRF52
    ASMFLAGS += -DNRF52_PAN_36
    ASMFLAGS += -DNRF52_PAN_64
    ASMFLAGS += -DSOFTDEVICE_PRESENT
    ASMFLAGS += -DBOARD_PCA10040

     

    これはcomponents/toolchain/gcc/gcc_startup_nrf52.S  (または gcc_startup_nrf51.S)

    で __STACK_SIZE が定義されていたら、それをスタックサイズとする。定義がなければ 8192とする。

    ( gcc_startup_nrf51.Sでは 定義が無い場合 2048にする。)

        .section .stack
        .align 3
    #if defined(__STARTUP_CONFIG)
        .equ    Stack_Size, __STARTUP_CONFIG_STACK_SIZE
    #elif defined(__STACK_SIZE)
        .equ    Stack_Size, __STACK_SIZE
    #else
        .equ    Stack_Size, 8192
    #endif
        .globl __StackTop
        .globl __StackLimit
    __StackLimit:
        .space Stack_Size
        .size __StackLimit, . - __StackLimit
    __StackTop:
        .size __StackTop, . - __StackTop
     

     

    components/toolchain/arm/arm_startup_nrf52.S

    を確認したところ スタックに関しては同様の記述だったので、 Keilの環境でもアセンブラのオプションに__STACK_SIZE= スタックサイズ の指定を加えたら良いと思われる。

    | ビーコン菅原 | nRF5x Nordic | 04:01 | comments(0) | trackbacks(0) |









    http://blog.suga41.com/trackback/381
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
    << November 2018 >>
    + RECOMMEND
    + RECOMMEND
    + SELECTED ENTRIES
    + RECENT COMMENTS
    + RECENT TRACKBACK
    + CATEGORIES
    + ARCHIVES
    + つぶやき
    + MOBILE
    qrcode
    + LINKS
    + PROFILE