{"id":5966,"date":"2022-12-13T13:36:31","date_gmt":"2022-12-13T04:36:31","guid":{"rendered":"https:\/\/solid.kmckk.com\/SOLID\/?p=5966"},"modified":"2022-12-19T13:16:16","modified_gmt":"2022-12-19T04:16:16","slug":"solid%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86%e3%82%b7%e3%83%aa%e3%83%bc%e3%82%ba3-%e3%80%8c%e3%82%b3%e3%83%bc%e3%83%89%e3%82%ab%e3%83%90%e3%83%ac%e3%83%83%e3%82%b8%e3%80%8d-2-5-2-2-2","status":"publish","type":"post","link":"https:\/\/solid.kmckk.com\/SOLID\/archives\/5966","title":{"rendered":"SOLID for Raspberry Pi 4 (\u9023\u8f098)"},"content":{"rendered":"<div id=\"pl-5966\"  class=\"panel-layout\" ><div id=\"pg-5966-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-5966-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-5966-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p style=\"text-align: right;\">(2022\/12\/13)<\/p>\n<\/div>\n<\/div><\/div><div id=\"panel-5966-0-0-1\" class=\"so-panel widget widget_sow-editor\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t><h3 class=\"widget-title\">\u30af\u30ec\u30fc\u30c8\u3092\u4f5c\u3063\u3066\u307f\u3088\u3046<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>\u524d\u56de\u3001Rust\u306e\u7279\u5fb4\u306e\u4e00\u3064\u3067\u3042\u308b\u300c\u4f9d\u5b58\u95a2\u4fc2\u300d\u306b\u3064\u3044\u3066\u3001\u4f7f\u3046\u5074\u3068\u3057\u3066\u898b\u3066\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>\u4eca\u56de\u306f\u3001\u305d\u306e\u3001\u4f9d\u5b58\u3055\u308c\u308b\u5074\u3068\u306a\u308b\u30af\u30ec\u30fc\u30c8\u3092\u4f5c\u3063\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<\/div>\n<\/div><\/div><div id=\"panel-5966-0-0-2\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"2\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t><h3 class=\"widget-title\">\uff11\uff0e \u30af\u30ec\u30fc\u30c8\u306e\u4f7f\u3044\u65b9\u304a\u3055\u3089\u3044<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>\u307e\u305a\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u3068\u306f\u4f55\u3092\u6307\u3059\u306e\u304b\u3002<\/p>\n<p>Cargo\u306b\u304a\u3051\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u306f\u3001<br \/>\n\u300c\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u3067\u7ba1\u7406\u3067\u304d\u308bRust\u30b3\u30fc\u30c9\u306e\u5358\u4f4d\u300d<br \/>\n\u3068\u7406\u89e3\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3067\u306f\u3001\u7ba1\u7406\u3001\u3068\u306f\u3002<\/p>\n<p>\u304a\u304a\u3056\u3063\u3071\u306b\u8a00\u3046\u3068\u3001<br \/>\n\u300c\u305d\u306eRust\u30b3\u30fc\u30c9\u3092\u30d3\u30eb\u30c9\u30fb\u30ea\u30f3\u30af\u3059\u308b\u969b\u306b\u5fc5\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\uff08\u3060\u3044\u305f\u3044\u30e9\u30a4\u30d6\u30e9\u30ea\uff09\u3092\u628a\u63e1\u3057\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3001\u30d3\u30eb\u30c9\uff06\u30ea\u30f3\u30af\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u300d<br \/>\n\u3068\u306a\u308a\u307e\u3059\u3002<br \/>\n\u3053\u308c\u304cCargo\u306e\u5f79\u76ee\u3067\u3059\u3002<\/p>\n<p>\u5177\u4f53\u7684\u306b\u3069\u3046\u3044\u3046\u4e8b\u3092\u3057\u3066\u3044\u308b\u306e\u304b\u3001\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<p>\u30d3\u30eb\u30c9\u6642\u306b\u3001\u5bfe\u8c61\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u542b\u3081\u308b\u624b\u7d9a\u304d\u306b\u95a2\u3057\u3066\u306f\u3001\u524d\u56de\u306e\u8a18\u4e8b\u3067\u898b\u305f\u3088\u3046\u306b\u3001<br \/>\n\u30fbCargo.toml\u306e[dependencies]\u306b\u3001\u4f7f\u3044\u305f\u3044\u30af\u30ec\u30fc\u30c8\u3092\u660e\u8a00\u3059\u308b\u3002<br \/>\n\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u81ea\u5206\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u5185\u3067\u305d\u306e\u95a2\u6570\u3092\u30b3\u30fc\u30eb\u3059\u308b\u624b\u7d9a\u304d\u306b\u3064\u3044\u3066\u3001\u300cRust\u3067L\u30c1\u30ab (\u9023\u8f094)\u300d\u3067\u4f7f\u7528\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<br \/>\nhttps:\/\/github.com\/KyotoMicrocomputer\/solid-rapi4-examples\/blob\/main\/rust-blinky-pac-rtos\/rustapp\/src\/lib.rs<\/p>\n<p>mod green_led \u306e\u4e2d\u3067\u3001<br \/>\nuse bcm2711_pac::gpio;<br \/>\n\u3068\u66f8\u3044\u3066\u3044\u307e\u3059\u3002<br \/>\n\u305d\u3057\u3066\u3001\u81ea\u5206\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\uff08green_led\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30b9\u30b3\u30fc\u30d7\u5185\uff09\u3067\u3001<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>\nfn gpio_regs() -&gt; &amp;'static gpio::Registers {\n\/\/ Safety: SOLID for RaPi4B provides an identity mapping in this area, and we don't alter\n\/\/ the mapping\nunsafe { &amp;*(gpio::BASE.to_arm_pa().unwrap() as usize as *const gpio::Registers) }\n}\n<\/code><\/pre>\n<\/div>\n<p>\u3068\u3001\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><div id=\"pg-5966-1\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-5966-1-0\"  class=\"panel-grid-cell\" ><div id=\"panel-5966-1-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child\" data-index=\"3\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t><h3 class=\"widget-title\">\uff12\uff0e\u30af\u30ec\u30fc\u30c8\u3092\u4f5c\u3063\u3066\u307f\u308b<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>&nbsp;<\/p>\n<p>\u305b\u3063\u304b\u304f\u306a\u306e\u3067\u3001\u5148\u307b\u3069\u306e\u4f8b\u306egreen_led\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u3001\u30af\u30ec\u30fc\u30c8\u5316\u3057\u3066\u3001\u30e1\u30a4\u30f3\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u304b\u3089\u4f7f\u3063\u3066\u307f\u307e\u3057\u3087\u3046\u3002<br \/>\n\u30e1\u30a4\u30f3\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u3001\u3068\u3066\u3082\u3059\u3063\u304d\u308a\u3059\u308b\u306f\u305a\u3067\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>2.1 \u3000\u65b0\u3057\u3044Cargo\u30d1\u30c3\u30b1\u30fc\u30b8\u4f5c\u6210<\/h3>\n<p>\u307e\u305a\u3001\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u958b\u304d\u3001\u9069\u5f53\u306a\u30d5\u30a9\u30eb\u30c0\u3067cargo new green_led --lib\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/1-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5968 size-medium\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/1-1-300x108.png\" alt=\"\" width=\"300\" height=\"108\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/1-1-300x108.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/1-1.png 565w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>green_led\u30d5\u30a9\u30eb\u30c0\u304c\u751f\u6210\u3055\u308c\u3001\u305d\u306e\u4e2d\u306b\u65b0\u3057\u3044Cargo\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u751f\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u65b0\u3057\u3044Cargo\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4e2d\u306b\u3042\u308blib.rs\u306b\u3001green_led\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u5185\u5bb9\u3092\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002<br \/>\n\u305d\u3057\u3066\u3001Cargo.toml\u306b\u306f\u3001green_led\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u5fc5\u8981\u3068\u3059\u308b\u4f9d\u5b58\u95a2\u4fc2\u306e\u5b9a\u7fa9\u3092\u3057\u307e\u3059\u3002<\/p>\n<p>\u9806\u756a\u306b\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>2.2 \u3000green_led\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u5185\u5bb9\u3092lib.rs\u306b\u30b3\u30d4\u30fc<\/h3>\n<p>\u30e2\u30b8\u30e5\u30fc\u30eb\u540d\u306f\u3001Cargo.toml\u3067\u5f8c\u304b\u3089\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u3001\u3053\u3053\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u5ba3\u8a00\u6587\u4e0d\u8981\u3067\u3059\u3002<br \/>\n\u305d\u306e\u4ed6\u3092\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002<\/p>\n<p>\u3067\u304d\u304c\u3063\u305flib.rs\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>\nuse bcm2711_pac::gpio;\nuse tock_registers::interfaces::{ReadWriteable, Writeable};\nconst GPIO_NUM: usize = 42;\n\nfn gpio_regs() -&gt; &amp;'static gpio::Registers {\n   \/\/ Safety: SOLID for RaPi4B provides an identity mapping in this area, and we don't alter\n\/\/ the mapping\n   unsafe { &amp;*(gpio::BASE.to_arm_pa().unwrap() as usize as *const gpio::Registers) }\n}\npub fn init() {\n   \/\/ Configure the GPIO pin for output\n   gpio_regs().gpfsel[GPIO_NUM \/ gpio::GPFSEL::PINS_PER_REGISTER].modify(\n   gpio::GPFSEL::pin(GPIO_NUM % gpio::GPFSEL::PINS_PER_REGISTER).val(gpio::GPFSEL::OUTPUT),\n   );\n}\npub fn update(new_state: bool) {\n   if new_state {\n      gpio_regs().gpset[GPIO_NUM \/ gpio::GPSET::PINS_PER_REGISTER]\n.write(gpio::GPSET::set(GPIO_NUM % gpio::GPSET::PINS_PER_REGISTER));\n   } else {\n      gpio_regs().gpclr[GPIO_NUM \/ gpio::GPCLR::PINS_PER_REGISTER].write(gpio::GPCLR::clear(\n      GPIO_NUM % gpio::GPCLR::PINS_PER_REGISTER,\n      ));\n   }\n}\n<\/code><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<h3>2.3 \u3000Cargo.toml\u7de8\u96c6<\/h3>\n<p>Cargo.toml\u306b\u306f\u3001\u4f9d\u5b58\u95a2\u4fc2\u3092\u660e\u8a00\u3057\u307e\u3059\u3002<\/p>\n<p>use bcm2711_pac::gpio;<br \/>\nuse tock_registers::interfaces::{ReadWriteable, Writeable};<br \/>\n\u3092\u4f7f\u3044\u305f\u3044\u3068\u5ba3\u8a00\u3057\u3066\u3044\u308b\u306e\u3067\u3001\u5bfe\u8c61\u306e\u30af\u30ec\u30fc\u30c8\u304c\u4f9d\u5b58\u95a2\u4fc2\u3068\u3057\u3066\u660e\u8a00\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u3064\u3044\u3067\u306b\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u540d\u3082\u5909\u3048\u3066\u304a\u304d\u307e\u3057\u3087\u3046\u3002green_led_operation\u3068\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<p>\u3067\u304d\u3042\u304c\u3063\u305fCargo.toml\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>\n[package]\nname = \"green_led_operation\"\nversion = \"0.1.0\"\nedition = \"2021\"\n\n# See more keys and their definitions at https:\/\/doc.rust-lang.org\/cargo\/reference\/manifest.html\n\n[dependencies]\ntock-registers = \"0.7.0\"\nbcm2711_pac = { git = \"https:\/\/github.com\/KyotoMicrocomputer\/solid-rapi4-examples.git\" }\n<\/code><\/pre>\n<\/div>\n<p>\u3053\u3053\u3067\u30d5\u30a9\u30eb\u30c0\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5969\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/2-300x137.png\" alt=\"\" width=\"300\" height=\"137\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/2-300x137.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/2.png 416w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>src\u30d5\u30a9\u30eb\u30c0\u5185\u306b\u5148\u7a0b\u7de8\u96c6\u3057\u305flib.rs\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\n\u3053\u308c\u3067green_led_operation\u30af\u30ec\u30fc\u30c8\u304c\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<h3>2.4 green_led_operation\u30af\u30ec\u30fc\u30c8\u3092\u4f7f\u3063\u3066\u307f\u308b<\/h3>\n<p>\u3067\u306f\u3053\u3053\u3067\u3001SOLID-IDE\u3092\u4f7f\u3063\u3066\u3001\u65b0\u898f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<p>Rust\u3067L\u30c1\u30ab (\u9023\u8f094)\u306e\u8a18\u4e8b\u3092\u53c2\u7167\u3057\u3066\u3044\u305f\u3060\u304f\u3068\u3001\u4f5c\u6210\u65b9\u6cd5\u3092\u8a18\u8f09\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u7c21\u5358\u306b\u306f\u3001<br \/>\n\u2460C++\u3067\u65b0\u898f\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u3092\u4f5c\u6210<br \/>\n\u2461Rust\u306eLibrary\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u306b\u8ffd\u52a0\u3059\u308b<br \/>\n\u2462\u30e1\u30a4\u30f3\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30ea\u30f3\u30ab\u8a2d\u5b9a\u3067\u3001 \u8ffd\u52a0\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u30d5\u30a1\u30a4\u30eb \u306b\u30e9\u30a4\u30d6\u30e9\u30ea\u540d\u3092\u6307\u5b9a<br \/>\n\u2463main.cpp\u3092\u7a7a\u306b\u3059\u308b<br \/>\n\u2464lib.rs\u306b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304f<\/p>\n<p>\u3053\u3061\u3089\u306elib.rs\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u3044\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>\nuse itron::{task::delay, time::duration};\nuse green_led_operation::{init, update};\n\n#[no_mangle]\n\npub extern \"C\" fn slo_main()\n{\n   println!(\"Starting LED blinker\");\n\n   \/\/ Configure the LED port\n   init();\n\n   loop {\n   \/\/ Turn on the LED\n      update(true);\n      delay(duration!(ms: 200)).unwrap();\n\n   \/\/ Turn off the LED\n      update(false);\n      delay(duration!(ms: 200)).unwrap();\n   }\n}\n<\/code><\/pre>\n<\/div>\n<p><a href=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5970 size-medium\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/3-300x189.png\" alt=\"\" width=\"300\" height=\"189\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/3-300x189.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/3-768x484.png 768w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/3-1024x645.png 1024w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/3.png 1064w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u305d\u3057\u3066\u3001\u4f9d\u5b58\u95a2\u4fc2\u3092\u660e\u8a00\u3059\u308b\u305f\u3081\u306b\u3001Cargo.toml\u3092\u7de8\u96c6\u3057\u307e\u3059\u3002<br \/>\n\u4eca\u56de\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u66f8\u304d\u307e\u3057\u305f\u3002<br \/>\n\u4f5c\u6210\u3057\u305fgreen_led_operation\u30af\u30ec\u30fc\u30c8\u304c\u5b58\u5728\u3059\u308b\u30d5\u30a9\u30eb\u30c0\u3092\u660e\u8a18\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n[package]\nname = \"rust_lib1\"<br \/>\nversion = \"0.1.0\"<br \/>\nedition = \"2021\"<\/p>\n<p># See more keys and their definitions at https:\/\/doc.rust-lang.org\/cargo\/reference\/manifest.html<\/p>\n[dependencies]\nitron = { version = \"= 0.1.9\", features = [\"unstable\", \"nightly\", \"solid_fmp3\"] }<br \/>\ngreen_led_operation.path = \"..\/..\/green_led\"<\/p>\n[lib]\ncrate-type = [\"staticlib\"]\n<p><a href=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5971 size-medium\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/4-300x113.png\" alt=\"\" width=\"300\" height=\"113\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/4-300x113.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/4-768x289.png 768w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/4-1024x386.png 1024w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/4.png 1046w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u203bgreen_led_operation.path\u306f\u3001WindowsPC\u306e\u30d5\u30eb\u30d1\u30b9\u6307\u5b9a\u3067\u3082\u5927\u4e08\u592b\u3067\u3059\u3002\u4f8b\u3048\u3070\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u3002<\/p>\n<p>green_led_operation.path = \"C:\\\\Users\\\\user\\\\green_led\"<\/p>\n<p>&nbsp;<\/p>\n<h3>2.5 \u30d3\u30eb\u30c9\uff06\u5b9f\u884c<\/h3>\n<p>\u30d3\u30eb\u30c9\u3057\u3001\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3002<br \/>\n\u305b\u3063\u304b\u304f\u306a\u306e\u3067\u3001\u30d6\u30ec\u30fc\u30af\u30dd\u30a4\u30f3\u30c8\u3092\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5972 size-medium\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/5-300x176.png\" alt=\"\" width=\"300\" height=\"176\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/5-300x176.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/5-768x450.png 768w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/5-1024x600.png 1024w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/5.png 1053w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5973 size-medium\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/6-300x267.png\" alt=\"\" width=\"300\" height=\"267\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/6-300x267.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/6-768x683.png 768w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/6-1024x911.png 1024w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/6.png 1063w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u30b9\u30c6\u30c3\u30d7\u30a4\u30f3\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5974\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/7-300x182.png\" alt=\"\" width=\"300\" height=\"182\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/7-300x182.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/7-768x465.png 768w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/7-1024x620.png 1024w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2022\/12\/7.png 1034w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>\u5148\u7a0b\u4f5c\u6210\u3057\u305fgreen_led_operation\u30af\u30ec\u30fc\u30c8\u306e\u30d5\u30a1\u30a4\u30eb\u5185\u306b\u5165\u3063\u3066\u884c\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>\u3068\u3044\u3046\u4e8b\u3067\u3001\u7121\u4e8b\u3001\u30af\u30ec\u30fc\u30c8\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div><\/div><div id=\"panel-5966-1-0-1\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"4\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t><h3 class=\"widget-title\">\uff13\uff0eC\u8a00\u8a9e\u3068\u306e\u5bfe\u6bd4<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u542b\u307e\u308c\u308b\u95a2\u6570\u306e\u4f7f\u3044\u65b9\u306b\u304a\u3051\u308b\u3001C\u8a00\u8a9e\u3068Rust\u3067\u306e\u9055\u3044\u306b\u3064\u3044\u3066\u3001\u6709\u8b58\u8005\u306e\u65b9\u306b\u52a9\u8a00\u3092\u3044\u305f\u3060\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>C\u8a00\u8a9e\u3067\u306f\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f5c\u6210\u3068\u4f7f\u7528\u306f\u6b21\u306e\u624b\u9806\u306b\u5206\u89e3\u3067\u304d\u307e\u3059 (\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30d3\u30eb\u30c9\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d3\u30eb\u30c9\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u5185\u3067\u884c\u3046\u3082\u306e\u3068\u4eee\u5b9a\u3059\u308b)\u3002<\/p>\n<p>1. \u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\u306e\u30d7\u30ed\u30c8\u30bf\u30a4\u30d7\u3092 foo.h \u3067\u5ba3\u8a00\u3059\u308b\u3002(void func(void);)<br \/>\n2. \u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\u3092 foo.c \u3067\u5b9f\u88c5\u3059\u308b\u3002(void func() { ... })<br \/>\n3. \u30e6\u30fc\u30b6\u30fc\u306f foo.c \u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u30ea\u30f3\u30af\u3059\u308b\u30b9\u30c6\u30c3\u30d7\u3092\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d3\u30eb\u30c9\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306b\u8ffd\u52a0\u3059\u308b\u3002<br \/>\n4. app.c \u304b\u3089 foo.h \u3092 #include \u3059\u308b\u3002<br \/>\n5. app.c \u306b func \u3092\u547c\u3073\u51fa\u3059\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3059\u308b\u3002(func();)<br \/>\n6. make<\/p>\n<p>\u3053\u308c\u3089\u306f\u6b21\u306e\u3088\u3046\u306bRust\u3068\u5bfe\u5fdc\u4ed8\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>1. (2\u306b\u76f8\u5f53) \u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\u3092 foo\/src\/lib.rs \u3067\u5b9f\u88c5\u3059\u308b\u3002(fn func() { ... })<br \/>\n2. (3, 4\u306b\u76f8\u5f53) foo \u3092 app\/Cargo.toml \u306e [dependencies] \u306b\u8ffd\u52a0\u3059\u308b\u3002<br \/>\n3. (5\u306b\u76f8\u5f53) app\/src\/main.rs \u306b func \u3092\u547c\u3073\u51fa\u3059\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3059\u308b\u3002(foo::func();)<br \/>\n4. (6\u306b\u76f8\u5f53) cargo build<\/p>\n<p>\u305f\u3060\u3057\u3001\u30d7\u30ed\u30b0\u30e9\u30de\u89b3\u70b9\u3067\u306fC\u8a00\u8a9e\u306b\u304a\u3044\u30661\u306b\u76f8\u5f53\u3059\u308b\u624b\u9806\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n<p>Rust\u3067\u306f\u30d7\u30ed\u30c8\u30bf\u30a4\u30d7\u5ba3\u8a00\u306b\u76f8\u5f53\u3059\u308b\u3082\u306e\u304c\u4e0d\u8981\u3067\u3042\u308b\u7b49\u306e\u9055\u3044\u306f\u3042\u308a\u307e\u3059\u304c\u3001\u5fc5\u8981\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u3069\u3053\u304b\u3067\u6307\u5b9a\u3057\u305f\u3089\u9759\u7684\u30ea\u30f3\u30af\u3055\u308c\u3001\u81ea\u5206\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e2d\u3067\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308b\u3068\u3044\u3046\u57fa\u672c\u7684\u306a\u6d41\u308c\u306f\u4f3c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u4eca\u56de\u306f\u3053\u3053\u307e\u3067\u3002<br \/>\n\u6b21\u56de\u306f\u300c<a href=\"https:\/\/solid.kmckk.com\/SOLID\/archives\/6014\">Rust\u306e\u6587\u6cd5<\/a>\u300d\u3092\u898b\u3066\u307f\u3088\u3046\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><div id=\"pg-5966-2\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-5966-2-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-5966-3\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-5966-3-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-5966-4\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-5966-4-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-5966-5\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-5966-5-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-5966-6\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-5966-6-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-5966-7\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-5966-7-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-5966-8\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-5966-8-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-5966-9\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-5966-9-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>(2022\/12\/13) \u524d\u56de\u3001Rust\u306e\u7279\u5fb4\u306e\u4e00\u3064\u3067\u3042\u308b\u300c\u4f9d\u5b58\u95a2\u4fc2\u300d\u306b\u3064\u3044\u3066\u3001\u4f7f\u3046\u5074\u3068\u3057\u3066\u898b\u3066\u304d\u307e\u3057\u305f\u3002 \u4eca\u56de\u306f\u3001\u305d\u306e\u3001\u4f9d\u5b58\u3055\u308c\u308b\u5074\u3068\u306a\u308b\u30af\u30ec\u30fc\u30c8\u3092\u4f5c\u3063\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002 \u307e\u305a\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u3068\u306f\u4f55\u3092\u6307\u3059\u306e\u304b\u3002 Car [&hellip;]<\/p>\n","protected":false},"author":15,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5966","post","type-post","status-publish","format-standard","hentry","category-1"],"_links":{"self":[{"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/posts\/5966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/comments?post=5966"}],"version-history":[{"count":0,"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/posts\/5966\/revisions"}],"wp:attachment":[{"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/media?parent=5966"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/categories?post=5966"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/tags?post=5966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}