{"id":327,"date":"2023-03-27T13:36:03","date_gmt":"2023-03-27T05:36:03","guid":{"rendered":"https:\/\/vm1.go2see.me\/?p=327"},"modified":"2023-03-29T17:09:09","modified_gmt":"2023-03-29T09:09:09","slug":"wsl2%e9%96%8b%e7%99%bc%e7%92%b0%e5%a2%83%e5%85%a8%e8%a8%98%e9%8c%846-2","status":"publish","type":"post","link":"https:\/\/vm1.go2see.me\/?p=327","title":{"rendered":"WSL2\u958b\u767c\u74b0\u5883\u5168\u8a18\u9304(6) \u5d4c\u5165\u5f0f\u5de5\u7a0b-Nuttx\u7bc7"},"content":{"rendered":"<h1>6. WSLg \u5d4c\u5165\u5f0f\u5de5\u7a0b-Nuttx\u7bc7<\/h1>\n<p>\u4e4b\u524d\u7684 <a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/vm1.go2see.me\/2022\/12\/06\/nuttx-macos-%e5%ae%9e%e6%88%98\/\">Nuttx-macOS\u5be6\u6230<\/a> \u6709\u4f7f\u7528 multipass \u7684\u65b9\u5f0f\u4ecb\u7d39\u3002WSLg \u5728 sim:lvgl-lcd \u9805\u76ee\u53ef\u4ee5\u7121\u7e2b\u770b\u5230 LVGL\u7684\u5716\u5f62\u4f7f\u7528\u3002<\/p>\n<p>Nuttx\u9805\u76ee\u66f4\u65b0\u4e86\uff0c \u6a21\u64ec\u5668\u7684 lvgl demo \u9805\u76ee\u62c6\u5206\u7232 lvgl_fb \u548c lvgl_lcd \u88dd\u7f6e\u3002WGLg \u662f RDP\u986f\u793a\uff0c\u53ea\u80fd\u7528 sim:lvgl_lcd\u3002<\/p>\n<h2>6.1 \u7de8\u8b6f\u74b0\u5883\uff1a<\/h2>\n<pre><code class=\"language-sh line-numbers\">sudo apt install bison flex gettext texinfo libncurses5-dev libncursesw5-dev gperf automake libtool pkg-config build-essential gperf genromfs libgmp-dev libmpc-dev libmpfr-dev libisl-dev binutils-dev libelf-dev libexpat-dev gcc-multilib g++-multilib picocom u-boot-tools util-linux curl\n<\/code><\/pre>\n<h2>6.2 KConfig front-end\uff1a<\/h2>\n<pre><code class=\"language-sh line-numbers\">sudo apt install kconfig-frontends\n<\/code><\/pre>\n<h2>6.3 arm tools<\/h2>\n<pre><code class=\"language-sh line-numbers\">sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi\n<\/code><\/pre>\n<h2>6.4 \u4e0b\u8f7d NuttX<\/h2>\n<pre><code class=\"language-sh line-numbers\">mkdir ~\/nuttxspace\ncd ~\/nuttxspace\ngit clone https:\/\/github.com\/apache\/incubator-nuttx.git nuttx\ngit clone https:\/\/github.com\/apache\/incubator-nuttx-apps apps\n<\/code><\/pre>\n<h2>6.5 \u67e5\u770b\u53ef\u9009\u7f16\u8bd1\u9879\u76ee<\/h2>\n<pre><code class=\"language-sh line-numbers\">cd nuttx\n.\/tools\/configure.sh -L | less\n<\/code><\/pre>\n<h2>6.6 \u7f16\u8bd1\u6d4b\u8bd5 sim:lvgl_lcd<\/h2>\n<pre><code class=\"language-sh line-numbers\">.\/tools\/configure.sh sim:lvgl_lcd\nmake menuconfig\nmake\n.\/nuttx\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/vm1.go2see.me\/wp-content\/uploads\/image-20230326214608245-1024x810.png\" alt=\"\" \/><\/p>\n<h2>6.7 \u7f16\u8bd1\u6d4b\u8bd5 stm32f429i-disco \u677f<\/h2>\n<ul>\n<li>\u5b89\u88dd STM MCU\u9700\u8981\u7684\u958b\u767c\u5de5\u5177\uff1a<\/li>\n<\/ul>\n<pre><code class=\"language-sh line-numbers\">sudo apt-get install automake bison build-essential flex gcc-arm-none-eabi gperf git libncurses5-dev libtool libusb-dev libusb-1.0.0-dev pkg-config kconfig-frontends openocd\n<\/code><\/pre>\n<ul>\n<li>Powershell \u7ba1\u7406\u54e1\u6a21\u5f0f\u4e0b\uff0c\u67e5\u770b stlink \u4f4d\u7f6e\uff1a<\/li>\n<\/ul>\n<pre><code class=\"language-sh line-numbers\">usbipd wsl list\nBUSID  VID:PID    DEVICE                                                        STATE\n2-4    0483:374b  ST-Link Debug, USB \u5927\u5bb9\u91cf\u5b58\u50a8\u8bbe\u5907, USB \u4e32\u884c\u8bbe\u5907 (COM6)        Not attached\n\u3002\u3002\u3002\n<\/code><\/pre>\n<ul>\n<li>Powershell \u7ba1\u7406\u54e1\u6a21\u5f0f\u4e0b\uff0c\u5c07 stlink \u63a5\u5230 WSL:<\/li>\n<\/ul>\n<pre><code class=\"language-sh line-numbers\">usbipd wsl attach -b 2-4\n<\/code><\/pre>\n<pre><code>\u82e5\u8981\u80fd\u5728wsl\u91cd\u5553\u540e\u91cd\u9023\u5230 wsl\uff0c\u6dfb\u52a0 `-a` \u53c3\u6578\u3002\n<\/code><\/pre>\n<ul>\n<li>\u67e5\u770bNuttx \u5df2\u6709 429i\u5de5\u7a0b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"language-sh line-numbers\"> .\/tools\/configure.sh -L | grep 429i\n  stm32f429i-disco:highpri\n  stm32f429i-disco:adc\n  stm32f429i-disco:fb\n  stm32f429i-disco:nxhello\n  stm32f429i-disco:usbmsc\n  stm32f429i-disco:usbnsh\n  stm32f429i-disco:nxwm\n  stm32f429i-disco:lvgl\n  stm32f429i-disco:nsh\n  stm32f429i-disco:extflash\n<\/code><\/pre>\n<ul>\n<li>\u9078 stm32f429i-disco:lvgl :<\/li>\n<\/ul>\n<pre><code class=\"language-sh line-numbers\">make distclean\n.\/tools\/configure.sh stm32f429i-disco:lvgl\nmake menuconfig\n<\/code><\/pre>\n<ul>\n<li>\u7de8\u8b6f\uff1a<\/li>\n<\/ul>\n<pre><code class=\"language-SH line-numbers\">make\n<\/code><\/pre>\n<ul>\n<li>\u900f\u904e st-flash \u71d2\u9304:<\/li>\n<\/ul>\n<pre><code class=\"language-sh line-numbers\">st-flash --connect-under-reset  write nuttx.bin 0x8000000\n#st-flash reset\n<\/code><\/pre>\n<ul>\n<li>screen \u9032\u5165 nsh \u64cd\u4f5c\u958b\u767c\u677f:<\/li>\n<\/ul>\n<pre><code class=\"language-sh line-numbers\"># screen \u9032\u5165 nuttx shell. \u677f\u4e0a stlink\u9700\u8981\u8a2d\u7f6e 115200bps\nscreen \/dev\/ttyACM0 115200\n# \u96e2\u958b screen\n[Ctrl+A K]\n<\/code><\/pre>\n<ul>\n<li>screen \u9032\u5165 nsh \u64cd\u4f5c\u958b\u767c\u677f:<\/li>\n<\/ul>\n<pre><code class=\"language-sh line-numbers\"># screen \u9032\u5165 nuttx shell. \u677f\u4e0a stlink\u9700\u8981\u8a2d\u7f6e 115200bps\nscreen \/dev\/ttyACM0 115200\n# \u96e2\u958b screen\n[Ctrl+A K]\n<\/code><\/pre>\n<ul>\n<li>\u67e5\u770b\u6709\u54ea\u4e9bapp\uff0c\u904b\u884c lvgldemo\uff1a<\/li>\n<\/ul>\n<pre><code class=\"language-sh line-numbers\">nsh&gt; ?\nhelp usage:  help [-v] [&lt;cmd&gt;]\n\n    .         break     dd        exit      ls        ps        source    umount\n    [         cat       df        false     mkdir     pwd       test      unset\n    ?         cd        dmesg     free      mkrd      rm        time      uptime\n    alias     cp        echo      help      mount     rmdir     true      usleep\n    unalias   cmp       env       hexdump   mv        set       truncate  xd\n    basename  dirname   exec      kill      printf    sleep     uname\n\nBuiltin Apps:\n    lvgldemo  tc        fb        sh        nsh\nnsh&gt; lvgldemo\n<\/code><\/pre>\n<p>\u6211\u5c31\u4e0d\u62cd\u7167\u4e86\u3002\u3002\u3002<\/p>\n<blockquote>\n<h3>\u4f7f\u7528 openocd \u71d2\u9304<\/h3>\n<p>  apt \u53d6\u5f97\u7684 openocd \u627e\u4e0d\u5230 interface \u76ee\u9304\u3002\u3002\u3002 \u6211\u628ainterface \u4f4d\u7f6elink\u5230 nuttx\u4e0b\uff1a<\/p>\n<pre><code class=\"language-sh line-numbers\">ln -s \/usr\/share\/openocd\/scripts\/interface interface\n<\/code><\/pre>\n<p>  \u7136\u5f8c\uff1a<\/p>\n<pre><code class=\"language-sh line-numbers\">openocd -f \/usr\/share\/openocd\/scripts\/interface\/stlink-v2-1.cfg -f target\/stm32f4x.cfg -c init -c \"reset halt\" -c \"flash write_image erase nuttx.bin 0x08000000\" \n<\/code><\/pre>\n<p>  OK&#8230;\n<\/p><\/blockquote>\n<h2>6.8 Debug<\/h2>\n<blockquote><p>\n  \u53c3\u8003 https:\/\/nuttx.apache.org\/docs\/latest\/quickstart\/debugging.html \u5c0d Nuttx debug.\n<\/p><\/blockquote>\n<p>Windows Terminal \u958b\u56db\u500b\u5206\u9801:<\/p>\n<ul>\n<li>\n<ol>\n<li>\u7528\u4e00\u500b Powershell \u7ba1\u7406\u54e1\u6a21\u5f0f\u4e0b\u628a stlink (BUSID: 2-4)\u8b93\u7d66 WSL\uff1a <code>usbipd wsl attach -b 2-4 -a<\/code>\u3002<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"2\">\n<li>\u7528\u4e00\u500b ubuntu shell \u8dd1 openocd\uff1a<code>openocd -f interface\/stlink-v2-1.cfg -f target\/stm32f4x.cfg<\/code>\u3002<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"3\">\n<li>\u7528\u4e00\u500b ubuntu shell \u8dd1 gdb\uff1a <code>gdb-multiarch nuttx<\/code> \u3002<\/li>\n<\/ol>\n<pre><code class=\"line-numbers\">(gdb) target extended-remote :3333\n<\/code><\/pre>\n<\/li>\n<li>\n<ol start=\"4\">\n<li>\u7528\u4e00\u500b ubuntu shell \u8dd1 screen \u904b\u884c Nuttx\u7684 nsh shell\uff1a<code>screen \/dev\/ttyACM0 115200<\/code> \u3002<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>\u81f3\u65bc\u7528 IDE \uff08\u5982 VSCode\uff09\u4f86 debug\uff0c\u53ef\u4ee5\u8003\u91cf\u76f4\u63a5\u5728Windows\u4e0b\u57f7\u884c openocd\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>6. WSLg \u5d4c\u5165\u5f0f\u5de5\u7a0b-Nuttx\u7bc7 \u4e4b\u524d\u7684 Nuttx-macOS\u5be6\u6230 \u6709\u4f7f\u7528 multipass \u7684\u65b9&#8230; &raquo; <a class=\"read-more-link\" href=\"https:\/\/vm1.go2see.me\/?p=327\">\u95b1\u8b80\u5168\u6587<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,6,13],"tags":[],"class_list":["post-327","post","type-post","status-publish","format-standard","hentry","category-embedded","category-nuttx","category-wsl"],"_links":{"self":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/327","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=327"}],"version-history":[{"count":6,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/327\/revisions"}],"predecessor-version":[{"id":344,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/327\/revisions\/344"}],"wp:attachment":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}