{"id":8985,"date":"2018-12-30T14:46:30","date_gmt":"2018-12-30T14:46:30","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=8985"},"modified":"2019-02-09T15:02:22","modified_gmt":"2019-02-09T15:02:22","slug":"nrf5-sdk-directory-structure","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=8985","title":{"rendered":"nRF5 SDK: Directory Structure"},"content":{"rendered":"<table>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2018\/12\/nrf5_architecture.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2018\/12\/nrf5_architecture.png\" alt=\"\" width=\"2724\" height=\"888\" class=\"alignleft size-full wp-image-9149\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2018\/12\/nrf5_architecture.png 2724w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2018\/12\/nrf5_architecture-300x98.png 300w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2018\/12\/nrf5_architecture-768x250.png 768w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2018\/12\/nrf5_architecture-1024x334.png 1024w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2018\/12\/nrf5_architecture-624x203.png 624w\" sizes=\"auto, (max-width: 2724px) 100vw, 2724px\" \/><\/a><\/td>\n<\/tr>\n<\/table>\n<table>\n<tr>\n<td>SDK Libraries<\/td>\n<td><code>components\\libraries\\serial\\nrf_serial.c<\/code><\/td>\n<td><code>nrf_serial_write(), serial_tx()<\/code><\/td>\n<\/tr>\n<tr>\n<td>SDK Legacy Drivers<\/td>\n<td><code>integration\\nrfx\\legacy\\nrf_drv_uart.h<\/code><\/td>\n<td><code>nrf_drv_uart_tx()<\/code><\/td>\n<\/tr>\n<tr>\n<td>SDK Peripheral Drivers<\/td>\n<td><code>modules\\nrfx\\drivers\\include\\nrfx_uart.h<\/code><\/td>\n<td><code>nrfx_uart_tx()<\/code><\/td>\n<\/tr>\n<tr>\n<td>SDK Glue to CMSIS\/NVIC<\/td>\n<td><code>integration\\nrfx\\nrfx_glue.h<\/code><\/td>\n<td><code>NRFX_IRQ_ENABLE()<\/code><\/td>\n<\/tr>\n<tr>\n<td>CMSIS\/NVIC<\/td>\n<td><code>components\\toolchain\\cmsis\\include\\core_cm4.h<\/code><\/td>\n<td><code>nrf_drv_uart_tx()<\/code><\/td>\n<\/tr>\n<tr>\n<td>SDK HAL<\/td>\n<td><code>modules\\nrfx\\hal\\nrf_uart.h<\/code><\/td>\n<td><code>nrf_uart_txd_set()<\/code><\/td>\n<\/tr>\n<tr>\n<td>nRF52 Registers<\/td>\n<td><code>modules\\nrfx\\mdk\\nrf52.h<\/code><\/td>\n<td><code>NRF_UART_Type<\/code><\/td>\n<\/tr>\n<\/table>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\u251c\u2500\u2500 components\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 802_15_4\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 ant\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ant_channel_config\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ant_encryption\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ant_fs\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ant_key_manager\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ant_profiles\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ant_search_config\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 ant_state_indicator\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 ble\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ble_advertising\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ble_db_discovery\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ble_dtm\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ble_link_ctx_manager\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ble_racp\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ble_radio_notification\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ble_services\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 common\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf_ble_gatt\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf_ble_qwr\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf_ble_scan\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 peer_manager\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 boards\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 drivers_ext (Sensors \/ Actuators)\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 drivers_nrf\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf_soc_nosd\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 radio_config\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 sdio\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 spi_master\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 twi_master\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 usbd\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 iot\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 background_dfu\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ble_6lowpan\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 coap\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 common\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 context_manager\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 errno\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 iot_file\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 iot_timer\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ipv6_parse\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ipv6_stack\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 lwm2m\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 medium\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 mqtt\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 socket\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 libraries\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 atomic\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 atomic_fifo\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 atomic_flags\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 balloc\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 block_dev\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 bootloader\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 bsp\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 button\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 cli\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 crc16\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 crc32\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 crypto\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 csense\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 csense_drv\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 delay\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ecc\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 experimental_libuarte\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 experimental_section_vars\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 experimental_task_manager\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 fds\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 fifo\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 fstorage\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 gfx\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 gpiote\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 hardfault\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 hci\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 led_softblink\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 log\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 low_power_pwm\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 mem_manager\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 memobj\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 mpu\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 mutex\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 pwm\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 pwr_mgmt\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 queue\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ringbuf\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 scheduler\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 sdcard\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 sensorsim\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 serial          (SDK Libraries) -&gt; nrf_serial_write()\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 sha256\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 simple_timer\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 slip\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 sortlist\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 spi_mngr\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 stack_guard\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 stack_info\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 strerror\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 svc\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 timer\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 twi_mngr\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 twi_sensor\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 uart\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 usbd\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 util\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 nfc\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 proprietary_rf\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 esb\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 gzll\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 serialization\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 application\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 common\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 connectivity\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 softdevice\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 common\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 mbr\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf52810\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf52832\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 nrf52840\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 s112\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 s132\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 s140\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 s212\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 toolchain\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 arm\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 cmsis\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 gcc\r\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 iar\r\n\u251c\u2500\u2500 config\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf52810\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf52832\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 nrf52840\r\n\u251c\u2500\u2500 documentation\r\n\u251c\u2500\u2500 external\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 cifra_AES128-EAX\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 cJSON\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 fatfs\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 fnmatch\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 fprintf\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 freertos\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 infineon\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 lwip\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 mbedtls\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 micro-ecc\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 nano\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 nano-pb\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 nfc_adafruit_library\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf_cc310\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf_cc310_bl\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf_oberon\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 nrf_tls\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 mbedtls\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 protothreads\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 segger_rt\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 thedotfactory_fonts\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 utf_converter\r\n\u251c\u2500\u2500 external_tools\r\n\u251c\u2500\u2500 integration\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 nrfx\r\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 legacy   (SDK Legacy Drivers) -&gt; nrf_drv_uart_tx()\r\n\u2514\u2500\u2500 modules\r\n    \u2514\u2500\u2500 nrfx\r\n        \u251c\u2500\u2500 doc\r\n        \u251c\u2500\u2500 drivers  (SDK Peripheral Drivers) -&gt; nrfx_uart_tx()\r\n        \u251c\u2500\u2500 hal      (SDK HAL) -&gt; nrf_uart_txd_set()\r\n        \u2502                      -&gt; nrf_gpio_cfg_output()\r\n        \u251c\u2500\u2500 mdk\r\n        \u2514\u2500\u2500 soc\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>SDK Libraries components\\libraries\\serial\\nrf_serial.c nrf_serial_write(), serial_tx() SDK Legacy Drivers integration\\nrfx\\legacy\\nrf_drv_uart.h nrf_drv_uart_tx() SDK Peripheral Drivers modules\\nrfx\\drivers\\include\\nrfx_uart.h nrfx_uart_tx() SDK Glue to CMSIS\/NVIC integration\\nrfx\\nrfx_glue.h NRFX_IRQ_ENABLE() CMSIS\/NVIC components\\toolchain\\cmsis\\include\\core_cm4.h nrf_drv_uart_tx() SDK HAL modules\\nrfx\\hal\\nrf_uart.h nrf_uart_txd_set() nRF52 Registers modules\\nrfx\\mdk\\nrf52.h NRF_UART_Type \u251c\u2500\u2500 components \u2502\u00a0\u00a0 \u251c\u2500\u2500 802_15_4 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ant \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ant_channel_config \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ant_encryption \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ant_fs \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8985","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/8985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8985"}],"version-history":[{"count":10,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/8985\/revisions"}],"predecessor-version":[{"id":9150,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/8985\/revisions\/9150"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}