

SPRESENSE SDK
v2.3.0で`CONFIG_CPUFREQ_RELEASE_LOCK`を有効にすると、`examples/camera`を実行したとき  
撮影途中で止まったままになってしまいます。

[code]

    $ tools/config.py examples/camera
    $ tools/config.py -m
    // menuconfig で CONFIG_CPUFREQ_RELEASE_LOCK を有効にする
    $ make
    
[/code]

[code]

    NuttShell (NSH) NuttX-10.1.0
    
    nsh> camera -jpg 1
    nximage_listener: Connected
    nximage_initialize: Screen resolution (320,240)
    Take 1 pictures as JPEG file in /mnt/sd0 after 5 seconds.
     After finishing taking pictures, this app will be finished after 10 seconds.
    
    // ここで停止したままとなる
    
[/code]

したがって、`examples/camera`と`examples/power_sleep`を同時に使用することができません。

何故そうなるのか、原因を追うことができませんでした。  
何か制約等があるのでしょうか？


CC BY-SA 4.0
2021-10-05T08:26:26.673
82884
2021-10-06T12:35:26.553
48381
question
spresense
CONFIG_CPUFREQ_RELEASE_LOCK を有効にすると examples/camera が正しく動作しない


理由はよく分かりませんが、Webドキュメントをみると  
[https://developer.sony.com/develop/spresense/docs/arduino_developer_guide_ja.html#_クロックモードについて](https://developer.sony.com/develop/spresense/docs/arduino_developer_guide_ja.html#_%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)  
「Camera 機能は、CLOCK_MODE_156MHz もしくは CLOCK_MODE_32MHz で動作させてください」とあるので、  
[https://developer.sony.com/develop/spresense/docs/sdk_developer_guide_ja.html#_cpu_システムクロック制御](https://developer.sony.com/develop/spresense/docs/sdk_developer_guide_ja.html#_cpu_%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E5%88%B6%E5%BE%A1)  
Cameraを動かす前に、HVロックかLVロックを獲得してクロックを上げておけば動作すると思うので試してみてください。

[code]

    #include <arch/chip/pm.h>
    
    struct pm_cpu_freqlock_s lock;
    
      lock.flag = PM_CPUFREQLOCK_FLAG_LV;
      // or
      //lock.flag = PM_CPUFREQLOCK_FLAG_HV;
    
      up_pm_acquire_freqlock(&lock);
    
      // ... camera動作 ...
    
      up_pm_release_freqlock(&lock);
    
    
[/code]


CC BY-SA 4.0
2021-10-06T12:35:26.553
82922
2021-10-06T12:35:26.553
31378
82884
answer