{"id":45579,"date":"2024-01-08T21:02:56","date_gmt":"2023-01-30T19:01:48","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/"},"modified":"2024-05-04T17:26:12","modified_gmt":"2024-05-04T09:26:12","slug":"45579-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/","title":{"rendered":""},"content":{"rendered":"<p>\u300c\u30ea\u30e2\u30fc\u30c8\u74b0\u5883\u3067 Wio Terminal \u3067\u7d44\u307f\u8fbc\u307f Rust \u3092\u52d5\u304b\u3057\u3066\u307f\u308b\u30cf\u30f3\u30ba\u30aa\u30f3\u300d<br \/>\nhttps:\/\/qiita.com\/nanbuwks\/items\/0d1be9589b4b94bc32b4<\/p>\n<p>\u3067\u4f7f\u3046\u3053\u3068\u3092\u60f3\u5b9a\u3057\u305f\u30c6\u30ad\u30b9\u30c8\u3067\u3059\u3002<\/p>\n<p>\u4ee5\u4e0b\u306f Linux PC \u7528\u3067\u3059\u304c\u3001\u4ed6\u306eOS\u3082\u5927\u304d\u304f\u9055\u308f\u306a\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n<h1>\u74b0\u5883<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ubuntu 20.04 LTS<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Wio Terminal<\/ul>\n<p>(2022\/07\/30 \u8ffd\u8a18\uff1a Ubuntu 22.04 LTS \u74b0\u5883\u3067\u3082\u78ba\u8a8dOK\u3067\u3057\u305f )<\/p>\n<h1>\u30c6\u30ad\u30b9\u30c8\u306e\u6d41\u308c<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Rust\u958b\u767a\u74b0\u5883\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">hello.rs \u3092 PC \u3067\u5b9f\u884c\u3057\u3066\u307f\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30af\u30ec\u30fc\u30c8\u3067\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066\u307f\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30af\u30ed\u30b9\u958b\u767a\u74b0\u5883\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">hello.rs \u304c\u30af\u30ed\u30b9\u30d3\u30eb\u30c9\u3067\u304d\u306a\u3044<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">ATSAMD Rust\u30ec\u30dd\u30b8\u30c8\u30ea\u3092\u5229\u7528\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30d3\u30eb\u30c9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">uf2 \u30d5\u30a1\u30a4\u30eb\u4f5c\u6210<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u66f8\u304d\u8fbc\u307f<\/ul>\n<h1>Rust \u958b\u767a\u74b0\u5883\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h1>\n<p>https:\/\/rustup.rs\/ \u306b\u30a2\u30af\u30bb\u30b9\u3057\u3001\u793a\u3055\u308c\u3066\u3044\u308b\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5fca37434c4406cf8ee1\/10-0.png\" alt=\"image.png\" \/><\/div>\n<pre class=\"post-pre\"><code>\r\ncurl --proto '=https' --tlsv1.2 -sSf https:\/\/sh.rustup.rs | sh\r\n<\/code><\/pre>\n<p>\u3053\u308c\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u304c\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3055\u308c\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u308b\u3002<\/p>\n<pre class=\"post-pre\"><code>info: downloading installer\r\n\r\nWelcome to Rust!\r\n\r\nThis will download and install the official compiler for the Rust\r\nprogramming language, and its package manager, Cargo.\r\n\r\nRustup metadata and toolchains will be installed into the Rustup\r\nhome directory, located at:\r\n\r\n  \/home\/nanbuwks\/.rustup\r\n\r\nThis can be modified with the RUSTUP_HOME environment variable.\r\n\r\nThe Cargo home directory located at:\r\n\r\n  \/home\/nanbuwks\/.cargo\r\n\r\nThis can be modified with the CARGO_HOME environment variable.\r\n\r\nThe cargo, rustc, rustup and other commands will be added to\r\nCargo's bin directory, located at:\r\n\r\n  \/home\/nanbuwks\/.cargo\/bin\r\n\r\nThis path will then be added to your PATH environment variable by\r\nmodifying the profile files located at:\r\n\r\n  \/home\/nanbuwks\/.profile\r\n  \/home\/nanbuwks\/.bash_profile\r\n  \/home\/nanbuwks\/.bashrc\r\n\r\nYou can uninstall at any time with rustup self uninstall and\r\nthese changes will be reverted.\r\n\r\nCurrent installation options:\r\n\r\n\r\n   default host triple: x86_64-unknown-linux-gnu\r\n     default toolchain: stable (default)\r\n               profile: default\r\n  modify PATH variable: yes\r\n\r\n1) Proceed with installation (default)\r\n2) Customize installation\r\n3) Cancel installation\r\n&gt;\r\n\r\n\r\n<\/code><\/pre>\n<ol>\u3092\u9078\u3093\u3067\u3001\u958b\u767a\u74b0\u5883\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\/\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/ol>\n<pre class=\"post-pre\"><code>\r\ninfo: profile set to 'default'\r\ninfo: default host triple is x86_64-unknown-linux-gnu\r\ninfo: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'\r\ninfo: latest update on 2021-07-29, rust version 1.54.0 (a178d0322 2021-07-26)\r\ninfo: downloading component 'cargo'\r\ninfo: downloading component 'clippy'\r\ninfo: downloading component 'rust-docs'\r\n 16.7 MiB \/  16.7 MiB (100 %)  10.1 MiB\/s in  1s ETA:  0s\r\ninfo: downloading component 'rust-std'\r\n 21.9 MiB \/  21.9 MiB (100 %)  10.4 MiB\/s in  2s ETA:  0s\r\ninfo: downloading component 'rustc'\r\n 50.1 MiB \/  50.1 MiB (100 %)  10.6 MiB\/s in  5s ETA:  0s\r\ninfo: downloading component 'rustfmt'\r\ninfo: installing component 'cargo'\r\n  6.0 MiB \/   6.0 MiB (100 %)   4.6 MiB\/s in  1s ETA:  0s\r\ninfo: installing component 'clippy'\r\ninfo: installing component 'rust-docs'\r\n 16.7 MiB \/  16.7 MiB (100 %)   1.9 MiB\/s in  8s ETA:  0s\r\ninfo: installing component 'rust-std'\r\n 21.9 MiB \/  21.9 MiB (100 %)   4.6 MiB\/s in  4s ETA:  0s\r\ninfo: installing component 'rustc'\r\n 50.1 MiB \/  50.1 MiB (100 %)   5.0 MiB\/s in  9s ETA:  0s\r\ninfo: installing component 'rustfmt'\r\ninfo: default toolchain set to 'stable-x86_64-unknown-linux-gnu'\r\n\r\n  stable-x86_64-unknown-linux-gnu installed - rustc 1.54.0 (a178d0322 2021-07-26)\r\n\r\n\r\nRust is installed now. Great!\r\n\r\nTo get started you may need to restart your current shell.\r\nThis would reload your PATH environment variable to include\r\nCargo's bin directory ($HOME\/.cargo\/bin).\r\n\r\nTo configure your current shell, run:\r\nsource $HOME\/.cargo\/env\r\n<\/code><\/pre>\n<p>\u6700\u5f8c\u306e\u8868\u793a\u306e\u3068\u304a\u308a\u3001\u4ee5\u4e0b\u3092\u5b9f\u884c\u3057\u3066 Rust \u30c4\u30fc\u30eb\u30c1\u30a7\u30a4\u30f3\u306e\u30d1\u30b9\u3092\u901a\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ source $HOME\/.cargo\/env\r\n<\/code><\/pre>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u305f\u3082\u306e\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ ls ~\/.cargo\/bin\r\ncargo         cargo-fmt   clippy-driver  rust-gdb   rustc    rustfmt\r\ncargo-clippy  cargo-miri  rls            rust-lldb  rustdoc  rustup\r\n<\/code><\/pre>\n<p>\u3053\u306e\u6642\u70b9\u3067\u3001\u30b5\u30fc\u30d0\u3067\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u308b\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ cargo new hello\r\n     Created binary (application) `hello` package\r\n\r\n<\/code><\/pre>\n<p>cargo \u3068\u306f\u3001Rust \u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u304a\u3088\u3073\u30d3\u30eb\u30c9\u30c4\u30fc\u30eb<\/p>\n<pre class=\"post-pre\"><code>\r\n$ ls -alh\r\n\u5408\u8a08 64K\r\ndrwxrwxr-x  3 nanbuwks nanbuwks 4.0K  8\u6708  2 19:28 .\r\ndrwxr-xr-x 61 nanbuwks nanbuwks  52K  8\u6708  2 19:27 ..\r\ndrwxrwxr-x  4 nanbuwks nanbuwks 4.0K  8\u6708  2 19:28 hello\r\n<\/code><\/pre>\n<p>hello \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u3067\u304d\u3066\u3044\u308b\u3002<\/p>\n<pre class=\"post-pre\"><code>$ cd hello\r\n$ ls -alh\r\n\u5408\u8a08 24K\r\ndrwxrwxr-x 4 nanbuwks nanbuwks 4.0K  8\u6708  2 19:28 .\r\ndrwxrwxr-x 3 nanbuwks nanbuwks 4.0K  8\u6708  2 19:28 ..\r\ndrwxrwxr-x 6 nanbuwks nanbuwks 4.0K  8\u6708  2 19:28 .git\r\n-rw-rw-r-- 1 nanbuwks nanbuwks    8  8\u6708  2 19:28 .gitignore\r\n-rw-rw-r-- 1 nanbuwks nanbuwks  174  8\u6708  2 19:28 Cargo.toml\r\ndrwxrwxr-x 2 nanbuwks nanbuwks 4.0K  8\u6708  2 19:28 src\r\n\r\n<\/code><\/pre>\n<p>hello\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u3063\u3066\u4f5c\u696d\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ls -alh src\r\n\u5408\u8a08 12K\r\ndrwxrwxr-x 2 nanbuwks nanbuwks 4.0K  8\u6708  2 19:28 .\r\ndrwxrwxr-x 4 nanbuwks nanbuwks 4.0K  8\u6708  2 19:28 ..\r\n-rw-rw-r-- 1 nanbuwks nanbuwks   45  8\u6708  2 19:28 main.rs\r\n<\/code><\/pre>\n<p>src\/main.rs \u304c\u3067\u304d\u3066\u3044\u308b\u306e\u3067\u7de8\u96c6<\/p>\n<pre class=\"post-pre\"><code>\r\nfn main() {\r\n    println!(\"Hello, world!\");\r\n}\r\n<\/code><\/pre>\n<p>\u304a\u3063\u3068\u3001\u3082\u3046\u4e2d\u8eab\u304c\u3067\u304d\u3066\u3044\u307e\u3059\u306d\u3002<\/p>\n<p>\u305d\u306e\u307e\u307e\u4e2d\u65ad\u3057\u3066\u3001<\/p>\n<pre class=\"post-pre\"><code>\r\n$ cargo build\r\n   Compiling hello v0.1.0 (\/home\/nanbuwks\/Downloads\/rust\/hello)\r\n    Finished dev [unoptimized + debuginfo] target(s) in 1.96s\r\n<\/code><\/pre>\n<p>\u3067\u30d3\u30eb\u30c9\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ ls -alh target\/debug\/\r\n\u5408\u8a08 3.2M\r\ndrwxrwxr-x 7 nanbuwks nanbuwks 4.0K  8\u6708  2 19:32 .\r\ndrwxrwxr-x 3 nanbuwks nanbuwks 4.0K  8\u6708  2 19:32 ..\r\n-rw-rw-r-- 1 nanbuwks nanbuwks    0  8\u6708  2 19:32 .cargo-lock\r\ndrwxrwxr-x 3 nanbuwks nanbuwks 4.0K  8\u6708  2 19:32 .fingerprint\r\ndrwxrwxr-x 2 nanbuwks nanbuwks 4.0K  8\u6708  2 19:32 build\r\ndrwxrwxr-x 2 nanbuwks nanbuwks 4.0K  8\u6708  2 19:32 deps\r\ndrwxrwxr-x 2 nanbuwks nanbuwks 4.0K  8\u6708  2 19:32 examples\r\n-rwxrwxr-x 2 nanbuwks nanbuwks 3.2M  8\u6708  2 19:32 hello\r\n-rw-rw-r-- 1 nanbuwks nanbuwks  104  8\u6708  2 19:32 hello.d\r\ndrwxrwxr-x 3 nanbuwks nanbuwks 4.0K  8\u6708  2 19:32 incremental\r\n<\/code><\/pre>\n<p>hello \u306f\u5b9f\u884c\u53ef\u80fd\u30d0\u30a4\u30ca\u30ea\u3067\u3059\u3002\u5b9f\u884c\u3057\u3066\u307f\u308b\u3068<\/p>\n<pre class=\"post-pre\"><code>\r\n$ target\/debug\/hello \r\nHello, world!\r\n<\/code><\/pre>\n<p>\u7121\u4e8b\u6210\u529f\u3057\u307e\u3057\u305f\u3002<br \/>\n\u306a\u304a\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3059\u308b\u3068\u3001\u30d3\u30eb\u30c9\u3068\u5b9f\u884c\u304c\u30bb\u30c3\u30c8\u3067\u884c\u308f\u308c\u308b\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ cargo run\r\n<\/code><\/pre>\n<h1>\u30af\u30ec\u30fc\u30c8\u3092\u8a66\u3059<\/h1>\n<p>\u30af\u30ec\u30fc\u30c8\u3068\u3044\u3046\u306e\u306f \u30e9\u30a4\u30d6\u30e9\u30ea\u3068\u30d0\u30a4\u30ca\u30ea\u3092\u3044\u3063\u3057\u3087\u306b\u8003\u3048\u3066\u30af\u30ec\u30fc\u30c8\u3068\u547c\u3076\u3089\u3057\u3044\u3002<br \/>\n\u8a66\u3057\u306b\u3001 rust-ansi-term \u3068\u3044\u3046\u30af\u30ec\u30fc\u30c8\u3092 \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<br \/>\nANSI\u7aef\u672b\u3067\u30c6\u30ad\u30b9\u30c8\u306e\u8272\u3092\u6307\u5b9a\u3057\u305f\u308a\u3057\u3066\u88c5\u98fe\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002<\/p>\n<p>\u4f5c\u696d\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u3063\u3066\u3001<\/p>\n<pre class=\"post-pre\"><code>\r\n$ cargo new ansiterm\r\n     Created binary (application) `ansiterm` package\r\n$ cd ansiterm\r\n$ vim Cargo.toml\r\n\r\n<\/code><\/pre>\n<p>\u3068\u3057\u3066\u3001<\/p>\n<pre class=\"post-pre\"><code>\r\n[package]\r\nname = \"ansiterm\"\r\nversion = \"0.1.0\"\r\nedition = \"2018\"\r\n\r\n# See more keys and their definitions at https:\/\/doc.rust-lang.org\/cargo\/reference\/manifest.html\r\n\r\n[dependencies]\r\nansi_term = \"0.12\"\r\n<\/code><\/pre>\n<p>\u30d5\u30a1\u30a4\u30eb\u306e\u4e00\u756a\u4e0b\u306b<\/p>\n<pre class=\"post-pre\"><code>\r\nansi_term = \"0.12\"\r\n<\/code><\/pre>\n<p>\u3092\u66f8\u304d\u52a0\u3048\u307e\u3059\u3002<\/p>\n<p>0.12 \u306f\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u3059\u3002 https:\/\/crates.io\/crates\/ansi_term \u306e\u8a18\u8ff0\u3069\u304a\u308a\u306b\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ vim src\/main.rs \r\n<\/code><\/pre>\n<p>\u3068\u3059\u308b\u3068\u3001<\/p>\n<pre class=\"post-pre\"><code>\r\n\r\n<span class=\"k\">fn<\/span> <span class=\"nf\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nd\">println!<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Hello, world!\"<\/span><span class=\"p\">);<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u304c\u51fa\u3066\u304d\u307e\u3057\u305f\u3002\u3069\u3046\u3084\u3089\u3053\u306e\u30b3\u30fc\u30c9\u306f\u5e38\u306b\u914d\u7f6e\u3055\u308c\u308b\u3088\u3046\u3067\u3059\u3002\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u66f8\u304d\u63db\u3048\u307e\u3059\u3002\u3053\u308c\u3082\u3001\u5148\u306e\u30b5\u30a4\u30c8\u306e\u8a18\u8ff0\u3092\u5143\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n<span class=\"k\">use<\/span> <span class=\"nn\">ansi_term<\/span><span class=\"p\">::<\/span><span class=\"nn\">Colour<\/span><span class=\"p\">::<\/span><span class=\"n\">Red<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"k\">fn<\/span> <span class=\"nf\">main<\/span><span class=\"p\">(){<\/span>\r\n    <span class=\"nd\">println!<\/span><span class=\"p\">(<\/span><span class=\"s\">\"This is in red: {}\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">Red<\/span><span class=\"nf\">.paint<\/span><span class=\"p\">(<\/span><span class=\"s\">\"a red string\"<\/span><span class=\"p\">));<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u521d\u56de\u306e\u30d3\u30eb\u30c9\u3067\u306f\u3001ansi_term\u30af\u30ed\u30fc\u30c8\u304c\u81ea\u52d5\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ cargo build\r\n    Updating crates.io index\r\n  Downloaded ansi_term v0.12.1\r\n  Downloaded 1 crate (24.8 KB) in 1.57s\r\n   Compiling ansi_term v0.12.1\r\n   Compiling ansiterm v0.1.0 (\/home\/nanbuwks\/Downloads\/rust\/ansiterm)\r\n    Finished dev [unoptimized + debuginfo] target(s) in 38.20s\r\n\r\n<\/code><\/pre>\n<p>\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ target\/debug\/ansiterm \r\nThis is in red: a red string\r\n<\/code><\/pre>\n<p>&#8220;a red string&#8221; \u306e\u3068\u3053\u308d\u304c\u8d64\u304f\u8868\u793a\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n<h1>\u30af\u30ed\u30b9\u958b\u767a\u74b0\u5883\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h1>\n<p>Wio Terminal \u306f ARM \u306e MPU \u306a\u306e\u3067\u3001\u305d\u308c\u7528\u306b\u30d3\u30eb\u30c9\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u306a\u3044\u3068\u3044\u3051\u307e\u305b\u3093\u3002<br \/>\n\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u30af\u30ed\u30b9\u958b\u767a\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\u30ea\u30b9\u30c8\u30a2\u30c3\u30d7\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ rustup target list\r\naarch64-apple-darwin\r\naarch64-apple-ios\r\naarch64-fuchsia\r\naarch64-linux-android\r\naarch64-pc-windows-msvc\r\naarch64-unknown-linux-gnu\r\naarch64-unknown-linux-musl\r\naarch64-unknown-none\r\naarch64-unknown-none-softfloat\r\n.\r\n.\r\n.\r\nthumbv6m-none-eabi\r\nthumbv7em-none-eabi\r\nthumbv7em-none-eabihf\r\nthumbv7m-none-eabi\r\nthumbv7neon-linux-androideabi\r\nthumbv7neon-unknown-linux-gnueabihf\r\nthumbv8m.base-none-eabi\r\nthumbv8m.main-none-eabi\r\nthumbv8m.main-none-eabihf\r\n.\r\n.\r\n.\r\nx86_64-linux-android\r\nx86_64-pc-solaris\r\nx86_64-pc-windows-gnu\r\nx86_64-pc-windows-msvc\r\nx86_64-sun-solaris\r\nx86_64-unknown-freebsd\r\nx86_64-unknown-illumos\r\nx86_64-unknown-linux-gnu (installed)\r\nx86_64-unknown-linux-gnux32\r\nx86_64-unknown-linux-musl\r\nx86_64-unknown-netbsd\r\nx86_64-unknown-redox\r\n<\/code><\/pre>\n<p>\u300cPlatform Support &#8211; The rustc book\u300d<br \/>\nhttps:\/\/doc.rust-lang.org\/nightly\/rustc\/platform-support.html<br \/>\n\u306b\u3088\u308b\u3068\u3001 Cortex-M \u7cfb\u306e\u3082\u306e\u306f\u4ee5\u4e0b\u306e\u5bfe\u5fdc\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<div>\n<div class=\"post-table\">targetstdnotethumbv6m-none-eabi*Bare Cortex-M0, M0+, M1thumbv7em-none-eabi*Bare Cortex-M4, M7thumbv7em-none-eabihf*Bare Cortex-M4F, M7F, FPU, hardfloatthumbv7m-none-eabi*Bare Cortex-M3<\/div>\n<\/div>\n<p>indicates the target only supports no_std development.<\/p>\n<p>Wio Terminal \u306b\u642d\u8f09\u3055\u308c\u305f MPU \u306f Microchip \u793e\u306e ATSAMD51P19\u3002\u3053\u308c\u306f FPU\u304c\u642d\u8f09\u3055\u308c\u305f Cortex-M4F \u3068\u306a\u308a\u3001\u4e0a\u30ea\u30b9\u30c8\u306b\u3088\u308b\u3068thumbv7em-none-eabihf \u306b\u306a\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001std \u306e\u3068\u3053\u308d\u306b * \u304c\u3064\u3044\u3066\u307e\u3059\u304c\u3001\u3053\u308c\u306f std \u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u4f7f\u3048\u306a\u3044\u3053\u3068\u3092\u610f\u5473\u3057\u307e\u3059\u3002<\/p>\n<p>thumbv7em-none-eabihf \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e\u30af\u30ed\u30b9\u30b3\u30f3\u30d1\u30a4\u30eb\u74b0\u5883\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u4ee5\u4e0b\u306e\u4f5c\u696d\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ rustup target add thumbv7em-none-eabihf\r\ninfo: downloading component 'rust-std' for 'thumbv7em-none-eabihf'\r\ninfo: installing component 'rust-std' for 'thumbv7em-none-eabihf'\r\n<\/code><\/pre>\n<h1>hello \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092 thumbv7em-none-eabihf \u3067\u30d3\u30eb\u30c9\u3057\u3066\u30a8\u30e9\u30fc\u3092\u51fa\u3059<\/h1>\n<pre class=\"post-pre\"><code>\r\n$ cd hello\r\n$ cargo build --target=thumbv7em-none-eabihf\r\n   Compiling hello v0.1.0 (\/home\/nanbuwks\/Downloads\/rust\/hello)\r\nerror[E0463]: can't find crate for `std`\r\n  |\r\n  = note: the `thumbv7em-none-eabihf` target may not support the standard library\r\n  = note: `std` is required by `hello` because it does not declare `#![no_std]`\r\n\r\nerror: aborting due to previous error\r\n\r\nFor more information about this error, try `rustc --explain E0463`.\r\nerror: could not compile `hello`\r\n\r\nTo learn more, run the command again with --verbose.\r\n<\/code><\/pre>\n<p>\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3057\u305f\u306d\u3002not support the standard library \u3068\u3042\u308a\u307e\u3059\u3002<\/p>\n<h1>\u6a19\u6e96 Rust \u30d7\u30ed\u30b0\u30e9\u30e0\u3068 \u7d44\u307f\u8fbc\u307f Rust \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u9055\u3044<\/h1>\n<p>\u5148\u306b\u3042\u3063\u305f\u3088\u3046\u306b\u3001thumbv7em-none-eabihf \u306f<\/p>\n<blockquote><p>indicates the target only supports no_std development.<\/p><\/blockquote>\n<p>\u306a\u306e\u3067 std \u3092\u4f7f\u308f\u306a\u3044\u3088\u3046\u306b\u30d7\u30ed\u30b0\u30e9\u30e0\u3057\u306a\u3044\u3068\u3044\u3051\u307e\u305b\u3093\u3002Rust \u306b\u304a\u3044\u3066 std \u3092\u4f7f\u3046\u5834\u5408\u3001 libstd \u30e9\u30f3\u30bf\u30a4\u30e0\u3092\u4f7f\u3046\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002 libstd \u306f\u3001OS \u306b\u3088\u3063\u3066\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308b POSIX \u306e\u3088\u3046\u306a\u6a5f\u80fd\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u306b\u3042\u308a\u307e\u3059\u3002\u3057\u304b\u3057\u306a\u304c\u3089 Wio Terminal \u3067\u306f POSIX \u3092\u642d\u8f09\u3057\u305f\u3088\u3046\u306a OS \u306f\u52d5\u3044\u3066\u304a\u3089\u305a\u3001\u30d9\u30a2\u30e1\u30bf\u30eb\u3068\u3057\u3066\u52d5\u304b\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\nlibstd \u304c\u4f7f\u3048\u306a\u3044\u5834\u5408\u3001 libcore \u30af\u30ec\u30fc\u30c8\u3092\u4f7f\u3046\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002\u305d\u308c\u3092\u793a\u3059\u306b\u306f<\/p>\n<pre class=\"post-pre\"><code>\r\n#![no_std]\r\n<\/code><\/pre>\n<p>\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5192\u982d\u306b\u8a18\u8ff0\u3057\u307e\u3059\u3002<br \/>\n\u307e\u305f\u3001 libstd \u306f main \u30b9\u30ec\u30c3\u30c9\u306e\u751f\u6210\u306a\u3069\u3082\u884c\u3063\u3066\u3044\u307e\u3059\u3002<br \/>\n\u305d\u306e\u305f\u3081\u3001\u6a19\u6e96\u306emain\u95a2\u6570\u3092\u4f7f\u308f\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u306b\u3001\u4ee5\u4e0b\u306e\u8a18\u8ff0\u3082\u5192\u982d\u306b\u8a18\u8ff0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n#![no_main]\r\n<\/code><\/pre>\n<p>\u3055\u3066\u3001\u4eca\u56de\u306f Wio Terminal \u306e LED\u3092\u70b9\u6ec5\u3055\u305b\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002\u70b9\u6ec5\u306e\u305f\u3081\u306b\u306f\u30de\u30a4\u30b3\u30f3\u306e\u30bf\u30a4\u30de\u30fc\u52d5\u4f5c\u3001\u304a\u3088\u3073 GPIO \u3092\u7d4c\u7531\u3057\u3066 LED\u3092\u64cd\u4f5c\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u305d\u308c\u3089\u306f Wio Terminal \u7528\u306e\u30af\u30ec\u30fc\u30c8\u3092\u547c\u3073\u51fa\u3057\u3066\u5b9f\u73fe\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h1>atsamd rust \u30ec\u30dd\u30b8\u30c8\u30ea\u306e\u4f7f\u7528<\/h1>\n<p>\u3053\u3053\u304b\u3089\u3001\u4ee5\u4e0b\u306e\u30ec\u30dd\u30b8\u30c8\u30ea\u3092\u5229\u7528\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<br \/>\nhttps:\/\/github.com\/atsamd-rs\/atsamd<\/p>\n<p>\u3053\u306e\u30ec\u30dd\u30b8\u30c8\u30ea\u5185\u306b wio_terminal \u306e\u5bfe\u5fdc\u304c\u542b\u307e\u308c\u3066\u3044\u3066\u3001Wio Terminal \u7528\u306e\u69d8\u3005\u306a\u30af\u30ec\u30fc\u30c8\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0\u3082\u53ce\u9332\u3055\u308c\u3066\u304a\u308a\u3001\u4eca\u56de\u306f\u3053\u308c\u306b\u542b\u307e\u308c\u3066\u3044\u308b blinky \u3092\u30d3\u30eb\u30c9\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\u3002<\/p>\n<p>\u4f5c\u696d\u5834\u6240\u306b\u623b\u3063\u3066\u3001<\/p>\n<pre class=\"post-pre\"><code>\r\n$ git clone https:\/\/github.com\/atsamd-rs\/atsamd.git\r\nCloning into 'atsamd'...\r\nremote: Enumerating objects: 136680, done.\r\nremote: Counting objects: 100% (666\/666), done.\r\nremote: Compressing objects: 100% (437\/437), done.\r\nremote: Total 136680 (delta 318), reused 413 (delta 198), pack-reused 136014\r\nReceiving objects: 100% (136680\/136680), 38.52 MiB | 2.22 MiB\/s, done.\r\nResolving deltas: 100% (121689\/121689), done.\r\nUpdating files: 100% (12317\/12317), done.\r\n\r\n$ cd atsamd\/boards\/wio_terminal\r\n<\/code><\/pre>\n<h1>LED\u70b9\u6ec5\u30d7\u30ed\u30b0\u30e9\u30e0<\/h1>\n<p>\u3053\u3053\u3067\u3001 LED\u3092\u70b9\u6ec5\u3059\u308b blinky.rs \u304c example \u306b\u3042\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nd\">#![no_std]<\/span>\r\n<span class=\"nd\">#![no_main]<\/span>\r\n\r\n<span class=\"k\">use<\/span> <span class=\"n\">panic_halt<\/span> <span class=\"k\">as<\/span> <span class=\"n\">_<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">use<\/span> <span class=\"n\">wio_terminal<\/span> <span class=\"k\">as<\/span> <span class=\"n\">wio<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"k\">use<\/span> <span class=\"nn\">wio<\/span><span class=\"p\">::<\/span><span class=\"nn\">hal<\/span><span class=\"p\">::<\/span><span class=\"nn\">clock<\/span><span class=\"p\">::<\/span><span class=\"n\">GenericClockController<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">use<\/span> <span class=\"nn\">wio<\/span><span class=\"p\">::<\/span><span class=\"nn\">hal<\/span><span class=\"p\">::<\/span><span class=\"nn\">delay<\/span><span class=\"p\">::<\/span><span class=\"n\">Delay<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">use<\/span> <span class=\"nn\">wio<\/span><span class=\"p\">::<\/span><span class=\"nn\">pac<\/span><span class=\"p\">::{<\/span><span class=\"n\">CorePeripherals<\/span><span class=\"p\">,<\/span> <span class=\"n\">Peripherals<\/span><span class=\"p\">};<\/span>\r\n<span class=\"k\">use<\/span> <span class=\"nn\">wio<\/span><span class=\"p\">::<\/span><span class=\"nn\">prelude<\/span><span class=\"p\">::<\/span><span class=\"o\">*<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">use<\/span> <span class=\"nn\">wio<\/span><span class=\"p\">::{<\/span><span class=\"n\">entry<\/span><span class=\"p\">,<\/span> <span class=\"n\">Pins<\/span><span class=\"p\">,<\/span> <span class=\"n\">Sets<\/span><span class=\"p\">};<\/span>\r\n\r\n<span class=\"nd\">#[entry]<\/span>\r\n<span class=\"k\">fn<\/span> <span class=\"nf\">main<\/span><span class=\"p\">()<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"o\">!<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"k\">let<\/span> <span class=\"k\">mut<\/span> <span class=\"n\">peripherals<\/span> <span class=\"o\">=<\/span> <span class=\"nn\">Peripherals<\/span><span class=\"p\">::<\/span><span class=\"nf\">take<\/span><span class=\"p\">()<\/span><span class=\"nf\">.unwrap<\/span><span class=\"p\">();<\/span>\r\n    <span class=\"k\">let<\/span> <span class=\"n\">core<\/span> <span class=\"o\">=<\/span> <span class=\"nn\">CorePeripherals<\/span><span class=\"p\">::<\/span><span class=\"nf\">take<\/span><span class=\"p\">()<\/span><span class=\"nf\">.unwrap<\/span><span class=\"p\">();<\/span>\r\n\r\n    <span class=\"k\">let<\/span> <span class=\"k\">mut<\/span> <span class=\"n\">clocks<\/span> <span class=\"o\">=<\/span> <span class=\"nn\">GenericClockController<\/span><span class=\"p\">::<\/span><span class=\"nf\">with_external_32kosc<\/span><span class=\"p\">(<\/span>\r\n        <span class=\"n\">peripherals<\/span><span class=\"py\">.GCLK<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"o\">&amp;<\/span><span class=\"k\">mut<\/span> <span class=\"n\">peripherals<\/span><span class=\"py\">.MCLK<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"o\">&amp;<\/span><span class=\"k\">mut<\/span> <span class=\"n\">peripherals<\/span><span class=\"py\">.OSC32KCTRL<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"o\">&amp;<\/span><span class=\"k\">mut<\/span> <span class=\"n\">peripherals<\/span><span class=\"py\">.OSCCTRL<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"o\">&amp;<\/span><span class=\"k\">mut<\/span> <span class=\"n\">peripherals<\/span><span class=\"py\">.NVMCTRL<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"p\">);<\/span>\r\n    <span class=\"k\">let<\/span> <span class=\"k\">mut<\/span> <span class=\"n\">delay<\/span> <span class=\"o\">=<\/span> <span class=\"nn\">Delay<\/span><span class=\"p\">::<\/span><span class=\"nf\">new<\/span><span class=\"p\">(<\/span><span class=\"n\">core<\/span><span class=\"py\">.SYST<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"k\">mut<\/span> <span class=\"n\">clocks<\/span><span class=\"p\">);<\/span>\r\n\r\n    <span class=\"k\">let<\/span> <span class=\"k\">mut<\/span> <span class=\"n\">sets<\/span><span class=\"p\">:<\/span> <span class=\"n\">Sets<\/span> <span class=\"o\">=<\/span> <span class=\"nn\">Pins<\/span><span class=\"p\">::<\/span><span class=\"nf\">new<\/span><span class=\"p\">(<\/span><span class=\"n\">peripherals<\/span><span class=\"py\">.PORT<\/span><span class=\"p\">)<\/span><span class=\"nf\">.split<\/span><span class=\"p\">();<\/span>\r\n    <span class=\"k\">let<\/span> <span class=\"k\">mut<\/span> <span class=\"n\">user_led<\/span> <span class=\"o\">=<\/span> <span class=\"n\">sets<\/span><span class=\"py\">.user_led<\/span><span class=\"nf\">.into_open_drain_output<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"k\">mut<\/span> <span class=\"n\">sets<\/span><span class=\"py\">.port<\/span><span class=\"p\">);<\/span>\r\n    <span class=\"n\">user_led<\/span><span class=\"nf\">.set_low<\/span><span class=\"p\">()<\/span><span class=\"nf\">.unwrap<\/span><span class=\"p\">();<\/span>\r\n\r\n    <span class=\"k\">loop<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"n\">user_led<\/span><span class=\"nf\">.toggle<\/span><span class=\"p\">();<\/span>\r\n        <span class=\"n\">delay<\/span><span class=\"nf\">.delay_ms<\/span><span class=\"p\">(<\/span><span class=\"mi\">200u8<\/span><span class=\"p\">);<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u3053\u308c\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\u30d3\u30eb\u30c9\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ cargo build --example blinky\r\n<\/code><\/pre>\n<h1>\u30d0\u30a4\u30ca\u30ea\u51e6\u7406\u3068\u66f8\u304d\u8fbc\u307f<\/h1>\n<p>\u30d0\u30a4\u30ca\u30ea\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n$ ls -alh target\/thumbv7em-none-eabihf\/debug\/examples\/blinky\r\n-rwxrwxr-x 2 nanbuwks nanbuwks 3.9M  8\u6708  2 23:44 target\/thumbv7em-none-eabihf\/debug\/examples\/blinky\r\n<\/code><\/pre>\n<p>\u5927\u304d\u3044\u3067\u3059\u306d<\/p>\n<pre class=\"post-pre\"><code>\r\n$ cargo build --release --example blinky\r\n<\/code><\/pre>\n<p>\u3068\u3057\u3066\u30d0\u30a4\u30ca\u30ea\u3092\u4f5c\u308a\u76f4\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n\r\n$ ls -alh target\/thumbv7em-none-eabihf\/release\/examples\/blinky\r\n-rwxrwxr-x 2 nanbuwks nanbuwks 17K  8\u6708  2 23:49 target\/thumbv7em-none-eabihf\/release\/examples\/blinky\r\n<\/code><\/pre>\n<p>\u3055\u3066\u3001\u30d0\u30a4\u30ca\u30ea\u3092\u66f8\u304d\u8fbc\u3080\u306b\u306f UF2 \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3057\u306a\u3044\u3068\u3044\u3051\u307e\u305b\u3093\u3002<\/p>\n<pre class=\"post-pre\"><code>$  rustup component add llvm-tools-preview\r\n$ cargo install uf2conv cargo-binutils\r\n<\/code><\/pre>\n<p>\u3068\u3057\u3066\u3001\u5909\u63db\u30c4\u30fc\u30eb\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>$ cargo objcopy --example blinky --release --  -O binary blinky.bin\r\n    Finished release [optimized] target(s) in 0.15s\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>$ uf2conv blinky.bin --base 0x4000 --output blinky.uf2\r\n<\/code><\/pre>\n<p>\u3067\u304d\u305fuf2\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304d\u8fbc\u307f\u307e\u3059<\/p>\n<p>wio_terminal \u306e\u96fb\u6e90\u30b9\u30a4\u30c3\u30c1\u30922\u56de\u7d20\u65e9\u304f\u30b9\u30e9\u30a4\u30c9\u3057\u3066\u30d6\u30fc\u30c8\u30ed\u30fc\u30c0\u30fc\u30e2\u30fc\u30c9\u306b\u3059\u308b\u3068\u3001\u30b9\u30c8\u30ec\u30fc\u30b8\u3068\u3057\u3066\u8a8d\u8b58\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n\r\n$ cp blinky.uf2 \/media\/nanbuwks\/Arduino\/\r\n\r\n<\/code><\/pre>\n<p>\u3053\u308c\u3067\u3001\u66f8\u304d\u8fbc\u3093\u3060\u76f4\u5f8c\u306b\u9752LED\u304c\u70b9\u6ec5\u3059\u308b\u3088\u3046\u306b\u306a\u308c\u3070\u6210\u529f\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u300c\u30ea\u30e2\u30fc\u30c8\u74b0\u5883\u3067 Wio Terminal \u3067\u7d44\u307f\u8fbc\u307f Rust \u3092\u52d5\u304b\u3057\u3066\u307f\u308b\u30cf\u30f3\u30ba\u30aa\u30f3\u300d https:\/\/ [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-45579","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>- Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:description\" content=\"\u300c\u30ea\u30e2\u30fc\u30c8\u74b0\u5883\u3067 Wio Terminal \u3067\u7d44\u307f\u8fbc\u307f Rust \u3092\u52d5\u304b\u3057\u3066\u307f\u308b\u30cf\u30f3\u30ba\u30aa\u30f3\u300d https:\/\/ [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-30T19:01:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-04T09:26:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5fca37434c4406cf8ee1\/10-0.png\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/\",\"name\":\"- Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-01-30T19:01:48+00:00\",\"dateModified\":\"2024-05-04T09:26:12+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"- Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/","og_locale":"zh_CN","og_type":"article","og_description":"\u300c\u30ea\u30e2\u30fc\u30c8\u74b0\u5883\u3067 Wio Terminal \u3067\u7d44\u307f\u8fbc\u307f Rust \u3092\u52d5\u304b\u3057\u3066\u307f\u308b\u30cf\u30f3\u30ba\u30aa\u30f3\u300d https:\/\/ [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-01-30T19:01:48+00:00","article_modified_time":"2024-05-04T09:26:12+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5fca37434c4406cf8ee1\/10-0.png"}],"author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"6 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/","name":"- Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-01-30T19:01:48+00:00","dateModified":"2024-05-04T09:26:12+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/"]}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/45579-2\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/45579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=45579"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/45579\/revisions"}],"predecessor-version":[{"id":99680,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/45579\/revisions\/99680"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=45579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=45579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=45579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}