树莓派pico C/C++ SDK开发环境准备

84次阅读

树莓派pico C/C++ SDK开发环境准备

[toc] 限制于MicroPython的封装程度限制了一些性能以及自定义的发挥,因此要想发挥出芯片的最佳性能,C/C++开发才是正道,因此特在此记录下pico的C/C++开发环境配置。

环境准备

​ 按照官方文档所说,在Linux环境下配置开发工具链只需要执行一个.sh文件,但是,配置环境的过程中需要从github上下载许多文件,而由于一些众所周知的原因,这个环境就能挫败不少刚要起步的同学,所以阅读这篇文章的同学可以选在晚上或者早上进行环境配置。速度可能会快一些。

​ Windows下的配置与Linux下的配置大概步骤差不多,但是工具的安装与SDK的下载需要手动来完成。

需要准备以下软件或者工具

  • ARM GCC compiler
  • CMake
  • Build Tools for Visual Studio 2019
  • Python3.9
  • Git

以上所有软件在网上都有详细的安装步骤以及环境变量配置,这里就不多说。

其中Build Tools for Visual Studio 2019 在C/C++ 那个选项下,仔细找找。

开始

以上软件安装完毕后,请一定要检查一下环境变量配置是否正确。

找一个路径,新建一个文件夹以及子文件夹分类保存你的所有文件,不同用途软件以及SDK分类保存,否则一旦之后文件越存越多,就显得很乱甚至冲突,这是一个好习惯,建议文件路径全部用英文,之前因为路径含中文字符不少吃亏。

新建pico-sdk,文件夹下右键,“Git Bash Here”执行以下命令

git clone -b master https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update –init
cd ..
git clone -b master https://github.com/raspberrypi/pico-examples.git

每行依次执行,如果有因为网络问题产生错误,重试或者采取特殊手段。

完成之后,按照Windows > Visual Studio 2019 > Developer Command Prompt 找到并启动 Developer Command Prompt,或者直接搜索Developer Command Prompt,打开之后

code

enter执行,这会打开VSCode,切记这里一定要按照这个步骤来打开VSCode,不要直接从桌面打开。

安装CMakeTools扩展插件,然后点击齿轮进行配置。

找到Cmake:Configure Environment项,并增加一个PICO_SDK_PATH项,项目的值就为上面下载SDK时的路径。

找到Cmake:Generator项,加值’NMake Makefiles’ 。

至此完成,现在可以打开pico-examples,活动工具包(界面最下方那一行带锤子那个)需要选择 ‘GCC for arm-none-eabi’。生成后,则进行编译。编译完成的文件会被放在例子目录下的build目录下。注意,如果编译不能进行,则要尝试用Visual Studio 2019的Developer Command Prompt菜单来打开VS Code。

分析构建项目需要的文件

树莓派pico

  • 结构
    • 工程名
    • 工程源代码文件夹
      • 源代码
      • CMakeLists.txt
    • CMakeLists.txt
    • pico_sdk_import.cmake
    • example_auto_set_url.cmake

build文件夹是构建项目时自动生成的。

  1. 与源代码同文件夹的CMakeList.txt

    # 添加代码源文件,这里第一个my_blink建议与工程名一致
    add_executable(my_blink
           my_blink.c
           )
    # 添加需要的库文件,另一个CMakeLists.txt将需要的文件从SDK里复制来了
    # pull in common dependencies
    target_link_libraries(my_blink pico_stdlib)
    # 生成hex文件
    # create map/bin/hex file etc.
    pico_add_extra_outputs(my_blink)
    # 没看懂-_-.,一样改成工程名吧
    # add url via pico_set_program_url
    example_auto_set_url(my_blink)
  2. 工程文件下的CMakeLists.txt

    cmake_minimum_required(VERSION 3.12)
    
    # 添加需要的SDK
    # Pull in SDK (must be before project)
    include(pico_sdk_import.cmake)
    # 项目基本环境配置
    project(blink C CXX ASM)
    set(CMAKE_C_STANDARD 11)
    set(CMAKE_CXX_STANDARD 17)
    
    if (PICO_SDK_VERSION_STRING VERSION_LESS "1.3.0")
       message(FATAL_ERROR "Raspberry Pi Pico SDK version 1.3.0 (or later) required. Your version is ${PICO_SDK_VERSION_STRING}")
    endif()
    
    set(PICO_EXAMPLES_PATH ${PROJECT_SOURCE_DIR})
    
    # Initialize the SDK
    pico_sdk_init()
    
    include(example_auto_set_url.cmake)
    
    # 添加项目文件夹,就是保存代码文件的那个
    # Add project
    add_subdirectory(my_blink)
    
    # Add hello world example
    # add_subdirectory(hello_world)
    
    add_compile_options(-Wall
           -Wno-format          # int != int32_t as far as the compiler is concerned because gcc has int32_t as long int
           -Wno-unused-function # we have some for the docs that aren't called
           -Wno-maybe-uninitialized
           )
    
    # 这里添加的是pico-examples里的所有例子,编写自己的文件夹时可以参考,但是就没必要添加进来了,一样注释掉了
    # Hardware-specific examples in subdirectories:
    # add_subdirectory(adc)
    # add_subdirectory(clocks)
    #add_subdirectory(cmake)
    #add_subdirectory(divider)
    #add_subdirectory(dma)
    #add_subdirectory(flash)
    #add_subdirectory(gpio)
    #add_subdirectory(i2c)
    #add_subdirectory(interp)
    #add_subdirectory(multicore)
    #add_subdirectory(picoboard)
    #add_subdirectory(pio)
    #add_subdirectory(pwm)
    #add_subdirectory(reset)
    #add_subdirectory(rtc)
    #add_subdirectory(spi)
    #add_subdirectory(system)
    #add_subdirectory(timer)
    #add_subdirectory(uart)
    #add_subdirectory(usb)
    #add_subdirectory(watchdog)
    

    重点部分就这两个文件,其他的.cmake文件则是执行的一些固定必需的操作,保留即可

好了,到这里环境配置以及工程组成讲解到此为止,用C/C++ 去压榨尽pico的性能吧。

liubobo
版权声明:本站原创文章,由 liubobo 2021-12-17发表,共计3223字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。