{
  "version": "https://jsonfeed.org/version/1", 
  "title": "\u5d4c\u5165\u5f0f\u5f00\u53d1", 
  "description": "", 
  "home_page_url": "https://www.v2ex.com/go/embedded", 
  "feed_url": "https://www.v2ex.com/feed/embedded.json", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/FreeWong", 
        "name": "FreeWong", 
        "avatar": "https://cdn.v2ex.com/gravatar/5ed56e148231babb621f3a10f2dc478a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1190027", 
      "title": "******\u91ce\u706b\u5f00\u53d1\u677f stm32 \u6559\u7a0b\u9519\u8bef\u5f88\u591a*****", 
      "id": "https://www.v2ex.com/t/1190027", 
      "date_published": "2026-02-02T02:04:42+00:00", 
      "content_html": "<p>\u5410\u69fd\u4e0b\uff0c\u624d\u770b\u5230\u7b2c\u4e94\u7ae0\u5c31\u53d1\u73b0\u597d\u591a\u9519\u8bef\u3002\u6211\u771f\u7684\u4e0d\u7406\u89e3\uff0c\u90a3\u4e48\u591a\u4eba\u4e70\u4ed6\u4eec\u7684\u5f00\u53d1\u677f\uff0c\u5c31\u6ca1\u6709\u4eba\u53d1\u73b0\u3002\u53e6\u5916\uff0c\u6587\u6863\u6700\u540e\u66f4\u65b0\u65f6\u95f4\u8fd8\u662f 2022 \u5e74\uff0c\u771f\u7684\u662f\u5f88\u65e0\u8bed\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Leohare", 
        "name": "Leohare", 
        "avatar": "https://cdn.v2ex.com/avatar/2cb6/b103/1678_large.png?m=1776302429"
      }, 
      "url": "https://www.v2ex.com/t/1185332", 
      "title": "\u5d4c\u5165\u5f0f\u5f00\u53d1\u80fd\u4e0d\u80fd\u501f\u52a9 AI \u7f16\u5199\u7a0b\u5e8f", 
      "id": "https://www.v2ex.com/t/1185332", 
      "date_published": "2026-01-13T10:24:15+00:00", 
      "content_html": "<p>\u6700\u8fd1\u5728\u5b66\u4e60\u5d4c\u5165\u5f0f\uff0c\u611f\u89c9\u53ef\u4ee5\u628a\u9700\u6c42\u548c\u8bbe\u5907\u578b\u53f7\u7ed9\u5230 AI \uff0c\u8ba9 AI \u5b8c\u6210\u4ee3\u7801\uff0c\u8fd9\u6837\u53ef\u884c\u5417\uff0c\u6709\u6ca1\u6709\u5f0a\u7aef\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lxfcode", 
        "name": "lxfcode", 
        "avatar": "https://cdn.v2ex.com/gravatar/67689b67221d39c3dedb870c8efbcb44?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1160550", 
      "title": "\u6709\u6ca1\u6709\u7c7b\u4f3c ESP32 \u7684\u82af\u7247\uff0c\u5185\u5b58\u8981\u5927\u7684\uff1f", 
      "id": "https://www.v2ex.com/t/1160550", 
      "date_published": "2025-09-19T08:31:10+00:00", 
      "content_html": "<p>\u5982\u9898\uff0cESP32 \u597d\u7528\uff0c\u4f46\u5185\u5b58\u8fd8\u662f\u5c0f\u4e86\u70b9\uff0c\u867d\u7136\u6709\u5916\u6269 8M PSRAM \uff0c\u4f46\u6709\u9650\u5236\uff0c\u6027\u80fd\u4e0d\u592a\u591f\u3002</p>\n<p>\u50cf RV1103 \uff0cF1C100S \u8fd9\u79cd\uff0c\u6027\u80fd\u591f\u7528\uff0c\u5185\u5b58\u4e5f\u591f\u5927\uff0c\u4f46\u539f\u5382\u8d44\u6599\u4e0d\u591f\u5f00\u653e\uff0c\u63d0\u4f9b\u7684\u662f Linux \uff0c\u6211\u60f3\u8981\u8dd1 RTOS \u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gegeligegeligo", 
        "name": "gegeligegeligo", 
        "avatar": "https://cdn.v2ex.com/gravatar/d4b259140c65f851416d2f7097c24665?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1158727", 
      "date_modified": "2025-09-13T01:28:57+00:00", 
      "content_html": "\u521a\u521a\u53c8\u84dd\u5c4f\u4e86\uff0c\u6211\u628a stm32f103c8t6 \u7684 pb3 \u63a5\u5230\u4e86 jlink \u7684 swo \u53e3\uff0c\u60f3\u8981\u8c03\u8bd5\u8f93\u51fa\u561b\uff0c\u7136\u540e\u6253\u5f00 jlink swo viewer \uff0c\u8fde\u63a5\uff0c\u5c31\u84dd\u5c4f\u4e86\uff0c\u84dd\u5c4f\u91cd\u542f\u540e\u6062\u590d\u4e86\u6b63\u5e38\uff0c\u8c03\u8bd5\u8f93\u51fa\u4e5f\u90fd\u80fd\u770b\u5230\u3002\u84dd\u5c4f\u539f\u56e0\u597d\u50cf\u662f apc_index mismatch \uff0c\u8fd9\u662f\u548b\u56de\u4e8b\u5662\uff1f\u6709\u4ec0\u4e48\u529e\u6cd5\u53ef\u4ee5\u907f\u514d\u8fd9\u79cd\u60c5\u51b5\u518d\u53d1\u751f\u5417\uff1f", 
      "date_published": "2025-09-12T02:36:25+00:00", 
      "title": "\u6709\u5e72\u5d4c\u5165\u5f0f\u7684\u8001\u54e5\u5417\uff1f stm32+jlink\uff0c\u4f7f\u7528 swd \u8c03\u8bd5\u65f6\u7ecf\u5e38\u84dd\u5c4f\u662f\u600e\u4e48\u56de\u4e8b", 
      "id": "https://www.v2ex.com/t/1158727"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gegeligegeligo", 
        "name": "gegeligegeligo", 
        "avatar": "https://cdn.v2ex.com/gravatar/d4b259140c65f851416d2f7097c24665?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1158430", 
      "date_modified": "2025-09-12T08:16:41+00:00", 
      "content_html": "uvision \uff0c\u6253\u5f00\u540e\u5565\u4e5f\u4e0d\u5e72\uff0c\u65f6\u95f4\u957f\u4e86\u5c31\u4e00\u76f4\u9ad8\u5360\u7528 zpu \uff0c\u8fd9\u662f\u6b63\u5e38\u7684\u5417\uff1f\u6709\u4ec0\u4e48\u529e\u6cd5\u4f18\u5316\u5417\uff1f", 
      "date_published": "2025-09-10T23:24:35+00:00", 
      "title": "\u6709\u5e72\u5d4c\u5165\u5f0f\u7684\u8001\u54e5\u5417\uff0c\u6709\u4e00\u4e2a keil \u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1158430"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/FreeWong", 
        "name": "FreeWong", 
        "avatar": "https://cdn.v2ex.com/gravatar/5ed56e148231babb621f3a10f2dc478a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1154946", 
      "title": "=RS485 \u603b\u7ebf\u51b2\u7a81 Gemini \u548c Chatgpt \u7ed9\u51fa\u4e0d\u540c\u7684\u7b54\u6848===", 
      "id": "https://www.v2ex.com/t/1154946", 
      "date_published": "2025-08-26T02:31:59+00:00", 
      "content_html": "<p>\u5728 rs485 \u82af\u7247\u6709\u81ea\u52a8\u65b9\u5411\u63a7\u5236\u4ee5\u53ca Idle Bus \u529f\u80fd\u7684\u524d\u63d0\u4e0b\uff0c\u6211\u4eec\u629b\u5f00 modbus \u5e7f\u64ad\u547d\u4ee4\u7684\u7ea6\u5b9a\uff0c\u5373\u5e7f\u64ad\u547d\u4ee4\u65f6\u4ece\u8bbe\u5907\u4e0d\u5e94\u8be5\u54cd\u5e94\u3002\u5982\u679c\u4f7f\u7528\u81ea\u5b9a\u4e49\u7684\u534f\u8bae\uff0c\u800c\u4e0d\u662f modbus \u7684\u60c5\u51b5\u4e0b\uff0c\u4ece\u8bbe\u5907\u63a5\u6536\u5230\u5e7f\u64ad\u547d\u4ee4\u65f6\uff0c\u5411\u4e3b\u8bbe\u5907\u505a\u54cd\u5e94\uff0c\u7531\u4e8e\u81ea\u52a8\u65b9\u5411\u63a7\u5236\u7684\u5b58\u5728\uff0c\u53ef\u4ee5\u907f\u514d\u603b\u7ebf\u51b2\u7a81\uff0c\u8fd9\u4e2a\u8bf4\u6cd5\u662f\u5426\u6b63\u786e</p>\n<p>\u7ed3\u679c\nChatgpt \u544a\u8bc9\u6211\uff0c\u6211\u7684\u60f3\u6cd5\u662f\u6b63\u786e\u7684\uff0c\u53ef\u884c\u7684\nGemini \u544a\u8bc9\u6211\uff0c\u6211\u7684\u60f3\u6cd5\u662f\u9519\u8bef\u7684\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/FrankCS", 
        "name": "FrankCS", 
        "avatar": "https://cdn.v2ex.com/gravatar/0d734b4d16e37276a066bfbf6b2a1106?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1146715", 
      "date_modified": "2025-07-21T12:36:52+00:00", 
      "content_html": "<p>\u7b2c\u4e00\u6b21\u53d1\u5e16\uff0c\u6709\u505a\u5f97\u4e0d\u5bf9\u7684\u5730\u65b9\u8bf7\u591a\u6307\u70b9\u3002\n\u6211\u4eca\u5e74\u672c\u79d1\u6bd5\u4e1a\uff0c\u6bcd\u6821\u662f\u67d0 211 \u5927\u5b66\u7535\u6c14\u5de5\u7a0b\u53ca\u5176\u81ea\u52a8\u5316\u4e13\u4e1a\u3002\u76ee\u524d\u5728\u4e00\u5bb6\u4e0d\u77e5\u540d\u4f01\u4e1a\u505a\u5d4c\u5165\u5f0f\u8f6f\u4ef6\u5f00\u53d1\uff0c\u4ea7\u54c1\u662f\u5de5\u4e1a\u81ea\u52a8\u5316\u8bbe\u5907\u3002\u6211\u5e0c\u671b\u51e0\u5e74\u540e\u80fd\u591f\u5230\u66f4\u597d\u7684\u4f01\u4e1a\u5de5\u4f5c\uff0c\u5982\u679c\u80fd\u8fdb\u5927\u5382\u5c31\u66f4\u597d\u4e86\u3002\u60f3\u8bf7\u6559\u4e00\u4e0b\u8bba\u575b\u7684\u5404\u4f4d\u5927\u4f6c\uff0c\u4e3a\u6b64\u6211\u9700\u8981\u5982\u4f55\u63d0\u5347\u81ea\u5df1\u5462\uff1f</p>\n", 
      "date_published": "2025-07-21T12:33:35+00:00", 
      "title": "\u5d4c\u5165\u5f0f\u8f6f\u4ef6\u5de5\u7a0b\u5e08\u5982\u4f55\u63d0\u5347\u81ea\u5df1\uff1f", 
      "id": "https://www.v2ex.com/t/1146715"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xuangoer666", 
        "name": "xuangoer666", 
        "avatar": "https://cdn.v2ex.com/avatar/116b/ec13/595139_large.png?m=1740387808"
      }, 
      "url": "https://www.v2ex.com/t/1146712", 
      "title": "ST-Link \u5728 CLion \u4e0b\u8f7d\u5931\u8d25\u6c42\u52a9", 
      "id": "https://www.v2ex.com/t/1146712", 
      "date_published": "2025-07-21T12:17:32+00:00", 
      "content_html": "<p>\u4f7f\u7528 clion \u7f16\u5199 stm32 \u7a0b\u5e8f\uff0c\u5e76\u4f7f\u7528\u6b63\u7248 ST-Link v2 \u4e0b\u8f7d\u51fa\u9519\uff0c\u4e14\u6bcf\u4e2a ST-Link \u524d\u51e0\u6b21\u4e0b\u8f7d\u6b63\u5e38\uff0c\u51fa\u9519\u540e\u65e0\u8bba\u5982\u4f55\u91cd\u7f6e\u5347\u7ea7\u90fd\u4e0d\u80fd\u518d\u6b63\u5e38\u4e0b\u8f7d\u3002</p>\n<p>\u5728 cubeide \u6216 keil \u4e0d\u51fa\u73b0\u9519\u8bef</p>\n<p>j-link \u53ef\u4ee5\u6b63\u5e38\u4e0b\u8f7d\u8fd0\u884c\u3002</p>\n<p>\u65b0\u624b\u6c42\u5927\u4f6c\u6307\u5bfc</p>\n<p>\u76f8\u5173\u914d\u7f6e</p>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/UKKrePje.png\"/></p>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/SzEJ4fLg.png\"/></p>\n<p>\u62a5\u9519</p>\n<blockquote>\n<p>could not connect (error 138): \u03f5\u0373  \u037c         \u03f2    \u03f2        \u03f5 \u013f\u00bc<br/>\nYou can't do that when your target is <code>exec' \"monitor\" command not supported by this target. You can't do that when your target is </code>exec'\n\u4e0a\u4f20\u5b8c\u6210\uff0c\u4f46\u5b58\u5728\u95ee\u9898\nmonitor reset\n\"monitor\" command not supported by this target.</p>\n</blockquote>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/HMYang33", 
        "name": "HMYang33", 
        "avatar": "https://cdn.v2ex.com/avatar/c24b/8e90/675719_large.png?m=1770955236"
      }, 
      "url": "https://www.v2ex.com/t/1141313", 
      "title": "\u4e2a\u4eba\u8ba4\u4e3a\u5d4c\u5165\u5f0f\u9886\u57df\u6700\u65e0\u7528\u7684\u53d1\u660e---\u8272\u73af\u7535\u963b", 
      "id": "https://www.v2ex.com/t/1141313", 
      "date_published": "2025-06-26T13:02:25+00:00", 
      "content_html": "\u4e0d\u662f\u8bf4\u7535\u963b\u65e0\u7528\uff0c\u800c\u662f\u8272\u73af\u6ca1\u4ec0\u4e48\u7528<br />\u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f8b\u5b50\uff1a<br /><br />\u7535\u963b\u56fe\u7247=&gt; <a target=\"_blank\" href=\"https://imgur.com/a/OVFmgzh\" rel=\"nofollow noopener\">https://imgur.com/a/OVFmgzh</a><br />\u56fe\u7247\u4e0a\u7684\u8272\u73af\u7535\u963b\u95f4\u8ddd\u90fd\u4e00\u6837<br />\u4e0d\u662f\u6211\u773c\u775b\u4e0d\u597d<br />\u800c\u662f\u4ed6\u538b\u6839\u513f\u5c31\u6ca1\u6709\u95f4\u8ddd\u533a\u522b<br />\u6240\u4ee5\u6709\u53ef\u80fd\u662f\u4ece\u53f3\u8bfb\u4e5f\u6709\u53ef\u80fd\u662f\u4ece\u5de6\u8bfb<br /><br />\u4ece\u53f3\u5f00\u59cb\u8bfb\uff1a\u68d5\u9ed1\u9ed1\u7ea2\u7ea2 10k\u03a9\u00b12%<br />\u4ece\u5de6\u5f00\u59cb\u8bfb\uff1a\u7ea2\u7ea2\u9ed1\u9ed1\u68d5 220\u03a9\u00b11%<br /><br />\u5982\u679c\u8bf4\u4ece\u5e38\u8bc6\u6765\u770b<br />\u7b2c\u56db\u73af\u4e00\u822c\u4e0d\u662f\u9ed1\u8272<br />\u800c\u4e14\u7c97\u4e00\u70b9\u7684\u4e00\u822c\u662f\u6700\u540e\u4e00\u73af<br />\u53ef\u4ee5\u7b97\u51fa\u8fd9\u6b3e\u7535\u963b\u662f 10K<br /><br />\u4f46\u662f\u5b9e\u9645\u4e0a\u5305\u88c5\u7eb8\u4e0a\u90fd\u5199\u4e86 220<br /><br />\u5982\u679c\u7528\u4e07\u7528\u8868\u6d4b\u91cf\u624d\u80fd\u77e5\u9053\u7b54\u6848\u7684\u8bdd<br />\u90a3\u6211\u611f\u89c9\u8272\u73af\u7535\u963b\u4e0a\u7684\u8272\u73af\u6ca1\u4ec0\u4e48\u5b58\u5728\u7684\u610f\u4e49\u4e86<br />\u5982\u679c\u4e0d\u6807\u6ce8\u8fd8\u80fd\u7701\u70b9\u5de5\u827a\u8d39"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/stdying", 
        "name": "stdying", 
        "avatar": "https://cdn.v2ex.com/avatar/8eec/7d1b/36090_large.png?m=1734849737"
      }, 
      "url": "https://www.v2ex.com/t/1128110", 
      "title": "v \u5d4c\u5165\u5f0f\u8bbe\u5907\u9002\u5408\u7528 vlc \u5417", 
      "id": "https://www.v2ex.com/t/1128110", 
      "date_published": "2025-04-25T13:41:38+00:00", 
      "content_html": "\u5bf9\u7cfb\u7edf cpu \u548c\u5185\u5b58\u6d88\u8017\u5927\u4e0d\u5927"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/msmmbl", 
        "name": "msmmbl", 
        "avatar": "https://cdn.v2ex.com/gravatar/1552c2a1648b80cce61f8d6eef32c884?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1123744", 
      "date_modified": "2025-04-07T07:22:21+00:00", 
      "content_html": "<p>\u6700\u8fd1\u5728 stm32F030c8 \u4e0a\u5c1d\u8bd5\u4f7f\u7528 mcuboot \uff0c\u65b9\u4fbf\u4eca\u540e ota \u3002\u6846\u67b6\u91c7\u7528\u4e86 zephyr</p>\n<p>stm32F030c8 \u7684\u95ea\u5b58\u6709 64KB \uff0c\u4e3a\u4e86\u65b9\u4fbf\u8c03\u8bd5\uff0cmcuboot \u7f16\u8bd1\u5b8c\u4e86\u6709 20 \u591a KB \uff0c\u4e8e\u662f\u6211\u5c31\u6309\u7167 24KB + 20KB + 20KB \u7ed9\u95ea\u5b58\u5206\u4e3a\u4e86 boot_partition + slot0_partition + slot1_partition \uff0c\u4e09\u4e2a\u5206\u533a\u3002\u540e\u9762\u8c03\u8bd5\u901a\u4e86\u6253\u7b97\u628a boot \u5206\u533a\u4f18\u5316\u5230 16KB \u3002</p>\n<p>mcuboot \u76f4\u63a5\u4ece github \u4e0a pull \u4e86\u6700\u65b0\u7684\u4ee3\u7801\uff0c\u7136\u540e\u52a0\u4e86\u4e00\u4e2a custom \u7684 board \u8fdb\u53bb\u3002\u4e3a\u4e86\u8dd1\u901a\u6d41\u7a0b\uff0c\u6211\u5728 prj.conf \u4e2d\u628a\uff1a</p>\n<ol>\n<li>CONFIG_MAIN_STACK_SIZE \u6539\u6210\u4e86 1024 \uff0c\u4e0d\u7136\u4f1a\u7206\u5185\u5b58</li>\n<li>CONFIG_BOOT_SIGNATURE_TYPE_NONE \uff0c\u628a\u9a8c\u8bc1\u7b7e\u540d\u7ed9\u5173\u4e86\uff0c\u5148\u8dd1\u901a\u540e\u9762\u518d\u5f00\u3002</li>\n</ol>\n<p>\u4e4b\u540e\u5c31\u662f west build \uff0c\u7136\u540e upload \u5230\u677f\u5b50\u4e0a\uff0c\u5f00\u673a\u4e0a\u7535\uff0c\u4e32\u53e3\u6b63\u5e38\u663e\u793a mcuboot \u542f\u52a8\u3002</p>\n<p>\u4e4b\u540e\uff0c\u5199\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u95ea\u706f\u5e94\u7528\uff0c\u7528\u4e86 <a href=\"http://platform.io\" rel=\"nofollow\">platform.io</a> + zephyr \uff0c\u540c\u4e00\u5957\u677f\u5b50\u914d\u7f6e\u6587\u4ef6\uff0c\u5148\u4e0d\u5206\u533a\u76f4\u63a5 upload \uff0c\u786e\u8ba4\u4e86\u7a0b\u5e8f\u80fd\u8dd1\u3002</p>\n<p>\u7136\u540e\u6309\u7167\u8bf4\u660e\uff0c</p>\n<ol>\n<li>\u5728 prj.conf \u4e2d\u52a0\u4e86\uff0cCONFIG_BOOTLOADER_MCUBOOT=y \uff0cCONFIG_FLASH_MAP=y \u3002</li>\n<li>\u4e4b\u540e\u5728 dts \u628a flash \u7684\u5206\u533a\u4fe1\u606f\u52a0\u4e0a</li>\n<li>\u5728 platform.ini \u4e2d\u52a0\u4e0a build_flags = -DPM_STATIC_YML_FILE=zephyr/pm_static.yml</li>\n<li>\u521b\u5efa pm_static.yml \u4e5f\u628a\u5206\u533a\u4fe1\u606f\u52a0\u4e0a\u3002</li>\n</ol>\n<p>\u4e00\u6ce2\u64cd\u4f5c\u4e4b\u540e\u751f\u6210\u4e86\u5e26\u7b7e\u540d\u7684 firmware.elf \u3002\u4e0a\u4f20\u5230\u677f\u5b50\u4e0a\u53d1\u73b0\u4e0d\u8fd0\u884c\u3002</p>\n<p>\u751f\u6210\u7684 firmware \u662f</p>\n<pre><code>Printing content of signed image: firmware.mcuboot.bin\n\n#### Image header (offset: 0x0) ############################\nmagic:              0x96f3b83d\nload_addr:          0x0\nhdr_size:           0x200\nprotected_tlv_size: 0x0\nimg_size:           0x3d92\nflags:              0x0\nversion:            0.0.0+0\n############################################################\n#### Payload (offset: 0x200) ###############################\n|                                                          |\n|              FW image (size: 0x3d92 Bytes)               |\n|                                                          |\n############################################################\n#### TLV area (offset: 0x3f92) #############################\nmagic:     0x6907\narea size: 0x150\n        ---------------------------------------------\n        type: SHA256 (0x10)\n        len:  0x20\n        data: 0x90 0x7f 0xa3 0xbc 0x5d 0xdc 0x34 0xa8\n              0xa9 0x06 0xa4 0x64 0x5d 0x73 0x79 0x24\n              0xea 0x62 0x6e 0x6e 0x37 0x99 0x5c 0x72\n              0x61 0x85 0xf1 0xda 0x45 0x72 0x87 0xaa\n        ---------------------------------------------\n        type: KEYHASH (0x1)\n        len:  0x20\n        data: 0xfc 0x57 0x01 0xdc 0x61 0x35 0xe1 0x32\n              0x38 0x47 0xbd 0xc4 0x0f 0x04 0xd2 0xe5\n              0xbe 0xe5 0x83 0x3b 0x23 0xc2 0x9f 0x93\n              0x59 0x3d 0x00 0x01 0x8c 0xfa 0x99 0x94\n        ---------------------------------------------\n        type: RSA2048 (0x20)\n        len:  0x100\n        data: 0x67 0x30 0x0a 0xf8 0xee 0xad 0xba 0xbf\n              0xac 0x22 0x6d 0x3a 0xac 0x76 0x9f 0x60\n              0xb0 0x2c 0x3f 0x5e 0x4d 0xf7 0x3f 0x0d\n              0x9b 0x24 0xbe 0x4a 0x70 0xa4 0x44 0x08\n              0x7c 0xe7 0x27 0xce 0x0d 0xca 0x97 0x18\n              0x3c 0xc3 0x15 0xbe 0xb0 0x0b 0xb5 0xf1\n              0x10 0xff 0x84 0x59 0xca 0xc2 0x29 0x42\n              0xf0 0x8c 0xbb 0xd1 0x38 0xe5 0x6c 0xeb\n              0xde 0xf4 0x1f 0xa0 0x8f 0xde 0x0b 0xe2\n              0x23 0x3e 0x2e 0xd6 0xcb 0xf6 0x22 0x0d\n              0x54 0x88 0xf3 0x7e 0x86 0xd0 0xb7 0x7d\n              0x9d 0x75 0x8a 0xa9 0xa0 0x73 0xb6 0xee\n              0x9a 0x6b 0x80 0xb9 0xd7 0x87 0x65 0x3c\n              0x89 0x3b 0x90 0xd2 0x0a 0xf1 0xcb 0xe8\n              0x4b 0x73 0xbd 0xe2 0x05 0x75 0x35 0x8c\n              0xc0 0xa0 0x38 0x26 0x10 0xac 0x07 0xf3\n              0xae 0x58 0xa0 0x8e 0x64 0x8c 0x06 0x76\n              0x15 0x24 0xe5 0xeb 0x9a 0x56 0x97 0x91\n              0x99 0xa4 0x18 0xd9 0xd8 0x8a 0xaa 0xcb\n              0x73 0x07 0xd0 0xc5 0x96 0x79 0x95 0xa1\n              0xf3 0xec 0x21 0xf0 0xae 0xa5 0x8e 0x46\n              0xb8 0xdd 0x09 0x0b 0xbc 0x6f 0x4c 0xfe\n              0xa8 0x91 0xfc 0xdb 0x10 0x71 0x3a 0x16\n              0x5f 0xd2 0xf1 0x49 0x3c 0x24 0x58 0x8f\n              0xc5 0x82 0xc3 0x6c 0xf5 0xe9 0x16 0x08\n              0xb3 0x35 0x30 0x38 0x08 0x43 0x27 0x25\n              0x08 0x61 0x36 0xb8 0x83 0x04 0xac 0xae\n              0x94 0x8d 0x27 0x31 0x61 0x6b 0x11 0x1d\n              0xa2 0x0f 0x48 0xd9 0x0e 0x5c 0x27 0x3f\n              0x3c 0x19 0xa2 0x38 0xe8 0x90 0x32 0x50\n              0xd7 0xdd 0x4d 0x9d 0xf5 0x2d 0xa5 0xec\n              0xed 0xf6 0x04 0x51 0x91 0xf3 0xe8 0xc8\n############################################################\n#### End of Image  #########################################\ndumpinfo has run successfully\n</code></pre>\n<p>\u5206\u533a\u4fe1\u606f\u662f\uff1a</p>\n<pre><code>flash_primary:\n  base_address: 0x08000000\n  size: 64K\n  # Bootloader\n  mcuboot:\n    address: 0x08000000\n    size: 24K\n  # Application slot 0\n  image_0:\n    address: 0x08006000\n    size: 20K\n  # Upgrade slot\n  image_1:\n    address: 0x0800b000\n    size: 20K\n</code></pre>\n<p>\u542f\u52a8\u65f6\u5019\u4e32\u53e3\u8f93\u51fa\uff1a</p>\n<pre><code>*** Booting MCUboot v2.1.0-rc1-271-gc8470fb145f8 ***\n*** Using Zephyr OS build v4.1.0-1989-g1f9f4c8cee02 ***\nMCUBoot\nI: Starting bootloader\nD: Non-optimal sector distribution, slot0 has 18 usable sectors (20 assigned) but slot1 has 20 assigned\nI: Prim\nary image: magic=good, swap_type=0x1, copy_done=0x3, image_ok=0x1\nI: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3\nI: Boot source: primary slot\nI: Image index: 0, Swap type: none\nI: Bootloader chainload address offset: 0x6000\nI: Image version: v0.0.0\nI: Jumping to the first image slot\ufffd*\n</code></pre>\n<p>\u53ef\u4ee5\u770b\u5230\u5b83 mcuboot \u6b63\u786e\u8bc6\u522b\u5230\u4e86 image \uff0c\u4f46\u662f\u5728\u8df3\u8f6c\u5230 image \u7684\u90a3\u4e00\u523b\u5c31\u6302\u6389\u4e86\u3002</p>\n<p>\u5927\u5bb6\u6307\u70b9\u6307\u70b9\u3002</p>\n", 
      "date_published": "2025-04-07T07:22:02+00:00", 
      "title": "\u6709\u73a9 mcuboot \u7684\u5417\uff0c\u53ef\u5426\u5e2e\u5fd9\u770b\u770b\u6211\u7684\u5e94\u7528\u4e3a\u5565\u542f\u52a8\u4e0d\u4e86\u3002", 
      "id": "https://www.v2ex.com/t/1123744"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lzyong2019", 
        "name": "lzyong2019", 
        "avatar": "https://cdn.v2ex.com/avatar/b245/9d61/441960_large.png?m=1735872430"
      }, 
      "url": "https://www.v2ex.com/t/1102222", 
      "title": "\u89e3\u6790 pads pt9 \u683c\u5f0f\u6587\u4ef6\uff0c\u5927\u5bb6\u6709\u6ca1\u6709\u4ec0\u4e48\u597d\u529e\u6cd5\u89e3\u6790\uff0c\u53ef\u4ee5\u6709\u507f", 
      "id": "https://www.v2ex.com/t/1102222", 
      "date_published": "2025-01-03T02:51:29+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/turfbook", 
        "name": "turfbook", 
        "avatar": "https://cdn.v2ex.com/avatar/c904/1cfd/20269_large.png?m=1769740695"
      }, 
      "url": "https://www.v2ex.com/t/1098670", 
      "title": "\u8bf7\u6559\u5d4c\u5165\u5f0f\u81ea\u5b66\u8def\u5f84", 
      "id": "https://www.v2ex.com/t/1098670", 
      "date_published": "2024-12-19T01:25:22+00:00", 
      "content_html": "<p>\u4e5f\u4e0d\u77e5\u9053\u8fd9\u6837\u8868\u8fbe\u7684\u5bf9\u4e0d\u5bf9, \u5c31\u662f\u60f3\u5b66\u4e60\u5229\u7528 ESP32/Arduino \u4e4b\u7c7b\u7684\u786c\u4ef6, \u6700\u7ec8\u662f\u5e0c\u671b\u80fd\u81ea\u5df1\u8bbe\u8ba1\u677f\u5b50\u505a\u4e9b\u5c0f\u73a9\u610f, \u4e0d\u77e5\u9053\u5982\u4f55\u5165\u95e8, \u8bf7\u6559\u4e00\u4e0b\u5404\u4f4d\u5b66\u4e60\u7684\u8def\u5f84, \u63a8\u8350\u4e00\u4e9b\u5b66\u4e60\u7684\u4e66\u7c4d/\u89c6\u9891\u7b49\u8d44\u6599</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ChristopherY", 
        "name": "ChristopherY", 
        "avatar": "https://cdn.v2ex.com/gravatar/8590fcdab0f8f5ab4a8cb564d7bc263f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1098235", 
      "title": "\u5d4c\u5165\u5f0f AI \u7cfb\u7edf SDK", 
      "id": "https://www.v2ex.com/t/1098235", 
      "date_published": "2024-12-17T07:40:25+00:00", 
      "content_html": "\u6c42\u95ee\u6709\u6ca1\u6709\u5d4c\u5165\u5f0f AI \u7cfb\u7edf\u7684 SDK \u8f6f\u4ef6\u6a21\u5757\u4ecb\u7ecd\uff0c\u4e3b\u8981\u662f\u5982\u4f55\u5728 qca \u82af\u7247\u4e0a\u5b9e\u73b0 AI \u90e8\u7f72\uff0c\u90e8\u7f72\u9700\u8981\u54ea\u4e9b\u8f6f\u4ef6\u6a21\u5757\u914d\u5408\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xiaocheng2014", 
        "name": "xiaocheng2014", 
        "avatar": "https://cdn.v2ex.com/avatar/06bc/3c64/166092_large.png?m=1486962555"
      }, 
      "url": "https://www.v2ex.com/t/1062552", 
      "title": "\u4ece\u5f00\u53d1\u4e00\u4e2a\u516d\u8db3\u673a\u5668\u4eba\u5165\u624b\uff0c\u8981\u600e\u4e48\u505a", 
      "id": "https://www.v2ex.com/t/1062552", 
      "date_published": "2024-08-05T02:37:15+00:00", 
      "content_html": "<p>\u6211\u6709\u5f88\u591a\u7f16\u7a0b\u8bed\u8a00\u7684\u7ecf\u9a8c\uff0c\u5982 Java php Python golang,\u4f46\u662f C \u8fd8\u505c\u7559\u5728 hello world \u9636\u6bb5\uff0c\u5728\u5de5\u4f5c\u4e0a\u6ca1\u7528\u8fc7\uff0c\u4e5f\u6ca1\u6df1\u5165\u5b66\u8fc7\uff0c\u4f46\u662f\u6211\u662f\u60f3\u7528 micropython \u53bb\u5b8c\u6210\u4e00\u4e2a\u516d\u8db3\u673a\u5668\u4eba\uff0c\u6211\u8fd9\u4e5f\u6709\u516d\u8db3\u673a\u5668\u4eba\u7684\u6e90\u7801\u3002\u6211\u60f3\u5b9e\u73b0\u7684\u516d\u8db3\u673a\u5668\u4eba\u9664\u4e86\u6e90\u7801\u5e94\u6709\u7684\u63a7\u5236\u529f\u80fd\u5916\uff0c\u6211\u8fd8\u60f3\u52a0\u8bed\u97f3\u63a7\u5236\u529f\u80fd\u3002\u6211\u7528\u7684 esp32 \u677f\u5b50\uff0c\u6211\u60f3\u5b66\u4f1a\u8fd9\u4e2a\u540e\uff0c\u5728\u505a\u4e00\u4e9b\u5c0f\u73a9\u610f\uff0c\u5982\u684c\u9762\u65f6\u949f\u7b49\u3002\u95ee\u9898\u6765\u4e86\uff0c\u5728\u6211\u7684\u8ba4\u77e5\u91cc\uff0c\u7f16\u7a0b\u4e00\u822c\u90fd\u662f\u8c03\u8c03\u5e93\u4ec0\u4e48\u7684\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6211\u8bf4\u7684\uff0c\u8fd8\u9700\u8981\u53bb\u786c\u5543\u6570\u70b9\u6a21\u7535\u5417\uff1f\u6211\u5e94\u8be5\u6309\u7167\u4ec0\u4e48\u987a\u5e8f\u53bb\u5b66\u4e60\uff1f\u9ad8\u4e2d\u7269\u7406\u5f88\u597d\uff0c\u73b0\u5728\u4e5f\u6ca1\u5fd8\u8bb0\u5b66\u8fc7\u7684\u7535\u5b66\uff0c\u4f46\u662f\u5927\u5b66\u7684\u662f\u4e0d\u8bb0\u5f97\u4e86\uff0c\u6709\u6ca1\u6709\u5927\u795e\u5e2e\u6211\u6307\u4e0b\u5b66\u4e60\u7684\u8def\uff1f\u5f88\u611f\u8c22</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/goxxoo", 
        "name": "goxxoo", 
        "avatar": "https://cdn.v2ex.com/gravatar/c72ed599e0a2a0b3b04263893b378de5?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1051083", 
      "title": "\u8bf7\u6559\u5b9e\u73b0 \u5d4c\u5165\u5f0f\u4e8c\u7ef4\u7801\u626b\u63cf\u7684\u95ee\u9898, \u65b0\u624b, \u975e\u5e38\u65b0", 
      "id": "https://www.v2ex.com/t/1051083", 
      "date_published": "2024-06-20T03:12:49+00:00", 
      "content_html": "\u5b9e\u73b0 \u626b\u63cf\u4e8c\u7ef4\u7801 \u6761\u5f62\u7801, <br />\u9ebb\u70e6\u63a8\u8350\u4e2a\u73b0\u6210\u7684\u54c1\u724c<br />\u7f51\u4e0a\u627e\u4e86 \u4e00\u4e9b\u8d44\u6599, USB \u548c\u4e32\u53e3\u7684, \u4f46\u662f\u786c\u4ef6\u4e00\u65e0\u6240\u77e5, \u672c\u4eba\u7565\u61c2 C# \u548c Python \u4f46\u662f\u6ca1\u63a5\u89e6\u8fc7\u786c\u4ef6\u901a\u4fe1, \u6c42\u6559\u4e86"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/liqinliqin", 
        "name": "liqinliqin", 
        "avatar": "https://cdn.v2ex.com/avatar/80d4/c0e3/23618_large.png?m=1764734184"
      }, 
      "url": "https://www.v2ex.com/t/1044161", 
      "title": "0 \u57fa\u7840\u5d4c\u5165\u5f0f\u5f00\u53d1\u5b66\u4e60", 
      "id": "https://www.v2ex.com/t/1044161", 
      "date_published": "2024-05-27T00:49:54+00:00", 
      "content_html": "\u7b2c\u4e00\u90e8\u5206\u4e3b\u8981\u662f\u8bb2 ESP32-C6 \u7684\u57fa\u4e8e\u5f00\u53d1<br /><br /><a target=\"_blank\" href=\"https://www.bilibili.com/video/BV1UM4m1C7Wn/?spm_id_from=333.788&amp;vd_source=e24addeb91e7fd9a7ad9a1023eea255f\" rel=\"nofollow noopener\">https://www.bilibili.com/video/BV1UM4m1C7Wn/?spm_id_from=333.788&amp;vd_source=e24addeb91e7fd9a7ad9a1023eea255f</a><br /><br />\u7b2c\u4e8c\u90e8\u5206\u8bb2 Lua \u79fb\u690d\u5230 ESP32-C6<br /><br />\u7b2c\u4e09\u90e8\u5206\u8bb2 Python \u79fb\u690d\u5230 ESP32-C3<br /><br />\u5bf9\u5b66\u4e60\u8fc7 C \u8bed\u8a00\u7684\u53cb\u597d\uff0c\u5bf9 Lua \u3001Python \u5f00\u53d1\u8005\u53cb\u597d"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/FreeWong", 
        "name": "FreeWong", 
        "avatar": "https://cdn.v2ex.com/gravatar/5ed56e148231babb621f3a10f2dc478a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1041775", 
      "date_modified": "2024-05-18T00:46:25+00:00", 
      "content_html": "\u5de5\u4f5c\u5185\u5bb9\u8981\u6c42 \u4ece\u5bc4\u5b58\u5668\u8bfb\u53d6\u6570\u636e\uff0c\u7ec4\u88c5\u6210\u8981\u6c42\u7684\u534f\u8bae\u683c\u5f0f\uff0c\u901a\u8fc7 NBIoT \u901a\u8baf\u6a21\u5757\u53d1\u9001\u3002<br />\u5728\u8fd9\u6837\u7684\u8981\u6c42\u4e0b\uff0c\u4e0d\u61c2\u6570\u6a21\u7535\uff0c\u4e0d\u61c2\u4e0a\u62c9\uff0c\u4e0b\u62c9\u8fd9\u4e9b\u77e5\u8bc6\uff0c\u53ef\u884c\u5417<br />\u591a\u8c22\u4e86", 
      "date_published": "2024-05-18T00:26:47+00:00", 
      "title": "\u5d4c\u5165\u5f0f\u8f6f\u4ef6(\u5355\u7247\u673a)\u76f8\u5173\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1041775"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/liqinliqin", 
        "name": "liqinliqin", 
        "avatar": "https://cdn.v2ex.com/avatar/80d4/c0e3/23618_large.png?m=1764734184"
      }, 
      "url": "https://www.v2ex.com/t/1040735", 
      "title": "ESP32C6 \u7cfb\u5217\u6559\u5b66\u89c6\u9891\uff0c\u6bcf\u5929\u589e\u52a0\uff0c\u5927\u6982 20 \u96c6\uff0c\u5982\u679c\u6709\u7528\u7684\u53ef\u4ee5\u4e0b\u8f7d", 
      "id": "https://www.v2ex.com/t/1040735", 
      "date_published": "2024-05-14T11:29:25+00:00", 
      "content_html": "\u94fe\u63a5: <a target=\"_blank\" href=\"https://pan.baidu.com/s/1xleAiFzSswlApOecWu_ScA?pwd=6789\" rel=\"nofollow noopener\">https://pan.baidu.com/s/1xleAiFzSswlApOecWu_ScA?pwd=6789</a> \u63d0\u53d6\u7801: 6789 \u590d\u5236\u8fd9\u6bb5\u5185\u5bb9\u540e\u6253\u5f00\u767e\u5ea6\u7f51\u76d8\u624b\u673a App \uff0c\u64cd\u4f5c\u66f4\u65b9\u4fbf\u54e6 <br />--\u6765\u81ea\u767e\u5ea6\u7f51\u76d8\u8d85\u7ea7\u4f1a\u5458 v1 \u7684\u5206\u4eab<br /><br />ESP32C6 \u7cfb\u5217\u6559\u5b66\u89c6\u9891\uff0c\u6bcf\u5929\u589e\u52a0\uff0c\u5927\u6982 20 \u96c6\uff0c\u5982\u679c\u6709\u7528\u7684\u53ef\u4ee5\u4e0b\u8f7d<br /><br />\u514d\u8d39\u7684\u6280\u672f\u6307\u5bfc V andy433928"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zxkmm", 
        "name": "zxkmm", 
        "avatar": "https://cdn.v2ex.com/gravatar/7d339b00f7a2ee868d6281f5e226db6e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1032958", 
      "title": "\u8fc7\u5e74\u65f6\u5019\u5199\u7684\uff0c\u52a3\u8d28\u53e4\u65e9 mcu \u7684 TFT \u5c4f\u5e55 +ILI9341 \u4eae\u5ea6\u63a7\u5236\u65b9\u6848", 
      "id": "https://www.v2ex.com/t/1032958", 
      "date_published": "2024-04-16T07:22:51+00:00", 
      "content_html": "<h1>\u524d\u8a00</h1>\n<p>\u4eae\u5ea6\u63a7\u5236\u4e00\u822c\u6709\u4e24\u79cd\u65b9\u6848\uff0cDC \u8c03\u5149\u548c PWM \u8c03\u5149\u3002</p>\n<p>\u4f46\u662f\u67d0\u4e9b\u5947\u602a\u7684\u5355\u7247\u673a\u8bbe\u8ba1\u76f4\u63a5\u628a TFT \u5c4f\u7684\u80cc\u5149\u706f\u7ed1\u5b9a\u5728\u7535\u6e90\u4e0a\uff0c\u6240\u4ee5\u4f60\u53ea\u80fd\u5f00\u5173\u80cc\u5149\uff0c\u4e0d\u80fd\u63a7\u5236\u7535\u538b\uff1b\u6240\u4ee5\u53ea\u80fd\u88ab\u8feb\u4f7f\u7528 PWM \u8c03\u5149\u3002</p>\n<p>\u7136\u800c\u5bf9\u4e8e\u5355\u7247\u673a/RTOS \u6765\u8bf4\uff0c\u6bcf\u4e2a tick \u90fd\u82b1\u4e00\u90e8\u5206\u6027\u80fd\u5728\u63a7\u5236\u65b9\u9762\u53ef\u80fd\u6709\u6bd4\u8f83\u5927\u7684\u6027\u80fd\u635f\u8017\uff0c\u52a0\u4e0a\u5982\u679c\u8bbe\u5907\u662f\u65e0\u7ebf\u7535\u76f8\u5173\u7684\u8bdd\uff0cPWM \u5e26\u6765\u7684\u566a\u97f3\u53ef\u80fd\u4f1a\u8f90\u5c04\u5230\u65e0\u7ebf\u7535\u90e8\u5206\u5bfc\u81f4\u672a\u77e5\u7684\u7ed3\u679c\uff0c\u6240\u4ee5\u53ea\u80fd\u91c7\u53d6\u7b2c\u4e09\u79cd\u65b9\u6848\uff1a\u4f2a\u989c\u8272\u3002</p>\n<h1>\u4f2a\u989c\u8272</h1>\n<p>\u672c\u8d28\u4e0a ILI9341 IC \u7684\u9a71\u52a8\u5f53\u4e2d\u662f\u4e00\u4e2a\u50cf\u7d20\u70b9\u4e00\u4e2a\u50cf\u7d20\u70b9\u5730\u753b\u56fe</p>\n<pre><code class=\"language-C++\">void lcd_write_pixel(ui::Color pixel) {\n        lcd_write_data(pixel.v);\n    }\n</code></pre>\n<p>\u8fd9\u5c31\u76f8\u5f53\u7b80\u5355\u4e86\uff0c\u76f4\u63a5\u628a\u989c\u8272\u901a\u8fc7\u6d6e\u70b9\u8fd0\u7b97\u5316\u4e3a\u66f4\u201c\u9ed1\u201d\u7684\u989c\u8272\u5373\u53ef\u5b9e\u73b0\u201c\u4f2a\u201d\u4eae\u5ea6\u63a7\u5236</p>\n<pre><code class=\"language-C++\">void darken_color(ui::Color&amp; pixel, float darken_level) {\n    uint16_t r = (pixel.v &gt;&gt; 11) &amp; 0x1F;\n    uint16_t g = (pixel.v &gt;&gt; 5) &amp; 0x3F;\n    uint16_t b = pixel.v &amp; 0x1F;\n\n    r = static_cast&lt;uint16_t&gt;(r / darken_level);  // darken\n    g = static_cast&lt;uint16_t&gt;(g / darken_level);\n    b = static_cast&lt;uint16_t&gt;(b / darken_level);\n\n    pixel.v = (r &lt;&lt; 11) | (g &lt;&lt; 5) | b;  // combine back\n}\n</code></pre>\n<p>\u4f46\u662f\u6d6e\u70b9\u8fd0\u7b97\u5728\u5355\u7247\u673a\u4e0a\u76f8\u5f53\u6162\uff0c\u6700\u540e\u51fa\u6765\u800c\u7ed3\u679c\u53ef\u4ee5\u7528\uff0c\u4f46\u662f\u6e32\u67d3\u901f\u5ea6\u8089\u773c\u53ef\u89c1\u7684\u4e0b\u964d\u3002\u6700\u540e\u6211\u7684\u65b9\u6848\u662f\u635f\u5931\u4e00\u4e9b\u8c03\u63a7\u7cbe\u5ea6\uff0c\u7528\u79fb\u4f4d\u8fd0\u7b97\u4ee3\u66ff\u6d6e\u70b9\u8fd0\u7b97</p>\n<pre><code class=\"language-C++\">void darken_color(ui::Color&amp; pixel, uint8_t darken_level_shift) {\n        // TODO: 1. do we need edge control?\n        // currently didn't see and issue without edge control\n        // but maybe hurts screen hardware without one?\n\n        // TODO: 2. de-color mode for accessibility\n        // TODO: 3. high contrast mode for accessibility\n\n        uint16_t r = (pixel.v &gt;&gt; 11) &amp; 0x1F;  // extract\n        uint16_t g = (pixel.v &gt;&gt; 5) &amp; 0x3F;\n        uint16_t b = pixel.v &amp; 0x1F;\n\n        r = r &gt;&gt; darken_level_shift;\n        g = g &gt;&gt; darken_level_shift;\n        b = b &gt;&gt; darken_level_shift;\n\n        pixel.v = (r &lt;&lt; 11) | (g &lt;&lt; 5) | b;\n    }\n</code></pre>\n<pre><code>\u5176\u4e2d darken_level_shift \u662f\u4e00\u4e2a uint8,0 \u4ee3\u8868 100%\u4eae\u5ea6\uff0c1 \u4ee3\u8868 50%\u4eae\u5ea6\uff0c\u4ee5\u6b64\u7c7b\u63a8\n</code></pre>\n<p>\u6700\u540e\u51fa\u6765\u7684\u7ed3\u679c\u7ec8\u4e8e\u53ef\u4ee5\u7528\u4e86\uff1a</p>\n<pre><code class=\"language-C++\">void lcd_write_pixels(ui::Color pixel, size_t n) {\n        if (get_dark_cover()) {\n            darken_color(pixel, get_brightness());  // Darken\n        }\n</code></pre>\n<pre><code class=\"language-C++\">void lcd_write_pixels_unrolled8(ui::Color pixel, size_t n) {\n        if (get_dark_cover()) {\n            darken_color(pixel, get_brightness());  // Darken \n        }\n</code></pre>\n<h1>\u6700\u540e\u6b22\u8fce\u5173\u6ce8\u6211\u7684 github</h1>\n<p><a href=\"https://github.com/zxkmm\" rel=\"nofollow\">https://github.com/zxkmm</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/yzl1995", 
        "name": "yzl1995", 
        "avatar": "https://cdn.v2ex.com/gravatar/5ca1d5d6dd2f549c028f6be67c464e1c?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1030390", 
      "title": "\u5d4c\u5165\u5f0f\u5165\u804c\u6ca1\u4eba\u5e26 \uff0c\u5982\u4f55\u63d0\u5347\u81ea\u5df1\u7684\u5f00\u53d1\u5de5\u4f5c\u7ecf\u9a8c\u5462\uff1f\u63d0\u5347\u80fd\u529b\uff1f\u6709\u6ca1\u6709\u6559\u7a0b\u63a8\u8350", 
      "id": "https://www.v2ex.com/t/1030390", 
      "date_published": "2024-04-07T13:15:00+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Byter", 
        "name": "Byter", 
        "avatar": "https://cdn.v2ex.com/gravatar/901a5eac8afcaa10d6cbaf39561bfd1f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1017350", 
      "title": "\u60f3\u7ed9\u548c\u5bb6\u4eb2\u6444\u50cf\u5934\u5237 OpenIPC\uff0c\u6c42\u52a9 u-boot \u76f8\u5173\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1017350", 
      "date_published": "2024-02-21T13:01:22+00:00", 
      "content_html": "<p>\u7eaf\u5c0f\u767d\uff0c\u4e0d\u592a\u4e86\u89e3\u8fd9\u65b9\u9762\uff0c\u8ba9\u5927\u5bb6\u89c1\u7b11\u4e86\u3002</p>\n<p>\u6444\u50cf\u5934\u662f\u5cad\u96c1\u79d1\u6280\u7684 LYC40-PTZ \uff0c\u7ecf\u62c6\u673a\u786e\u8ba4 SoC \u662f\u541b\u6b63\u7684 T31N \uff0cCMOS \u662f sc2335 \uff0c\u5e94\u8be5\u53ef\u4ee5\u652f\u6301 OpenIPC \uff0c\u6240\u4ee5\u7528 ttl \u8fde\u63a5\u540e\u6309\u7167\u7f51\u4e0a\u4e00\u4e9b\u6559\u7a0b\u7167\u846b\u82a6\u753b\u74e2\u51c6\u5907\u8fdb u-boot \u5237\u673a\u3002</p>\n<p>\u542f\u52a8\u65e5\u5fd7\u5982\u4e0b\uff1a</p>\n<pre><code>U-Boot SPL 2013.07 (Nov 23 2020 - 17:19:58)\nTimer init\nCLK stop\nPLL init\npll_init:366\npll_cfg.pdiv = 10, pll_cfg.h2div = 5, pll_cfg.h0div = 5, pll_cfg.cdiv = 1, pll_cfg.l2div = 2\nnf=118 nr = 1 od0 = 1 od1 = 2\ncppcr is 07605100\nCPM_CPAPCR 0750510d\nnf=100 nr = 1 od0 = 1 od1 = 2\ncppcr is 06405100\nCPM_CPMPCR 0640510d\nnf=100 nr = 1 od0 = 1 od1 = 2\ncppcr is 06405100\nCPM_CPVPCR 0640510d\ncppcr 0x9a7b5510\napll_freq 1404000000\nmpll_freq 1200000000\nvpll_freq = 1200000000\nddr sel mpll, cpu sel apll\nddrfreq 600000000\ncclk  1404000000\nl2clk 702000000\nh0clk 240000000\nh2clk 240000000\npclk  120000000\nCLK init\nSDRAM init\nsdram init start\nddr_inno_phy_init ..!\nphy reg = 0x00000007, CL = 0x00000007\nddr_inno_phy_init ..! 11:  00000004\nddr_inno_phy_init ..! 22:  00000006\nddr_inno_phy_init ..! 33:  00000006\nREG_DDR_LMR: 00000210\nREG_DDR_LMR: 00000310\nREG_DDR_LMR: 00000110\nREG_DDR_LMR, MR0: 00f73011\nT31_0x5: 00000007\nT31_0x15: 0000000c\nT31_0x4: 00000000\nT31_0x14: 00000002\nINNO_TRAINING_CTRL 1: 00000000\nINNO_TRAINING_CTRL 2: 000000a1\nT31_cc: 00000003\nINNO_TRAINING_CTRL 3: 000000a0\nT31_118: 0000003c\nT31_158: 0000003c\nT31_190: 0000001f\nT31_194: 0000001e\njz-04 :  0x00000051\njz-08 :  0x000000a0\njz-28 :  0x00000024\nDDR PHY init OK\nINNO_DQ_WIDTH   :00000003\nINNO_PLL_FBDIV  :00000014\nINNO_PLL_PDIV   :00000005\nINNO_MEM_CFG    :00000051\nINNO_PLL_CTRL   :00000018\nINNO_CHANNEL_EN :0000000d\nINNO_CWL        :00000006\nINNO_CL         :00000007\nDDR Controller init\nDDRC_STATUS         0x80000001\nDDRC_CFG            0x0a288a40\nDDRC_CTRL           0x0000011c\nDDRC_LMR            0x00400008\nDDRC_DLP            0x00000000\nDDRC_TIMING1        0x040e0806\nDDRC_TIMING2        0x02170707\nDDRC_TIMING3        0x2007051e\nDDRC_TIMING4        0x1a240031\nDDRC_TIMING5        0xff060405\nDDRC_TIMING6        0x32170505\nDDRC_REFCNT         0x00f2e701\nDDRC_MMAP0          0x000020fc\nDDRC_MMAP1          0x00002400\nDDRC_REMAP1         0x03020d0c\nDDRC_REMAP2         0x07060504\nDDRC_REMAP3         0x0b0a0908\nDDRC_REMAP4         0x0f0e0100\nDDRC_REMAP5         0x13121110\nDDRC_AUTOSR_EN      0x00000000\nsdram init finished\nSDRAM init ok\nboard_init_r\nimage entry point: 0x80100000\n\n\nU-Boot 2013.07 (Nov 23 2020 - 17:19:58)\n\nBoard: ISVP (Ingenic XBurst T31 SoC)\nDRAM:  64 MiB\nTop of RAM usable for U-Boot at: 84000000\nReserving 445k for U-Boot at: 83f90000\nReserving 32832k for malloc() at: 81f80000\nReserving 32 Bytes for Board Info at: 81f7ffe0\nReserving 124 Bytes for Global Data at: 81f7ff64\nReserving 128k for boot params() at: 81f5ff64\nStack Pointer at: 81f5ff48\nNow running in RAM - U-Boot at: 83f90000\nMMC:   msc: 0\nthe manufacturer 1c\nSF: Detected EN25QH128A\n\nIn:    serial\nOut:   serial\nErr:   serial\nNet:   ====&gt;phy 0:0x0-0x0 found\nSPEED:0, DUPLEX:0\nJz4775-9161\nupgradeFirmware 20200921120000 20200921120000\nupgradeFirmware 20200921120000 20200921120000\nupgradeFirmware 013 013\nsdupdate - auto upgrade file from mmc to flash\n\nUsage:\nsdupdate LOAD_ID ADDR_START ADDR_END\nLOAD_ID: 0--&gt;u-boot\n         1--&gt;kernel\n         2--&gt;rootfs\n         3--&gt;demo.bin\nex:\n        sdupdate   (update all)\nor\n        sdupdate 0 0x0 0x40000\nEnter key to stop autoboot in 3 seconds\nthe manufacturer 1c\nSF: Detected EN25QH128A\n\n---&gt;probe spend 4 ms\nSF: 2621440 bytes @ 0x50000 Read: OK\n---&gt;read spend 842 ms\n## Booting kernel from Legacy Image at 80600000 ...\n   Image Name:   Linux-3.10.14__isvp_swan_1.0__\n   Image Type:   MIPS Linux Kernel Image (lzma compressed)\n   Data Size:    1727656 Bytes = 1.6 MiB\n   Load Address: 80010000\n   Entry Point:  803c7810\n   Verifying Checksum ... OK\n   Uncompressing Kernel Image ... OK\n\nStarting kernel ...\n</code></pre>\n<p>\u73b0\u5728\u7684\u95ee\u9898\u662f\uff0c\u6839\u636e\u63d0\u793a\u201cEnter key to stop autoboot in 3 seconds\u201d\u4e2d\u65ad\u542f\u52a8\u4e0d\u6210\u529f\uff0c\u4e0d\u7ba1\u6309\u4ec0\u4e48\u952e\u90fd\u4f1a\u7167\u5e38\u542f\u52a8\u5185\u6838\u3002ttl \u8fde\u63a5\u786e\u8ba4\u6ca1\u95ee\u9898\uff0c\u662f\u53ef\u4ee5\u6b63\u5e38\u8f93\u5165\u7684\u3002\u5728\u5185\u6838\u542f\u52a8\u5f00\u59cb\u8dd1 log \u540e\u6309\u952e\u4f1a\u6709\u4e00\u4e2a\u767b\u9646\u63d0\u793a <strong>Ingenic-uc1_1 login:</strong> \u7136\u540e\u7ee7\u7eed\u8dd1\u7801\u3002</p>\n<p>\u6211\u7684\u7591\u60d1\u662f\uff1a</p>\n<ul>\n<li>\u770b\u7c7b\u4f3c\u7684\u6559\u7a0b\uff0c\u5373\u4f7f\u6709 u-boot \u5bc6\u7801\uff0c\u4e5f\u662f\u5728\u6309\u4efb\u610f\u952e\u505c\u6b62\u542f\u52a8\u540e\u4e0d\u8dd1\u7801\u4e86\u624d\u51fa\u767b\u9646\u63d0\u793a\uff0c\u90a3\u6211\u8fd9\u8fb9\u51fa\u73b0\u7684\u767b\u9646\u63d0\u793a\u5230\u5e95\u662f\u8fdb\u5165 u-boot \u7684\u767b\u9646\uff0c\u8fd8\u662f\u5176\u4ed6\u7684\uff1f</li>\n<li>\u4e3a\u4ec0\u4e48\u65e0\u6cd5\u4e2d\u65ad\u542f\u52a8\uff0c\u662f\u8bbe\u7f6e\u4e86\u7279\u6b8a\u7684\u6309\u952e\u5417\uff1f</li>\n<li>\u6839\u636e\u65e5\u5fd7\u5185\u5bb9\u63d0\u793a\u53ef\u4ee5\u7528 sdupdate \u547d\u4ee4\u66f4\u65b0 u-boot \uff0c\u5047\u5982\u6211\u65e0\u6cd5\u627e\u5230\u6b63\u786e\u7684\u5bc6\u7801\uff0c\u6211\u53ef\u4ee5\u76f4\u63a5\u7528\u8be5\u547d\u4ee4\u8986\u76d6\u4e00\u4e2a\u65b0\u7684 u-boot \u4e0a\u53bb\u5417\uff1f</li>\n</ul>\n<p>\u5e0c\u671b\u5404\u4f4d\u5927\u4f6c\u89e3\u60d1\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/120XK", 
        "name": "120XK", 
        "avatar": "https://cdn.v2ex.com/gravatar/1c5109368e70825164410de89f51e5b5?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1016303", 
      "title": "\u5d4c\u5165\u5f0f\u8f6f\u786c\u4ef6\u4ea4\u6d41\u8d34", 
      "id": "https://www.v2ex.com/t/1016303", 
      "date_published": "2024-02-18T09:13:25+00:00", 
      "content_html": "<p>V \u7ad9\u5d4c\u5165\u5f0f\u7684\u5927\u5bb6\u6765\u4ea4\u6d41\u554a\uff1b\u65b0\u521b\u5efa\u7684\u7fa4 MTY0OTI2Mjg1 \uff08 base64 \uff09 QQ \u7fa4\uff0c\u65b9\u4fbf\u4e0a\u4f20\u8d44\u6599</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xulolololololo", 
        "name": "xulolololololo", 
        "avatar": "https://cdn.v2ex.com/gravatar/da731ddd05c1d6beb2cffda6241dc689?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1000889", 
      "date_modified": "2023-12-16T09:11:15+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u76ee\u524d\u60f3\u7684\u662f\u539f\u59cb socket \uff0c\u53d1\u9001\u7aef\u5ba2\u6237\u7aef\u8fde\u63a5\u670d\u52a1\u5668\u7aef\uff0c\u5c06\u81ea\u5df1\u60f3\u53d1\u9001\u7684\u97f3\u9891\u6570\u636e\u53d1\u9001\u5230\u670d\u52a1\u7aef\uff0c \u670d\u52a1\u7aef\u8f6c\u53d1\u97f3\u9891\u5b57\u8282\u6d41\u6570\u636e\u5230\u63a5\u6536\u7aef\u7684\u5ba2\u6237\u7aef\uff0c\u5ba2\u6237\u7aef\u518d\u63a5\u6536\u518d\u64ad\u653e\u51fa\u6765\u3002\u5404\u4f4d\u5927\u4f6c\u6709\u4ec0\u4e48\u597d\u7684\u65b9\u6848\u5417</p>\n", 
      "date_published": "2023-12-16T03:59:31+00:00", 
      "title": "\u5d4c\u5165\u5f0f\u8bbe\u5907\uff08\u65e0\u4efb\u4f55\u754c\u9762\uff0c\u5e26\u5587\u53ed\uff09\u7684\u8bed\u97f3\u901a\u8bdd\u6280\u672f\u9009\u578b", 
      "id": "https://www.v2ex.com/t/1000889"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xpyusrs", 
        "name": "xpyusrs", 
        "avatar": "https://cdn.v2ex.com/gravatar/4726cb58b79434095149edbd9203ba4e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/998570", 
      "title": "\u9700\u8981\u5f00\u53d1\u5438\u9876\u706f\u548c\u53ef\u89c6\u5316\u95e8\u94c3\uff0c\u6709\u4eba\u63a5\u5355\u4e48", 
      "id": "https://www.v2ex.com/t/998570", 
      "date_published": "2023-12-08T01:58:48+00:00", 
      "content_html": "<p>\u6700\u597d\u662f\u5e7f\u4e1c\u7684\uff08\u4e0d\u5f3a\u5236\u6027\uff09\uff0c\u8fd9\u6837\u8fd8\u53ef\u4ee5\u9762\u8c08\uff0c\u6216\u8005\u6709\u4eba\u4ecb\u7ecd\u5d4c\u5165\u5f0f\u5f00\u53d1\u7684\u7fa4\u4e48</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ggvoking", 
        "name": "ggvoking", 
        "avatar": "https://cdn.v2ex.com/avatar/27f2/5516/626286_large.png?m=1751969676"
      }, 
      "url": "https://www.v2ex.com/t/991343", 
      "date_modified": "2023-11-13T01:59:38+00:00", 
      "content_html": "<p>\u60f3\u95ee\u95ee\u5927\u4f6c\u4eec\uff0c\u4e00\u76f4\u5f88\u5bf9\u5d4c\u5165\u5f0f\u5f00\u53d1\u5f88\u611f\u5174\u8da3\uff0c\u73b0\u5728\u4e1a\u4f59\u51c6\u5907\u5b66\u4e60 \u548c\u73a9\u4e00\u4e0b stm32 \u9700\u8981\u5b66\u4e60\u4ec0\u4e48\u524d\u7f6e\u77e5\u8bc6\uff0c\u591a\u5e74\u8001\u7a0b\u5e8f\u5458\u4e86\uff0c\u7f16\u7a0b\u770b\u4e86\u4e0b\u5f88\u7b80\u5355\uff0c\u81ea\u5df1\u52a8\u624b\u64b8\u9762\u5305\u677f\u5f88\u6709\u610f\u601d\u3002\u4f46\u662f\u7535\u8def\u56fe\u770b\u4e0d\u61c2\uff0c\u6240\u4ee5\u60f3\u95ee\u4e0b\u662f\u4e0d\u662f\u8981\u5b66\u6570\u7535\uff0c\u6216\u8005\u5176\u4ed6\u8bfe\u7a0b\u3002</p>\n", 
      "date_published": "2023-11-13T01:58:51+00:00", 
      "title": "\u4e1a\u4f59\u60f3\u5b66\u4e60\u548c\u73a9\u4e00\u4e0b\u5355\u7247\u673a\uff0c\u6c42\u52a9\u4e00\u4e0b", 
      "id": "https://www.v2ex.com/t/991343"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Ricky123", 
        "name": "Ricky123", 
        "avatar": "https://cdn.v2ex.com/gravatar/9dda8afe0422b60404b127c1f83b94b3?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/984947", 
      "title": "\u6700\u8fd1\u7684\u60f3\u6cd5<\u6253\u9020\u4e0b\u4e00\u4ee3\u7684\u5d4c\u5165\u5f0f\u8f6f\u4ef6\u5f00\u53d1 IDE>", 
      "id": "https://www.v2ex.com/t/984947", 
      "date_published": "2023-10-24T08:02:36+00:00", 
      "content_html": "<p>\u539f\u6587\u94fe\u63a5\uff1a<a href=\"https://zhuanlan.zhihu.com/p/663051128\" rel=\"nofollow\">2023 \uff0c\u6253\u9020\u4e0b\u4e00\u4ee3\u5d4c\u5165\u5f0f\u8f6f\u4ef6\u5f00\u53d1 IDE</a></p>\n<p>\u6709\u6ca1\u6709 v \u7ad9\u7684\u5927\u4f6c\u4ea4\u6d41\u6307\u5bfc\u4e00\u4e0b\uff0c\u8fd9\u4e2a\u65b9\u5411\u7684\u60f3\u6cd5\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/kuoruan", 
        "name": "kuoruan", 
        "avatar": "https://cdn.v2ex.com/gravatar/67540e543f3d2b3994148bc5a467d6cd?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/983671", 
      "title": "\u60f3\u5c06\u6295\u5f71\u4eea\u63a5\u5165\u7c73\u5bb6\uff0c\u8bf7\u6559\u4e00\u4e0b ESP32 \u91cd\u653e\u6295\u5f71\u4eea\u84dd\u7259\u9065\u63a7\u5668\u7684\u6309\u952e\uff0c\u7528\u4e8e\u63a7\u5236\u6295\u5f71\u4eea\u7684\u5f00\u5173", 
      "id": "https://www.v2ex.com/t/983671", 
      "date_published": "2023-10-20T01:55:47+00:00", 
      "content_html": "<p>\u4e70\u4e86\u4e00\u53f0\u5f53\u8d1d F6 \uff0c\u60f3\u8981\u5b9e\u73b0\u7c73\u5bb6\u63a7\u5236\u3002\u627e\u5230\u4e00\u7bc7\u6587\u7ae0\uff1a<a href=\"https://www.znds.com/tv-1237327-1-1.html\" rel=\"nofollow\">https://www.znds.com/tv-1237327-1-1.html</a></p>\n<p>\u4f46\u662f\u4f5c\u8005\u6ca1\u6709\u5728\u6587\u7ae0\u4e2d\u900f\u9732\u7ec6\u8282\uff0c\u6ca1\u529e\u6cd5\uff0c\u53ea\u6709\u81ea\u5df1\u6765\u7814\u7a76\u3002</p>\n<p>\u51c6\u5907\u4e86\u4ee5\u4e0b\u5185\u5bb9\uff1a</p>\n<ul>\n<li>ESP32-D4 \uff0c\u5356\u5bb6\u5df2\u7ecf\u710a\u597d\u4e86 USB \uff0c\u76f4\u63a5\u63d2\u5230\u7535\u8111\u5c31\u53ef\u4ee5\u70e7\u5f55\u4f7f\u7528</li>\n<li>nRF Connect for Android \uff0c\u7528\u4e8e\u84dd\u7259\u9065\u63a7\u5668\u6293\u5305</li>\n<li>ESP-IDF for VSCode \uff0cESP \u5f00\u53d1\u63d2\u4ef6</li>\n<li>\u5df4\u6cd5\u4e91\uff0c\u4f7f\u7528 MQTT \u534f\u8bae\uff0c\u7528\u4e8e\u63a5\u5165\u7c73\u5bb6</li>\n</ul>\n<p>\u6293\u5230\u7684\u7535\u6e90\u952e\u5e7f\u64ad\u5305\u7c7b\u4f3c\u4e8e\uff1a</p>\n<pre><code class=\"language-c\">/**\n * LEN | TYPE | VALUE\n * 2   | 0x01 | 0x04\n * 3   | 0x03 | 0x1218\n * 3   | 0x19 | 0x8001\n * 13  | 0xFF | 0x5D000300011808642AA0C884\n */\nstatic uint8_t adv_data_on_off[] = {\n    // Flags\n    0x02, 0x01, 0x04,\n    // Complete list of 16-bit Service UUIDs\n    0x03, 0x03, 0x12, 0x18,\n    // Appearance\n    0x03, 0x19, 0x80, 0x01,\n    // Manufacturer Specific Data\n    0x0D, 0xFF, 0x5D, 0x00, 0x03, 0x00, 0x01, 0x18, 0x08, 0x64, 0x2A, 0xA0, 0xC8, 0x84\n};\n</code></pre>\n<p>\u7531\u4e8e\u4e0d\u77e5\u9053\u600e\u4e48\u7528\u624b\u673a\u91cd\u653e\u6d4b\u8bd5\uff0c\u76f4\u63a5\u5f00\u59cb\u7f16\u5199 ESP \u4ee3\u7801\uff0c\u5237\u5165\u4e4b\u540e\uff0c\u7528\u5c0f\u7231\u540c\u5b66\u6267\u884c\u547d\u4ee4\u4e5f\u80fd\u6b63\u5e38\u91cd\u653e\u3002\n\u4f46\u662f\u6295\u5f71\u4eea\u5e76\u6ca1\u6709\u53cd\u5e94\u3002</p>\n<p>\u89c2\u5bdf\u9065\u63a7\u5668\u5e7f\u64ad\u7684\u5305\u6570\u636e <code>Manufacturer Specific Data</code> \u91cc\uff0c\u6709\u4e00\u4f4d\u662f\u6bcf\u6b21\u9012\u589e\u7684\u3002\u6211\u76f4\u63a5\u6539\u4e3a\u4e0b\u4e00\u6b21\u9884\u8ba1\u7684\u503c\uff0c\u91cd\u653e\u4e4b\u540e\u4e5f\u65e0\u6cd5\u6b63\u5e38\u5f00\u5173\u3002</p>\n<p>\u9065\u63a7\u5668\u53d1\u51fa\u7684\u5305\u8c8c\u4f3c\u662f\u5355\u6b21\u5e7f\u64ad\u7684\uff1f\u6211\u770b BLE \u534f\u8bae\u91cc\uff0c\u5e7f\u64ad\u5305\u90fd\u662f\u5faa\u73af\u5e7f\u64ad\u7684\uff1f</p>\n<p>\u6309\u5e16\u6587\u91cc\u7684\u8bf4\u6cd5\uff0c\u4ed6\u76f4\u63a5\u91cd\u653e\u539f\u5305\u5c31\u5b9e\u73b0\u4e86\uff0c\u611f\u89c9\u6211\u662f\u4e0d\u662f\u54ea\u91cc\u6709\u95ee\u9898\u3002</p>\n<p>\u73b0\u5728\u5361\u4f4f\u4e86\uff0c\u4e0d\u77e5\u9053\u540e\u9762\u5982\u4f55\u8fdb\u884c\u3002</p>\n<p>\u6211\u7684\u4ee3\u7801\u653e\u5728 GitHub \u4e86\uff1a<a href=\"https://github.com/kuoruan/esp32-ble-remote-control\" rel=\"nofollow\">esp32-ble-remote-control</a></p>\n<p>\u5e0c\u671b\u5404\u4f4d\u80fd\u5e2e\u5fd9\u5206\u6790\u4e00\u4e0b\u95ee\u9898\u51fa\u5728\u4ec0\u4e48\u5730\u65b9\uff0c\u8c22\u8c22</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lk960511", 
        "name": "lk960511", 
        "avatar": "https://cdn.v2ex.com/avatar/f6f1/372b/629832_large.png?m=1698837856"
      }, 
      "url": "https://www.v2ex.com/t/983102", 
      "date_modified": "2023-10-18T11:39:05+00:00", 
      "content_html": "", 
      "date_published": "2023-10-18T05:40:04+00:00", 
      "title": "\u60f3\u5b66\u5d4c\u5165\u5f0f\uff0c\u9ed1\u9a6c\u7684\u5d4c\u5165\u5f0f\u57f9\u8bad\u600e\u4e48\u6837\uff1f", 
      "id": "https://www.v2ex.com/t/983102"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/villivateur", 
        "name": "villivateur", 
        "avatar": "https://cdn.v2ex.com/avatar/233d/26cb/273091_large.png?m=1768533916"
      }, 
      "url": "https://www.v2ex.com/t/981191", 
      "date_modified": "2023-10-12T01:26:17+00:00", 
      "content_html": "<p>\u6211\u7528 ESP32-C3FH4 \u82af\u7247\u8bbe\u8ba1\u4e86\u4e00\u5757\u677f\u5b50\uff0c\u662f\u6211\u7b2c\u4e00\u6b21\u505a\u5e26\u5c04\u9891\u7535\u8def\u7684\u677f\u5b50\u3002\u539f\u7406\u56fe\u548c\u5c04\u9891\u90e8\u5206\u7684 PCB \u56fe\u7247\u5982\u4e0b\uff1a</p>\n<p><img alt=\"\u539f\u7406\u56fe\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/92dcF91N.png\"/></p>\n<p><img alt=\"PCB\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/cxrp7wZU.png\"/></p>\n<p>\u76ee\u524d\u53d1\u73b0\uff0c\u7528 Arduino \u6846\u67b6\uff0c\u5b98\u65b9\u7ed9\u7684\u4f8b\u7a0b\uff0c\u53ef\u4ee5\u6b63\u5e38\u641c\u7d22\u5230\u5176\u4ed6 AP \uff0cRSSI \u503c\u4e0e\u65c1\u8fb9\u624b\u673a\u641c\u5230\u7684\u76f8\u8fd1\u3002\u4f46\u662f\u65e0\u6cd5\u521b\u5efa AP \uff08\u8f6f\u4ef6\u8ba4\u4e3a\u5df2\u7ecf\u6210\u529f\u521b\u5efa\uff0c\u4f46\u7528\u5176\u4ed6\u8bbe\u5907\u641c\u7d22\u4e0d\u5230\uff09\uff0c\u4e5f\u65e0\u6cd5\u8fde\u63a5\u5176\u4ed6 AP \u3002</p>\n<p>\u4f8b\u7a0b\uff1a</p>\n<p><a href=\"https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/examples/WiFiScan\" rel=\"nofollow\">https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/examples/WiFiScan</a></p>\n<p><a href=\"https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/examples/WiFiAccessPoint\" rel=\"nofollow\">https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/examples/WiFiAccessPoint</a></p>\n<p>\u7528\u7f51\u7edc\u5206\u6790\u4eea\u6d4b\u8bd5 \u03a0 \u7f51\u7edc\u524d\u7684\u9a7b\u6ce2\u6bd4\uff0c\u5728 2 \u5de6\u53f3\u3002\u6362\u8fc7\u597d\u591a\u6b21\u82af\u7247\uff0c\u5929\u7ebf\u548c\u6676\u632f\u4e5f\u6362\u8fc7\uff0c\u4e0d\u884c\u3002</p>\n<p>\u76f8\u540c\u7684\u4f8b\u7a0b\uff0c\u7528\u5176\u4ed6\u6210\u54c1\u7684 ESP32-C3 \u6a21\u7ec4\uff0c\u80fd\u6b63\u5e38\u4f7f\u7528\u3002</p>\n<p>\u5b9e\u5728\u67e5\u4e0d\u5230\u8d44\u6599\uff0c\u4e5f\u4e0d\u77e5\u9053\u6709\u5565\u8bba\u575b\uff0c\u4e0d\u77e5\u9053\u8fd9\u91cc\u6709\u6ca1\u6709\u9ad8\u4eba\uff0c\u5982\u679c\u4f60\u6709\u7ecf\u9a8c\u6216\u8005\u6709\u4fe1\u5fc3\u5e2e\u6211\u5206\u6790\u89e3\u51b3\uff0c\u6211\u80fd\u4ee5\u6bcf\u5c0f\u65f6 100 \u5143\u7684\u4ef7\u683c\u8bf7\u4f60\u5e2e\u6211\u505a\u4e00\u5bf9\u4e00\u6307\u5bfc\u3002</p>\n", 
      "date_published": "2023-10-12T01:25:57+00:00", 
      "title": "\u4ed8\u8d39\u6c42\u6559 ESP32-C3 \u5c04\u9891\u8bbe\u8ba1\u95ee\u9898\uff0c\u76ee\u524d WiFi \u4e0d\u80fd\u8fde\u63a5\u5176\u4ed6 AP\uff0c\u65e0\u6cd5\u6210\u529f\u521b\u5efa AP\uff0c\u4f46\u80fd\u6b63\u5e38\u641c\u7d22\u5230\u5176\u4ed6 AP", 
      "id": "https://www.v2ex.com/t/981191"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/blueboycn", 
        "name": "blueboycn", 
        "avatar": "https://cdn.v2ex.com/gravatar/a10bb8a4140b2fcda2d7af2a77eb0ee9?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/979650", 
      "title": "\u5d4c\u5165\u5f0f\u524d\u666f\u600e\u4e48\u6837", 
      "id": "https://www.v2ex.com/t/979650", 
      "date_published": "2023-10-07T14:14:50+00:00", 
      "content_html": "\u673a\u68b0\u5c97\u4f4d\u60f3\u81ea\u5b66\u8f6c\u5d4c\u5165\u5f0f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hxy2856", 
        "name": "hxy2856", 
        "avatar": "https://cdn.v2ex.com/gravatar/25c3f19093602140cba438a06e68c0ad?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/977566", 
      "date_modified": "2023-09-28T05:00:22+00:00", 
      "content_html": "<p>\u516b\u6708\u4efd\u597d\u50cf\u591a\u4e86\u5f88\u591a\u5c97\u4f4d\uff0c\u5565\u539f\u56e0\uff1f\u542c\u8bf4\u56fd\u4ea7\u82af\u7247\u6709\u7a81\u7834\uff1f\n<a href=\"https://www.jobui.com/trends/quanguo-qianrushi/\" rel=\"nofollow\">https://www.jobui.com/trends/quanguo-qianrushi/</a></p>\n", 
      "date_published": "2023-09-27T05:56:44+00:00", 
      "title": "\u5d4c\u5165\u5f0f\u600e\u4e48\u6da8\u4e86\u90a3\u4e48\u591a\uff1f", 
      "id": "https://www.v2ex.com/t/977566"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wdmcode", 
        "name": "wdmcode", 
        "avatar": "https://cdn.v2ex.com/gravatar/1177492638c4ef61a634689987b98516?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/968329", 
      "date_modified": "2023-08-25T08:42:45+00:00", 
      "content_html": "<p>\u9700\u6c42\uff1a\n\u8f93\u5165\u7535\u538b\uff1a12V\n\u8f93\u51fa\u7535\u538b\uff1a0 - 48V \u53ef\u8c03\n\u652f\u6301\u591a\u8def\u8f93\u51fa\uff0c\u6bcf\u8def\u8f93\u51fa\u7535\u538b\u53ef\u4ee5\u72ec\u7acb\u63a7\u5236\n\u5f00\u53d1\u677f\u652f\u6301\u84dd\u7259\u8fde\u63a5\u63a7\u5236\uff0c\u84dd\u7259\u53ef\u8c03\u5404\u8def\u8f93\u51fa\u7535\u538b\uff08\u4e5f\u53ef\u4ee5\u652f\u6301\u5176\u4ed6\u65b9\u5f0f\uff09\n\u5f00\u53d1\u677f\u7684\u5927\u5c0f\u5c3d\u91cf\u5c0f\n\u5f00\u53d1\u677f\u652f\u6301\u5149\u654f\u5f00\u5173\uff0c\u652f\u6301\u5f00\u5173\u5149\u654f\u5f00\u5173\nVX:MTgwNTEwNzU3OTU=\n\u4e5f\u53ef\u4ee5\u7559\u8a00\u6c9f\u901a</p>\n", 
      "date_published": "2023-08-25T08:40:33+00:00", 
      "title": "\u9700\u8981\u505a\u4e00\u4e2a PCB \u677f\uff0c\u589e\u538b\u548c\u964d\u538b\u4ee5\u53ca\u84dd\u7259\u63a7\u5236", 
      "id": "https://www.v2ex.com/t/968329"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/RE1IFE", 
        "name": "RE1IFE", 
        "avatar": "https://cdn.v2ex.com/avatar/4d17/bb16/629256_large.png?m=1693226500"
      }, 
      "url": "https://www.v2ex.com/t/963356", 
      "title": "\u7eaf\u65b0\u624b\u4e1a\u4f59\u7231\u597d\u8005\u600e\u4e48\u5165\u95e8 PCB \u8bbe\u8ba1\u3001\u5d4c\u5165\u5f0f\u5f00\u53d1\u554a\uff1f", 
      "id": "https://www.v2ex.com/t/963356", 
      "date_published": "2023-08-08T05:25:42+00:00", 
      "content_html": "<p>\u6211\u662f\u8f6f\u4ef6\u5de5\u7a0b\u4e13\u4e1a\u7684\uff0c\u6ca1\u600e\u4e48\u63a5\u89e6\u8fc7\u5d4c\u5165\u5f0f\u5f00\u53d1\u3002\u60f3\u95ee\u4e0b\u5927\u5bb6\u4e1a\u4f59\u7231\u597d\u7684\u8be5\u600e\u4e48\u5feb\u901f\u5165\u95e8\u554a\uff0c\u4e3b\u8981\u60f3\u505a\u4e00\u4e2a arm \u7684\u5361\u7247\u7535\u8111\u7c7b\u4f3c\u6811\u8393\u6d3e\u3001NanoPi \u4e4b\u7c7b\u7684\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Zodia382", 
        "name": "Zodia382", 
        "avatar": "https://cdn.v2ex.com/gravatar/5c953c5c5561319f4d1e60d71bfe7edb?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/962199", 
      "title": "NCU972 \u542f\u52a8\u5361\u5185\u6838\u52a0\u8f7d", 
      "id": "https://www.v2ex.com/t/962199", 
      "date_published": "2023-08-03T12:05:51+00:00", 
      "content_html": "<p>\u6587\u4ef6\u7cfb\u7edf\u662f ramfs \uff0cbuildroot \u90a3\u91cc\u9ed8\u8ba4\u914d\u7f6e\u7f16\u8bd1\u7684\u5185\u6838\uff0c\u4f46\u662f\u542f\u52a8\u7684\u65f6\u5019\u5361\u5728 starting kernel \u8fd9\u91cc\u4e86\uff0c\u8fd9\u662f\u4ec0\u4e48\u539f\u56e0\u9020\u6210\u7684\u5462\uff1f\n<a href=\"https://imgur.com/a/WwKnOdS\" rel=\"nofollow\">https://imgur.com/a/WwKnOdS</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Zodia382", 
        "name": "Zodia382", 
        "avatar": "https://cdn.v2ex.com/gravatar/5c953c5c5561319f4d1e60d71bfe7edb?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/960841", 
      "title": "NCU970 qt4.8.5 \u4ea4\u53c9\u7f16\u8bd1\u73af\u5883\u642d\u5efa", 
      "id": "https://www.v2ex.com/t/960841", 
      "date_published": "2023-07-29T13:12:20+00:00", 
      "content_html": "<p>\u6700\u8fd1\u6536\u4e86\u5757 ncu970 \u7684\u677f\u5b50 \uff0c\u4f46\u641e\u4e0d\u5b9a\u4ea4\u53c9\u7f16\u8bd1\u4e86\u545c\u545c\uff0c\u6c42\u5927\u4f6c\u8385\u4e34\u6307\u5bfc\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sxszzhrrt", 
        "name": "sxszzhrrt", 
        "avatar": "https://cdn.v2ex.com/gravatar/23b764920ac763862cdf62a69d6e94cd?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/958399", 
      "title": "micropython \u5f00\u53d1\u63a8\u8350\u4ec0\u4e48 ide", 
      "id": "https://www.v2ex.com/t/958399", 
      "date_published": "2023-07-20T11:29:07+00:00", 
      "content_html": "<p>\u5404\u4f4d\u5927\u795e\u5f00\u53d1 micropython \u4e00\u822c\u7528\u4ec0\u4e48 ide \uff1f\nthonny \u611f\u89c9\u6709\u4e9b\u5fc3\u7d2f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/dy416394356y78", 
        "name": "dy416394356y78", 
        "avatar": "https://cdn.v2ex.com/gravatar/ed00e0a696f5cd8d0ceb92e2b1062af4?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/956460", 
      "title": "\u6c42\u95ee\u4ea4\u53c9\u7f16\u8bd1\u4e2d gdb \u7684\u4f7f\u7528", 
      "id": "https://www.v2ex.com/t/956460", 
      "date_published": "2023-07-13T06:05:43+00:00", 
      "content_html": "<p>\u6700\u8fd1\u5728\u5b66\u4e60\u5d4c\u5165\u5f0f\uff0c\u4f46\u662f\u6709\u65f6\u5019\u4f1a\u5f15\u53d1\u6bb5\u9519\u8bef\uff0c\u60f3\u7528 core dump \u4f46\u662f\u4e0d\u592a\u4f1a\u7528\uff0c\u660e\u660e\u663e\u793a\u4e86 core dump \u4f46\u662f gdb \u5374\u6ca1\u6709\u6587\u4ef6\uff0c\u60f3\u8981\u95ee\u95ee\u6709\u6ca1\u6709\u9047\u5230\u8fc7\u7c7b\u4f3c\u95ee\u9898\u7684\u5927\u4f6c\uff0c\u662f\u7528 cmke \u6784\u5efa\u7684\u5de5\u7a0b\uff0c\u7136\u540e\u6211\u662f\u5728 cmake \u91cc\u6253\u5f00\u4e86 dedug \u8bbe\u7f6e\u4e4b\u7c7b\u7684\uff0c\u56e0\u4e3a\u521a\u5f00\u59cb\u5b66\uff0c\u8fd8\u662f\u5b66\u751f\uff0c\u6709\u70b9\u61f5\u903c\uff0c\u60f3\u95ee\u95ee\u8fd9\u4e2a\u6574\u4e2a\u6d41\u7a0b\u662f\u600e\u6837\u7684\uff0c\u4e5f\u770b\u4e86\u4e0d\u5c11\u8d44\u6599\u8fd8\u662f\u6709\u70b9\u4e00\u77e5\u534a\u89e3\uff0c\u5148\u884c\u8c22\u8fc7\u5404\u4f4d\u5927\u4f6c\u7684\u6307\u70b9\u4e86\uff01\uff01</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zeruns", 
        "name": "zeruns", 
        "avatar": "https://cdn.v2ex.com/avatar/dfda/0acd/291705_large.png?m=1676697880"
      }, 
      "url": "https://www.v2ex.com/t/950476", 
      "title": "\u79fb\u690d\u597d U8g2 \u56fe\u5f62\u5e93\u7684 STM32F407 \u6807\u51c6\u5e93\u5de5\u7a0b\u6a21\u677f\uff0c 0.96 \u5bf8 OLED \u9a71\u52a8\u7a0b\u5e8f", 
      "id": "https://www.v2ex.com/t/950476", 
      "date_published": "2023-06-20T14:31:47+00:00", 
      "content_html": "<p>\u79fb\u690d\u597d U8g2 \u56fe\u5f62\u5e93\u7684<a href=\"https://blog.zeruns.tech/tag/STM32F407/\" rel=\"nofollow\">STM32F407</a>\u6807\u51c6\u5e93\u5de5\u7a0b\u6a21\u677f\uff0c\u7528\u7684 0.96 \u5bf8<a href=\"https://blog.zeruns.tech/tag/OLED/\" rel=\"nofollow\">OLED</a>\u5c4f\uff08 SSD1306 \uff09\uff0c\u7528\u786c\u4ef6<a href=\"https://blog.zeruns.tech/tag/IIC/\" rel=\"nofollow\">IIC</a>\u9a71\u52a8\u3002</p>\n<p>\u82b1\u4e86\u4e00\u665a\u4e0a\u65f6\u95f4\u53bb\u79fb\u690d\u3002\u5f00\u53d1\u677f\u4e3b\u63a7 MCU \u7528\u7684\u662f STM32F407VET6 \uff0cI2C \u63a5\u53e3\u7528 I2C1 \uff0cSCL \u63a5 PB6 \uff0cSDA \u63a5 PB7 \u3002</p>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://tc.zeruns.tech/images/2023/06/11/IMG_20230611_165724_edit_41246879424434.jpg\"/>\n<img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://tc.zeruns.tech/images/2023/06/11/1686473437481.gif\"/></p>\n<p><strong>\u4ee3\u7801\u548c\u5de5\u7a0b\u4e0b\u8f7d\u5730\u5740\uff1a<a href=\"https://blog.zeruns.tech/archives/722.html\" rel=\"nofollow\">https://blog.zeruns.tech/archives/722.html</a></strong></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chosen1cwp", 
        "name": "chosen1cwp", 
        "avatar": "https://cdn.v2ex.com/avatar/dab0/4c32/133111_large.png?m=1768533580"
      }, 
      "url": "https://www.v2ex.com/t/946945", 
      "title": "Java \u5c97\u60f3\u8f6c\u5d4c\u5165\u5f0f\uff0c\u4f46\u4e0d\u77e5\u54ea\u4e2a\u884c\u4e1a\u66f4\u6709\u524d\u9014\u8d8a\u8001\u8d8a\u9999\u7684\u90a3\u79cd", 
      "id": "https://www.v2ex.com/t/946945", 
      "date_published": "2023-06-08T05:56:16+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u8fd8\u671b\u5404\u4f4d\u5927\u4f6c\u8d50\u6559\uff5e\uff5e\uff5e</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/fedoral", 
        "name": "fedoral", 
        "avatar": "https://cdn.v2ex.com/avatar/0a9e/30ce/29097_large.png?m=1754378808"
      }, 
      "url": "https://www.v2ex.com/t/935652", 
      "title": "\u6c42\u63a8\u8350\u4e00\u4e2a RK3588 \u5f00\u53d1\u7248", 
      "id": "https://www.v2ex.com/t/935652", 
      "date_published": "2023-04-26T07:26:53+00:00", 
      "content_html": "<p>RT \uff0c\u60f3\u641e\u4e00\u5757\u677f\u5b50\u73a9\uff0c\u641e\u641e\u5bb9\u5668+\u8fb9\u7f18\u8ba1\u7b97\uff0c \u5e02\u9762\u53ef\u9009\u7684\u79cd\u7c7b\u6bd4\u8f83\u591a\uff0c\u6bd4\u5982 firefly \uff0cRock 5B \uff0c \u9999\u8549\u6d3e Banana Pi BPI-W3 \uff0c \u9999\u6a59\u6d3e OrangePi 5B \uff0cNeardi \uff0c\u98de\u51cc\u7b49\u7b49\uff0c\u5e94\u8be5\u9009\u54ea\u4e2a\u66f4\u597d\u4e00\u4e9b\uff0c\u6c42\u52a9\uff5e</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Leon6868", 
        "name": "Leon6868", 
        "avatar": "https://cdn.v2ex.com/avatar/14ed/48e6/438369_large.png?m=1748955348"
      }, 
      "url": "https://www.v2ex.com/t/931771", 
      "date_modified": "2023-04-11T17:08:27+00:00", 
      "content_html": "<ul>\n<li>\u7f16\u8bd1\u73af\u5883\uff1aESP-IDF 4.4</li>\n<li>\u8fd0\u884c\u8bbe\u5907\uff1aESP32S3 \uff0c\u5df2\u7ecf\u5728\u7f16\u8bd1\u9009\u9879\u4e2d\u5f00\u542f\u6027\u80fd\u4f18\u5316\u6a21\u5f0f\uff0c\u5e76\u628a CPU \u9891\u7387\u8c03\u5230\u4e86 240MHz \u3002</li>\n<li>\u76ee\u7684\uff1a\u6a21\u62df ESP32S3 \u5904\u7406\u56fe\u7247\uff0c\u5e76\u6d4b\u8bd5\u6027\u80fd</li>\n<li>\u95ee\u9898\uff1a\u6d4b\u8bd5\u65f6\u53d1\u73b0\uff0c\u4ee5\u8fd9\u4e2a\u53c2\u6570\u6267\u884c\u4e0b\u6765\uff0c\u6bcf\u6b21 <code>ESP_LOGI</code> \u95f4\u9694 <code>163813</code> \u5fae\u79d2\uff0c\u5e73\u5747\u4e0b\u6765\u4e00\u6b21 float \u8ba1\u7b97\u8981 1 \u5fae\u79d2\uff0c\u4e0e\u82af\u7247\u6027\u80fd\u4e25\u91cd\u4e0d\u7b26\u3002\u8bf7\u95ee\u662f\u4ec0\u4e48\u539f\u56e0\u5bfc\u81f4\u7684\u5462\uff1f</li>\n</ul>\n<pre><code class=\"language-c\">#include \"freertos/FreeRTOS.h\"\n#include \"freertos/task.h\"\n#include \"esp_system.h\"\n#include \"esp_log.h\"\n#define M2T(X) ((unsigned int)(X) / portTICK_PERIOD_MS) // ms to tick\n\n#include \"esp_random.h\"\n\n#include &lt;sys/time.h&gt;\n\nstatic const char *TAG = \"main\";\n#define dataLen 14400\n\nvoid makeMatrixUint8(uint8_t *buf, int len)\n{\n\n    for (int i = 0; i &lt; len; i++)\n    {\n        esp_fill_random(&amp;buf[i], sizeof(uint8_t));\n    }\n}\nvoid makeMatrixFloat(float *buf, int len)\n{\n\n    for (int i = 0; i &lt; len; i++)\n    {\n        esp_fill_random(&amp;buf[i], sizeof(float));\n    }\n}\n\nstatic void testTask()\n{\n    uint8_t *testData1 = (uint8_t *)malloc(sizeof(uint8_t) * dataLen);\n    float *testData2 = (float *)malloc(sizeof(float) * dataLen);\n    struct timeval tv_d0;\n    struct timeval tv_d1;\n\n    while (1)\n    {\n        makeMatrixUint8(testData1, dataLen);\n        makeMatrixFloat(testData2, dataLen);\n        gettimeofday(&amp;tv_d0, NULL);\n        for (int t = 0; t &lt; 10; t++)\n        {\n\n            for (int i = 0; i &lt; dataLen; i++)\n            {\n                testData2[i] = testData1[i] * 0.3;\n            }\n        }\n        gettimeofday(&amp;tv_d1, NULL);\n        ESP_LOGI(TAG, \"%lu\", 1000000 * (tv_d1.tv_sec - tv_d0.tv_sec) + (tv_d1.tv_usec - tv_d0.tv_usec));\n        \n        vTaskDelay(1);\n    }\n}\n\nvoid app_main()\n{\n    xTaskCreate(testTask, \"servoTask\", 1024 * 4, NULL, tskIDLE_PRIORITY, NULL);\n}\n</code></pre>\n", 
      "date_published": "2023-04-11T16:59:37+00:00", 
      "title": "\u8fd9\u6bb5\u6d6e\u70b9\u8fd0\u7b97\u4ee3\u7801\u6027\u80fd\u4e3a\u4f55\u5982\u6b64\u4f4e\u4e0b", 
      "id": "https://www.v2ex.com/t/931771"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jhzzzz", 
        "name": "jhzzzz", 
        "avatar": "https://cdn.v2ex.com/avatar/ccc1/7e6a/112349_large.png?m=1586915201"
      }, 
      "url": "https://www.v2ex.com/t/928065", 
      "title": "\u89e3\u51b3\u8bf7\u559d\u5976\u8336\uff0c\u5b9e\u5728\u641e\u4e0d\u5b9a\u4e86 esp32 heap_caps_malloc \u5206\u914d\u5185\u5b58\u5d29\u6e83", 
      "id": "https://www.v2ex.com/t/928065", 
      "date_published": "2023-03-29T02:24:42+00:00", 
      "content_html": "<p>\u6298\u817e\u597d\u51e0\u5929\u4e86\uff0c\u771f\u641e\u4e0d\u5b9a\u4e86\uff0c\u54ea\u4f4d\u6709\u7ecf\u9a8c\u7684\u5927\u4f6c\u5e2e\u6211\u641e\u5b9a 100 \u5143\u7ea2\u5305\u5949\u4e0a\u3002</p>\n<p>\u6211\u4e70\u7684\u662f\u4e00\u4e2a esp32s3-n16r8 \u7684\u5f00\u53d1\u677f\uff0c\u677f\u5b50\u4e0a\u96c6\u6210\u4e86\u4e00\u4e2a i2s \u9ea6\u514b\u98ce\uff0c\u6211\u5916\u63a5\u4e86\u4e00\u4e2a i2s \u5c0f\u529f\u653e\u5e76\u63a5\u4e86\u4e00\u4e2a\u5587\u53ed\uff0c\u8fd0\u884c esp32 adf \u5b98\u65b9\u8bed\u97f3\u5524\u9192\u8bc6\u522b\u793a\u4f8b <a href=\"https://github.com/espressif/esp-adf/tree/master/examples/speech_recognition/wwe\" rel=\"nofollow\">https://github.com/espressif/esp-adf/tree/master/examples/speech_recognition/wwe</a> \uff0c\u5c31\u662f master \u5206\u652f\u4ee3\u7801\uff0cidf \u7248\u672c\u662f 4.4.1 \u3002</p>\n<p>\u4f46\u8fd0\u884c\u540e\uff0c\u603b\u662f\u5d29\u6e83\u5728 i2s_stream_init \u51fd\u6570\uff0cmain \u51fd\u6570\u4e2d setup_player \u548c start_recorder \u91cc\u9762\u90fd\u4f1a\u8c03\u7528\u8fd9\u4e2a\u51fd\u6570\uff0csetup_player \u5148\u6267\u884c\uff0c\u8c03\u7528\u6ca1\u95ee\u9898\uff0cstart_recorder \u4e2d\u8c03\u7528 i2s_stream_init \u65f6\u5355\u7247\u673a reset \u91cd\u542f\u3002</p>\n<p>\u8ddf\u8e2a i2s_stream_init \u53d1\u73b0\u4ed6\u4f1a\u8c03\u7528 heap_caps_malloc \uff0c\u5e76\u4e14\u5c31\u5728\u8fd9\u91cc\u51fa\u95ee\u9898\uff0c\u63a5\u4e0b\u6765\u7684\u4ee3\u7801\u6ca1\u6709\u6267\u884c\uff0cs3 \u82af\u7247\u662f\u6709\u5916\u90e8 SPIRAN \uff0c\u6211\u90fd\u914d\u7f6e\u597d\u4e86\uff0c\u5e76\u4e14 mem test \u4e5f\u663e\u793a ok \uff0cesp_get_free_heap_size \u663e\u793a\u4e5f\u6709 8M \u591a\u53ef\u4ee5\u7528\u3002</p>\n<p>\u5982\u679c\u6211\u628a setup_player \u6ce8\u91ca\u6389\uff0c\u53ea\u8fd0\u884c start_recorder \uff0ci2s_stream_init \u53ef\u4ee5\u6210\u529f\uff0c\u4f46\u4e5f\u4e0d\u592a\u6b63\u5e38\uff0c\u51e0\u79d2\u540e\u4e5f\u4f1a\u5d29\u6e83\uff0c\u5b9e\u5728\u641e\u4e0d\u6e05\u4e3a\u4ec0\u4e48\u4e86 :D</p>\n<p>wx jhzzzz, qq 5488232</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wniming", 
        "name": "wniming", 
        "avatar": "https://cdn.v2ex.com/gravatar/708d900c4d23d905941b0c2cf38b7565?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/921887", 
      "title": "arm \u67b6\u6784\u4e0b u-boot \u53ef\u4e0d\u53ef\u4ee5\u4e0d\u6307\u5b9a dtb \u542f\u52a8\u5185\u6838\uff1f", 
      "id": "https://www.v2ex.com/t/921887", 
      "date_published": "2023-03-07T05:55:37+00:00", 
      "content_html": "<p>\u6211\u53d1\u73b0\u6811\u7528\u8393\u6d3e 4b \u7684 edk2 \u56fa\u4ef6\u542f\u52a8 fedora \u7cfb\u7edf\u662f\u4e0d\u9700\u8981 dtb \u7684\uff0c\u53ea\u662f\u542f\u52a8\u540e\u8bc6\u522b\u4e0d\u5230\u65e0\u7ebf\u7f51\u5361\uff0c\u4f46\u4f7f\u7528 u-boot \u597d\u50cf\u5fc5\u987b\u8981\u6307\u5b9a dtb \uff0c\u6709\u6ca1\u6709\u529e\u6cd5\u5728\u6ca1\u6709 dtb \u7684\u60c5\u51b5\u4e0b\u4f7f\u7528 u-boot \u542f\u52a8\u5185\u6838\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/e190sniper", 
        "name": "e190sniper", 
        "avatar": "https://cdn.v2ex.com/gravatar/f21d4533b58c5840d777a979be41426e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/920797", 
      "title": "\u5d4c\u5165\u5f0f\u7684\u79c1\u6d3b\u597d\u5c11\u554a\uff0c\u5d4c\u5165\u5f0f\u9879\u76ee\u8d44\u6e90\u5171\u4eab\u7fa4\u6709\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/920797", 
      "date_published": "2023-03-03T05:03:27+00:00", 
      "content_html": "<p>\u611f\u89c9\u524d\u7aef\uff0c\u540e\u7aef\u968f\u65f6\u90fd\u53ef\u4ee5\u63a5\u5230\u79c1\u6d3b\uff0c\u6211\u4eec\u641e\u5d4c\u5165\u5f0f\u7684\uff0c\u60f3\u641e\u70b9\u79c1\u6d3b\u505a\u505a\uff0c\u4e0d\u7136\u603b\u611f\u89c9\u6709\u529b\u4f7f\u4e0d\u51fa\u554a\u3002\n\u6709\u5d4c\u5165\u5f0f\u9879\u76ee\u8d44\u6e90\u5171\u4eab\u7fa4\u5417\uff1f\u4e00\u8d77\u4ea4\u6d41\u4ea4\u6d41\uff0c\u641e\u8def\u7531\u5668\uff0copenwrt,android,\u7535\u89c6\u76d2\u5b50\u7b49\u90fd\u53ef\u4ee5\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/KirbySD", 
        "name": "KirbySD", 
        "avatar": "https://cdn.v2ex.com/gravatar/01a959c70bb8961d64086db35cb0b7cb?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/919464", 
      "date_modified": "2023-02-27T03:55:42+00:00", 
      "content_html": "<p>\u975e\u79d1\u73ed\u524d\u7aef\u5de5\u7a0b\u5e08\u5927\u6218 ESP32 Arduino \u00a0</p>\n<p>\u4e0d\u77e5\u9053\u662f\u4e0d\u662f\u56e0\u4e3a\u8fc7\u4e8e\u5e95\u5c42\u2026\u4ee5\u524d\u968f\u4fbf\u7528\u7684 Array.splice \u5728 c \u4e0a\u90fd\u8981\u81ea\u5df1\u5b9e\u73b0\u6709\u70b9\u96be\u53d7\uff0c\u5f53\u7136\u8fd9\u4e0d\u662f\u91cd\u70b9  </p>\n<p>\u5c4f\u5e55\uff08 ILI94 \u4ec0\u4e48\u6765\u7740\uff09\u548c\u89e6\u6478\uff08 GT911 \uff09\u60f3\u627e\u4e2a\u6587\u6863\u96be\u5982\u767b\u5929\uff0cdocument \u6839\u672c\u641c\u4e0d\u51fa\u6765\uff0cexample \u57fa\u672c\u90fd\u4e0d\u4f1a\u7ed9\u4f60\u89e3\u91ca\u4e3a\u4ec0\u4e48<br/>\nLVGL \u7684\u6587\u6863\u4e5f\u53ea\u4f1a\u7ed9\u4f60\u4e00\u5806 example \u8ba9\u4f60\u81ea\u5df1\u611f\u53d7\uff0c\u6211\u73b0\u5728\u8fd8\u6ca1\u641e\u61c2 imgbtn \u7684\u5de6\u4e2d\u53f3 imgsrc \u90fd\u662f\u4ec0\u4e48\u4e1c\u897f<br/>\n\u76f8\u6bd4\u4e4b\u4e0b\u4e50\u946b\u7684\u6587\u6863\u8fd8\u7b97\u6bd4\u8f83\u7fd4\u5b9e\u4e86\u2026  </p>\n<p>Debug \u611f\u89c9\u4e5f\u4e0d\u660e\u4e0d\u767d\uff0cESP32 debugger \u53ea\u80fd\u641c\u51fa\u4e50\u946b\u7684 ESP-IDF \u8c03\u8bd5\u73af\u5883\uff0cArduino \u5c31\u53ea\u80fd\u770b\u522b\u4eba\u7684  tutorial \u4e86\u3002\u73b0\u5728\u70e7\u5f55\u524d\u7f16\u8bd1\u6ca1\u68c0\u67e5\u51fa\u6765\u7684\u9519\u8bef\u5c31\u53ea\u80fd\u76f4\u63a5\u677f\u5b50\u5d29\u6e83\uff08\u4e5f\u770b\u4e0d\u5230\u54ea\u884c\u4ee3\u7801\u9020\u6210\u7684\u5d29\u6e83\uff09\uff0c\u518d\u6839\u636e\u5185\u6838\u62a5\u9519\u731c\u662f\u54ea\u91cc\u51fa\u4e86\u95ee\u9898<br/>\n\u6027\u80fd\u4f18\u5316\u5c31\u66f4\u7384\u5b66\u4e86\uff0cCPU \u5360\u7528\u7387\u5c31\u662f\u4e0a\u4e0d\u53bb\u4f46 lvgl \u7684 fps \u4e5f\u4e0d\u9ad8\u3002memcpy \u5f00\u9500\u5e94\u8be5\u4e5f\u4e0d\u5927\u5427\u2026\u641c\u5230\u7684\u7ed3\u8bba\u8bf4 struct \u4e5f\u4e0d\u600e\u4e48\u5403\u6027\u80fd\u3002\u641c\u4e86\u534a\u5929\u6000\u7591\u662f TCP \u62e5\u585e\u63a7\u5236\u7b97\u6cd5\u7684\u95ee\u9898\uff0c\u51c6\u5907\u7981\u7528\u6389\u518d\u6218 \u00a0</p>\n<p>\u5468\u672b\u867d\u7136\u59d1\u4e14\u628a\u4e3b\u8981\u903b\u8f91\u505a\u5b8c\u4e86\uff0c\u4f46\u771f\u7684\u597d\u6000\u5ff5 Web \u5f00\u53d1\u6240\u89c1\u5373\u6240\u5f97\u70ed\u91cd\u8f7d\u5468\u8fb9\u751f\u6001\u5b8c\u5907\u8f7b\u677e\u8c03\u8bd5\u7684\u5f00\u53d1\u73af\u5883<br/>\n\u4e4b\u524d\u6709\u697c\u4e3b\u8bf4\u4eba\u90fd\u5f80 Web \u5f00\u53d1\u6324\u6ca1\u4eba\u5199\u5d4c\u5165\u5f0f\u611f\u89c9\u5c31\u8fd9\u5f00\u53d1\u73af\u5883\u6d3b\u8be5\u6ca1\u4eba\uff08\u5212\u6389\uff09\u5e02\u573a\u8fd8\u662f\u4f1a\u7528\u811a\u6295\u7968\u7684  </p>\n<p>\u6700\u540e\u611f\u8c22\u4e00\u4e0b USBIP \u8fd9\u4e2a\u9879\u76ee\uff0c\u6ca1\u8fd9\u73a9\u610f\u6211\u4f30\u8ba1\u8fd8\u5f97\u53bb\u5b66\u753b PCB \u677f\uff08\u4e0d\uff09\u4e0d\u8fc7\u8fd9\u73a9\u610f\u5c31\u662f\u771f\u7684\u641c document \u90fd\u641c\u4e0d\u51fa\u6765\u7684\u4e1c\u897f\u4e86\uff0c\u987a\u5e26\u8ba9\u6211\u5b66\u4e60\u4e86\u4e0b USBHID \u901a\u4fe1\u548c c \u7684\u6570\u636e\u7ed3\u6784\uff08\u7b11\uff09</p>\n", 
      "date_published": "2023-02-27T03:54:32+00:00", 
      "title": "\u611f\u89c9\u5d4c\u5165\u5f0f\u5f00\u53d1\u7684\u95e8\u69db\u4e0d\u5728\u8bed\u8a00\u800c\u5728\u73af\u5883\u4e0a\u2026", 
      "id": "https://www.v2ex.com/t/919464"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wniming", 
        "name": "wniming", 
        "avatar": "https://cdn.v2ex.com/gravatar/708d900c4d23d905941b0c2cf38b7565?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/916009", 
      "date_modified": "2023-02-14T06:36:45+00:00", 
      "content_html": "<p>\u6211\u9700\u8981\u7814\u7a76\u4e00\u4e0b arm \u67b6\u6784\u7684 pci \u8bbe\u5907\u76f4\u901a\uff0c\u53d1\u73b0\u6811\u8393\u6d3e 4b \u4e0d\u652f\u6301 smmu \uff0c\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u54ea\u6b3e\u5f00\u53d1\u677f\u662f\u652f\u6301\u7684\uff1f</p>\n", 
      "date_published": "2023-02-14T06:34:24+00:00", 
      "title": "\u6709\u6ca1\u6709\u54ea\u6b3e arm \u7684\u5f00\u53d1\u677f\u652f\u6301 smmu\uff08iommu\uff09\uff1f", 
      "id": "https://www.v2ex.com/t/916009"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wniming", 
        "name": "wniming", 
        "avatar": "https://cdn.v2ex.com/gravatar/708d900c4d23d905941b0c2cf38b7565?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/915425", 
      "title": "\u697c\u4e3b\u6700\u8fd1\u9700\u8981\u7814\u7a76 arm \u67b6\u6784\uff0c\u60f3\u8bf7\u6559 v \u53cb\u4e70\u54ea\u6b3e arm \u7684\u5f00\u53d1\u677f\u6bd4\u8f83\u5408\u9002\uff1f", 
      "id": "https://www.v2ex.com/t/915425", 
      "date_published": "2023-02-12T10:13:12+00:00", 
      "content_html": "<p>\u6811\u8393\u6d3e 4b \u53c8\u8d35\u6027\u80fd\u53c8\u5dee\u3002</p>\n<p>rock pi 5b \u76ee\u524d\u4e5f\u6ca1\u6709\u4e2a\u9760\u8c31\u7684\u6e20\u9053\u8d2d\u4e70\uff0c\u6211\u662f\u60f3\u4e70\u6765\u6d4b\u4e00\u6d4b\u80fd\u4e0d\u80fd\u8dd1 fedora \uff0c\u5982\u679c\u4e0d\u80fd\u6211\u8fd8\u60f3 7 \u5929\u65e0\u7406\u7531\u9000\u8d27\u7684\uff0c\u800c\u4e14\u6211\u8fd8\u60f3\u627e\u4e2a\u652f\u6301 1 \u5e74\u4fdd\u4fee\u7684\u5546\u5bb6\u8d2d\u4e70\u3002</p>\n<p>\u8fd8\u6709\u4ec0\u4e48 arm \u7684\u8bbe\u5907\u6bd4\u8f83\u9002\u5408\u62ff\u6765\u7814\u7a76\u7684\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/dangeleron", 
        "name": "dangeleron", 
        "avatar": "https://cdn.v2ex.com/gravatar/bda395f8d4507607bf7cfac95dc51151?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/911124", 
      "title": "\u7528 stm32cubeide \u78b0\u5230\u4e86\u4e00\u4e2a\u5947\u602a\u7684 bug\uff0c\u4e32\u53e3\u53d1\u9001\u8981\u51d1\u6ee1 1kb \u7684\u6570\u636e\u624d\u80fd\u53d1", 
      "id": "https://www.v2ex.com/t/911124", 
      "date_published": "2023-01-28T09:43:15+00:00", 
      "content_html": "<p>\u4e4b\u524d\u4f7f\u7528\u90fd\u6ca1\u95ee\u9898\uff0c\u90fd\u662f\u80fd\u53ca\u65f6\u53d1\u7684\u3002\n\u524d\u4e24\u5929\u65b0\u5efa\u4e86\u4e2a project \u7a81\u7136\u53d1\u73b0\uff0c\u4e32\u53e3\u597d\u50cf\u53d1\u4e0d\u4e86\u4e86\u3002\n\u7136\u540e\u5199\u4e86\u4e2a\u63a5\u6536\u7684\u4e2d\u65ad\u68c0\u6d4b\u4e86\u4e0b\u6536\u5e94\u8be5\u662f\u6ca1\u95ee\u9898\u7684\uff0c\u5c31\u662f\u53d1\u9001\u6bcf\u6b21\u90fd\u4f1a\u51d1\u591f 1kb \u7684\u6570\u636e\u624d\u4e00\u6b21\u53d1\u5b8c\u3002\n\u5207\u6362\u5230\u5176\u4ed6\u7684\u9879\u76ee\u4e4b\u540e\u53d1\u73b0\u4e4b\u524d\u7684 project \u4e5f\u51fa\u73b0\u8fd9\u79cd\u95ee\u9898\u4e86\n\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u5927\u4f6c\u89c1\u8fc7\uff0c\u6c42\u6307\u70b9 orz</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/kumakichi", 
        "name": "kumakichi", 
        "avatar": "https://cdn.v2ex.com/gravatar/48321a88cf8104e8de40595a1cf304be?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/902977", 
      "title": "\u534a\u8def\u51fa\u5bb6\u5165\u95e8 FPGA?", 
      "id": "https://www.v2ex.com/t/902977", 
      "date_published": "2022-12-16T07:57:06+00:00", 
      "content_html": "<p>\u6bd5\u4e1a\u540e\u5165\u804c\u73b0\u5728\u7684\u516c\u53f8,\u5feb 6 \u5e74.</p>\n<p>\u539f\u6765\u641e\u56fe\u50cf\u5904\u7406\u7b97\u6cd5\u7684,\n\u5927\u6982\u4e24\u5e74\u524d\u8f6c\u5230\u73b0\u5728\u7684 FPGA \u7684\u9879\u76ee\n\u4e3b\u8981\u641e Xilinx \u7684\u9a71\u52a8 /\u4e00\u90e8\u5206 AI \u7b97\u6cd5\u7684\u79fb\u690d /Gstreamer \u7684 Shell\n\u4e00\u90e8\u5206 WebAPP \u7684\u540e\u7aef Python/\u4e00\u90e8\u5206\u524d\u7aef\u7684 Vue \u4ec0\u4e48\u7684.</p>\n<p>\u8fd9\u4e2a\u9879\u76ee\u505a\u4e86\u5feb\u4e24\u5e74, FPGA \u5165\u4e00\u70b9\u70b9\u95e8,\u4f46\u8981\u81ea\u5df1\u53bb\u8bbe\u5b9a\u4e2a\u903b\u8f91\u4ec0\u4e48\u7684\u5b8c\u5168\u4e0d\u77e5\u9053\u600e\u4e48\u4e0b\u624b.\n\u603b\u89c9\u5f97\u5565\u90fd\u4e0d\u4f1a, \u51fa\u95ee\u9898\u4e86\u5c31 Google, \u8fd0\u6c14\u597d\u89e3\u51b3\u4e86\u597d\u50cf\u4e5f\u4e0d\u77e5\u9053\u539f\u56e0.\n\u8bf7\u6559\u5404\u4f4d\u5927\u4f6c, FPGA/Linux \u8981\u600e\u4e48\u5165\u95e8,\u611f\u89c9\u662f\u4e2a\u65e0\u5e95\u6d1e.\n\u662f\u4e0d\u662f\u8be5\u65e9\u70b9\u529d\u9000.</p>\n"
    }
  ]
}