Частина 2 - Привітання світу

Сьогодні ми навчимося створювати власні проекти на Raspberry Pi Pico.

У нашому каталозі pico створимо каталог 0x02_pico_hello_world__ поряд з каталогами pico-sdk і pico-example.

ХМДХ

mkdir 0x02_pico_hello_world
cd 0x02_pico_hello_world
ХМДХ

Створимо свій vim 0x02_hello_world.c file.

ХМДХ

vim 0x02_hello_world.c
ХМДХ

Додамо наступне.

ХМДХ

#include <stdio.h>

include "pico/stdlib.h"

XMDX8074388f38d3XMDX main()  {

  stdio_init_all();

  while(1)    {   XMDX75f455ff1d42XMDX("Hello world! ");

    sleep_ms(1000);   }

return 0; } </pre>ХМДХ

Спочатку обробимо логіку для ініціалізації всіх стандартних вхідних і виходів.

ХМДХ

    stdio_init_all();
ХМДХ

Нарешті, виведемо "Привітання світу!" кожну секунду до стандартного виходу в нескінченний цикл.

ХМДХ

    while(1) 
    {
      XMDXf86a742b2f82XMDX("Hello world!
");

      sleep_ms(1000);     } </pre>ХМДХ

Потім після успішного виконання повернемо 0 для вказівки успішності, оскільки наш функція main є int. Це не технічна вимога, але добра практика.

ХМДХ

    return 0;
ХМДХ

Робота з cmake значно полегшує процес будівництва для наших проектів. Спочатку нам потрібно створити CMakeLists.txt file.

ХМДХ

cmake_minimum_required(VERSION 3.13)

include(pico_sdk_import.cmake)

project(test_project C CXX ASM) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) pico_sdk_init()

add_executable(0x02_hello_world 0x02_hello_world.c )

pico_enable_stdio_usb(0x02_hello_world 1)

pico_add_extra_outputs(0x02_hello_world)

target_link_libraries(0x02_hello_world pico_stdlib) </pre>ХМДХ

Далі нам потрібно скопіювати pico_sdk_import.cmake__ file з зовнішнього каталогу в установці pico-sdk до каталогу проекту 0x02_hello_world__.

ХМДХ

cp../pico-sdk/external/pico_sdk_import.cmake.
ХМДХ

Нарешті, ми готові до будівництва.

ХМДХ

mkdir build
cd build
export PICO_SDK_PATH=../../pico-sdk
cmake..
make
ХМДХ

Це призведе до створення декількох файлів, і ті, які ми візьмемо до уваги, це .elf file при відладці і хакінгу, який є повним виводом програми, можливо, включаючи інформацію про відладку, і .uf2 file, який є програмним кодом і даними в форматі UF2, який можна перетягнути на до плати RP2040, коли вона встановлена як зовнішній диск.

Я витратив час на підключення кнопки перезавантаження на Піко, щоб я не мав роз'єднувати USB і натискати BOOTSEL кожного разу, коли мені потрібно перезавантажити, тому ось схема такого.

ХМДХ</XMDX4154dc41f172XMDX>ХМДХ

Щоб перезавантажити, натисніть зовнішню кнопку і під час її натискання натисніть кнопку BOOTSEL на платі, потім звільніть кнопку BOOTSEL і, нарешті, звільніть зовнішню кнопку.

Затем просто скопіюйте .uf2 file в зовнішній диск.

ХМДХ

cp 0x02_hello_world.uf2 /Volumes/RPI-RP2
ХМДХ

Затем нам потрібно знайти зовнішній диск, щоб ви могли виконати наступні дії.

ХМДХ

ls /dev/tty.
ХМДХ

Натисніть таб, щоб знайти зовнішній диск, а потім у моїх випадках я використовую screen для підключення.

ХМДХ

screen /dev/tty.usbmodem0000000000001
ХМДХ

Вітаємо! Ви повинні побачити "Привітання світу!" до стандартного виходу кожну секунду.

У наступному урокі ми навчимося відлагоджувати .elf бінарний файл в Radare2.

У наступному уроку ми навчимося відлагоджувати .elf бінарний файл в Radare2.

results matching ""

    No results matching ""