var htmlFileInfoList = ["cshelp.html@@@Context Sensitive Help@@@...","topics/chapter-title/chapter-interface-sdk.html@@@\u63A5\u53E3@@@CAN\u3001CIR\u3001GPAI\u3001GPIO\u3001I2C\u3001PSADC\u3001PWM \u7B49\u63A5\u53E3\u6A21\u5757\u7684\u4ECB\u7ECD\u548C\u4F7F\u7528\u8BF4\u660E\u3002...","topics/chapter-title/chapter-memory-sdk.html@@@\u5B58\u50A8@@@SDMC\u3001SPI NAND\u3001SPI NOR \u7B49\u5B58\u50A8\u6A21\u5757\u7684\u4ECB\u7ECD\u548C\u4F7F\u7528\u8BF4\u660E\u3002...","topics/chapter-title/chapter-multi-media-sdk.html@@@\u591A\u5A92\u4F53@@@GE\u3001VE\u3001Display\u3001DVP\u3001MPP\u3001MPP \u64AD\u653E\u5668\u7B49\u591A\u5A92\u4F53\u6A21\u5757\u7684\u4ECB\u7ECD\u548C\u4F7F\u7528\u8BF4\u660E\u3002...","topics/chapter-title/chapter-safety-sdk.html@@@\u5B89\u5168@@@SPI ENC\u3001CE\u3001eFuse \u7B49\u5B89\u5168\u6A21\u5757\u7684\u4ECB\u7ECD\u548C\u4F7F\u7528\u8BF4\u660E\u3002...","topics/chapter-title/chapter-system.html@@@\u7CFB\u7EDF@@@...","topics/ic/ta-if/t_format_0_TA_IF.html@@@T-Format \u57DF@@@CF Command Field (CF) \u7EC4\u6210\u7ED3\u6784\u5982\u4E0B\uFF1A \u5728\u53D1\u9001\u548C\u63A5\u6536\u7684\u8FC7\u7A0B\u5747\u6D89\u53CA\uFF0CCF \u7531\u4EE5\u4E0B\u90E8\u5206\u7EC4\u6210\uFF1A Start bit\uFF1A1'b0\uFF0C\u56FA\u5B9A\u503C\u3002 Sync code\uFF1A3\u2019b010\uFF0C\u56FA\u5B9A\u503C\u3002 ID Code\uFF1A4-bit\uFF0C\u53D1\u9001\u65F6\u53EF\u901A\u8FC7\u5BC4\u5B58\u5668\u914D\u7F6E\uFF0C\u63A5\u6536\u65F6\u89E3\u6790\u63A5\u6536\u6570\u636E\u5E76\u5B58\u5165 TSTS \u5BC4\u5B58\u5668\u3002 ID Code \u5947\u5076\u6821\u9A8C\u4F4D\uFF1A1-bit\uFF0C\u53D1\u9001\u65F6\u786C\u4EF6\u81EA\u52A8\u6839\u636E Code \u5224\u65AD\u586B\u5165\uFF0C\u63A5\u6536\u65F6\u89E3\u6790\u63A5\u6536\u6570\u636E\u5E76\u5B58\u5165...","topics/ic/ta-if/ta-if-a-format.html@@@A-Format \u57DF@@@CDF CDF \u7EC4\u6210\u7ED3\u6784\u5982\u4E0B\uFF1A CDF\uFF0CCommand Data Field\uFF0C\u53EA\u5728\u53D1\u9001\u8FC7\u7A0B\u6D89\u53CA\uFF0C\u7531\u4EE5\u4E0B\u7EC4\u6210\uFF1A Start bit\uFF1A1'b0\uFF0C\u56FA\u5B9A\u503C\u3002 Sink code\uFF1A3\u2019b010\uFF0C\u56FA\u5B9A\u503C\u3002 Frame Code\uFF1A2-bit\uFF0CCDF \u5BF9\u5E94 2\u2019b00\u3002 Encoder Address\uFF1A3-bit\uFF0C\u7F16\u7801\u5668\u7684\u5730\u5740\u3002 Comand Code\uFF1A5-bit\uFF0C\u547D\u4EE4\u4EE3\u7801\u3002 CRC code\uFF1A3-bit\uFF0CCRC...","topics/ic/ta-if/ta_interface_ta_if.html@@@TA Interface (TA_IF)@@@TFormat / AFormat Absolute Encoder Interface (TA-AEI)\uFF0C\u7B80\u79F0 TA_IF\uFF0C\u5373 TA \u7EDD\u5BF9\u503C\u7F16\u7801\u5668\u63A5\u53E3\uFF0C\u4E3B\u8981\u7528\u4F5C Master\uFF0C\u63A7\u5236 T-Format/ A-Format \u63A5\u53E3\u7684\u7EDD\u5BF9\u503C\u7F16\u7801\u5668\u3002Tamgawa \u7684\u7F16\u7801\u5668\u63A5\u53E3\u683C\u5F0F\u5BF9\u5E94\u4E3A T-Format\uFF0CNikon \u7F16\u7801\u5668\u63A5\u53E3\u683C\u5F0F\u5BF9\u5E94\u4E3A A-Format\u3002 \u7279\u6027\u8BF4\u660E \u652F\u6301 T-Format \u548C...","topics/ic/ve/ve-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u7528\u6237\u8FDB\u7A0B\u901A\u8FC7 /dev/aic_ve \u8282\u70B9\u6253\u5F00 VE \u9A71\u52A8\u3002 IOC_VE_GET_CLIENT \u529F\u80FD\u8BF4\u660E \u83B7\u53D6 VE \u8BBE\u5907\u72EC\u5360\u6743\u9650 \u63A5\u53E3\u8BED\u6CD5 int ioctl( int fd, unsigned long cmd); \u53C2\u6570 CMD\uFF1AIOC_VE_GET_CLIENT \u8FD4\u56DE\u503C 0\uFF1A\u6210\u529F\u3002 <0\uFF1A\u5931\u8D25 \u6CE8\u610F\u4E8B\u9879 \u65E0 IOC_VE_PUT_CLIENT \u529F\u80FD\u8BF4\u660E \u91CA\u653E VE \u8BBE\u5907\u72EC\u5360\u6743\u9650 \u63A5\u53E3\u8BED\u6CD5...","topics/ic/xspi/xspi-module.html@@@eXpanded Serial Peripheral Interface (xSPI)@@@xSPI \u6A21\u5757\u662F\u4E00\u4E2A\u9AD8\u5EA6\u7075\u6D3B\u548C\u53EF\u914D\u7F6E\u7684\u63A5\u53E3\uFF0C\u80FD\u591F\u652F\u6301\u591A\u79CD\u4E0D\u540C\u7684\u4E32\u884C\u548C\u5E76\u884C\u603B\u7EBF\u534F\u8BAE\uFF0C\u5305\u62EC\u5916\u90E8\u5E76\u884C\u603B\u7EBF Xccela\u3001HyperBus\u3001OPI\u3001 QPI\u3001\u548C 1/ 2/ 4/ 8 \u7EBF SPI\u3002xSPI \u6A21\u5757\u53EF\u4E0E\u5916\u90E8 PSRAM\u3001Flash \u5B58\u50A8\u8BBE\u5907\u7B49\u5143\u5668\u4EF6\u5B9E\u73B0\u8FDE\u63A5\uFF0C\u65E0\u9700\u989D\u5916\u7684\u786C\u4EF6\u63A5\u53E3\u6216\u9002\u914D\u5668\u3002 \u529F\u80FD\u7279\u6027 \u652F\u6301 Xccela \u534F\u8BAE \u652F\u6301 HyperBus \u534F\u8BAE \u652F\u6301 OPI \u534F\u8BAE \u652F\u6301 QPI \u534F\u8BAE...","topics/product/d12x-pu-pd-reset.html@@@\u4E0A\u4E0B\u7535\u65F6\u5E8F\u53CA\u590D\u4F4D@@@\u4E0A\u4E0B\u7535\u65F6\u5E8F VCC33_IO \u3001 VDD11_SYS \u548C LDO18 \u4F9B\u7535\u65E0\u4E0A\u4E0B\u7535\u987A\u5E8F\u8981\u6C42\u3002VCC33_IO \u4E0A\u7535\u4E0A\u5347\u6CBF\u65F6\u95F4\u9700\u5927\u4E8E 150us\u3002 \u590D\u4F4D\u6E90 \u82AF\u7247\u7CFB\u7EDF\u6709\u4EE5\u4E0B\u51E0\u79CD\u590D\u4F4D\u6E90\uFF0C\u4EFB\u4F55\u4E00\u79CD\u590D\u4F4D\u6761\u4EF6\u6210\u7ACB\uFF0C\u4F1A\u5BF9\u82AF\u7247\u4EA7\u751F\u590D\u4F4D\uFF1A \u7CFB\u7EDF\u4E0A\u7535\u590D\u4F4D\uFF1A\u5728 VCC33_IO \u548C VDD11_SYS \u4E0A\u7535\u540E\u4EA7\u751F\u590D\u4F4D\uFF0C\u4E0A\u7535 10 ms \u5185\u7CFB\u7EDF\u81EA\u52A8\u653E\u5F00\u6B64\u590D\u4F4D\u3002 \u5916\u90E8\u5F15\u811A\u590D\u4F4D\uFF1A\u5F15\u811A RESETN \u8F93\u5165\u4F4E\u7535\u5E73\u5E76\u6301\u7EED 2 ms...","topics/product/d13x-pullup-down-timing.html@@@\u4E0A\u4E0B\u7535\u65F6\u5E8F\u53CA\u590D\u4F4D@@@\u4E0A\u4E0B\u7535\u65F6\u5E8F VCC33_IO \u3001VDD11_SYS \u548C LDO18 \u4F9B\u7535\u65E0\u4E0A\u4E0B\u7535\u987A\u5E8F\u8981\u6C42\u3002VCC33_IO \u4E0A\u7535\u4E0A\u5347\u6CBF\u65F6\u95F4\u9700\u5927\u4E8E 150 us\u3002 \u590D\u4F4D\u6E90 \u82AF\u7247\u7CFB\u7EDF\u6709\u4EE5\u4E0B\u590D\u4F4D\u6E90\uFF0C\u4EE5\u4E0B\u4EFB\u4F55\u4E00\u79CD\u590D\u4F4D\u6761\u4EF6\u6210\u7ACB\uFF0C\u4F1A\u5BF9\u82AF\u7247\u4EA7\u751F\u590D\u4F4D\uFF1A \u7CFB\u7EDF\u4E0A\u7535\u590D\u4F4D\uFF1A\u5728 VCC33_IO \u548C VDD11_SYS \u4E0A\u7535\u540E\u4EA7\u751F\u590D\u4F4D\uFF0C\u4E0A\u7535 10 ms \u5185\u7CFB\u7EDF\u81EA\u52A8\u653E\u5F00\u6B64\u590D\u4F4D\u3002 RTC \u4E0A\u7535\u590D\u4F4D\uFF1A\u5728 RTC \u4E0A\u7535\u540E\uFF08\u4F9B\u7535\u6765\u6E90...","topics/product/m680x-block-diagram.html@@@\u529F\u80FD\u6846\u56FE@@@...","topics/product/m680x-feature.html@@@\u529F\u80FD\u7279\u6027@@@CPU \u91C7\u7528\u5E73\u5934\u54E5 E907 \u9AD8\u6027\u80FD 32-bit RISC-V \u5185\u6838 RV32IMAFDCP \u6307\u4EE4\u67B6\u6784 468 MHz @1.1V\uFF0C552 MHz@1.2V L1 I/D-Cache 32 KB/32 KB \u652F\u6301\u7D27\u8026\u5408\u5B58\u50A8 (TCM)\uFF0CI/D-TCM \u6700\u5927\u53EF\u914D\u7F6E 128 KB/ 128 KB \u5355\u7CBE\u5EA6/ \u53CC\u7CBE\u5EA6\u6D6E\u70B9\u5355\u5143\uFF0C\u96C6\u6210 DSP \u6307\u4EE4\u96C6 PMP \u5B89\u5168\u4FDD\u62A4 \u6838\u5185\u4E2D\u65AD CLINT \u548C\u4E2D\u65AD\u63A7\u5236\u5668...","topics/product/m680x-typical-application.html@@@\u5178\u578B\u5E94\u7528@@@\u4F3A\u670D\u7535\u673A\u9A71\u52A8\u5668 \u6B65\u8FDB\u7535\u673A\u9A71\u52A8\u5668 BLDC \u7535\u673A\u9A71\u52A8\u5668 \u4EA4\u6D41\u53D8\u9891\u5668 \u5149\u4F0F\u9006\u53D8\u5668 \u6570\u5B57\u7535\u6E90 PLC...","topics/reused/module-clock_reused.html@@@\u6A21\u5757\u65F6\u949F@@@\u6A21\u5757\u540D\u79F0 \u603B\u7EBF\u65F6\u949F \u6A21\u5757\u65F6\u949F\u6E90 \u6A21\u5757\u65F6\u949F\u6781\u9650\u9891\u7387 \u5907\u6CE8 E907 CORE - PLL_INT0 504MHz - E907 PLIC - PLL_INT0\u00F72 252MHz - E907 CLINT - PLL_INT0\u00F72 252MHz - E907 DM - CLK_24M 24MHz - AXI AXI - 240MHz - AHB AHB - 240MHz - APB0 APB0...","topics/revinfo/revinfo_linux.html@@@\u4FEE\u8BA2\u8BB0\u5F55@@@\u4E0B\u8868\u8BB0\u5F55\u4E86 2025-01-06 (V2.2) \u81F3\u4ECA\u7684\u6240\u6709\u4FEE\u8BA2\u5386\u53F2\uFF1A \u8868 1 . \u4FEE\u8BA2\u8BB0\u5F55 \u7248\u672C \u7AE0\u8282 \u4FEE\u8BA2\u8BF4\u660E V2.3 Ubuntu \u5220\u9664\u6682\u65F6\u4E0D\u517C\u5BB9\u7684\u7248\u672C 14.04 \u548C 16.04\u3002 \u7CFB\u7EDF\u66F4\u65B0 \u5220\u9664 \u70E7\u5F55\u5668\u70E7\u5F55 \u7AE0\u8282\u3002 \u79BB\u7EBF\u70E7\u5F55 \u65B0\u589E\u7AE0\u8282\u3002...","topics/sdk/advanced/aic-test.html@@@\u70E4\u673A\u6D4B\u8BD5@@@\u70E4\u673A\u6D4B\u8BD5\u9002\u7528\u4E8E\u957F\u65F6\u95F4\u7684\u8001\u5316\u6D4B\u8BD5\u573A\u666F\u3002 \u652F\u6301\u4E0B\u5217\u7279\u6027\uFF1A \u6CE8\uFF1A \u4EC5 Luban V1.2.4 \u53CA\u4EE5\u4E0A\u7248\u672C\u624D\u652F\u6301\u70E4\u673A\u6D4B\u8BD5\u529F\u80FD\u3002 \u4E0D\u9700\u8981\u91CD\u65B0\u70E7\u5199\u955C\u50CF\uFF0C\u7701\u53BB\u91CF\u4EA7\u73AF\u5883\u7684\u955C\u50CF\u6587\u4EF6\u7BA1\u7406\u9EBB\u70E6 \u53EA\u9700\u51C6\u5907\u4E00\u4E2A\u5B58\u6709\u6D4B\u8BD5\u6570\u636E\u7684 SD \u5361\u3001\u6216\u8005 U \u76D8\uFF0C\u5373\u63D2\u5373\u6D4B \u8D85\u8FC7\u4E00\u4E2A\u6708\u7684\u6D4B\u8BD5\u5468\u671F \u652F\u6301\u589E\u52A0\u81EA\u5B9A\u4E49\u7684\u5176\u4ED6\u6D4B\u8BD5\u9879 \u76EE\u524D\u5DF2\u5185\u7F6E\u7684\u6D4B\u8BD5\u9879\u5305\u62EC\uFF1A \u89C6\u9891\u6587\u4EF6\u7684\u5FAA\u73AF\u64AD\u653E \u70E4\u673A\u6D4B\u8BD5\u8BE6\u7EC6\u64CD\u4F5C\u6D41\u7A0B\u5982\u4E0B\uFF1A...","topics/sdk/advanced/burn-cfg-file.html@@@\u70E7\u5F55\u955C\u50CF\u914D\u7F6E\u6587\u4EF6@@@\u4F7F\u7528 mk_image.py \u5236\u4F5C\u70E7\u5F55\u955C\u50CF\u65F6\uFF0C\u9700\u8981\u63D0\u4F9B image_cfg.json \u955C\u50CF\u914D\u7F6E\u6587\u4EF6\u3002 \u901A\u8FC7\u5D4C\u5957\u5BF9\u8C61\u7684\u65B9\u5F0F\uFF0C image_cfg.json \u63CF\u8FF0\u4E86\u4E00\u4E2A\u5F85\u751F\u6210\u7684\u955C\u50CF\u6587\u4EF6\u6240\u5305\u542B\u7684\u4FE1\u606F\u548C\u6570\u636E\uFF0C\u5982\u4E0B\u5217\u4EE3\u7801\u6240\u793A\uFF0C\u8BE5\u63CF\u8FF0\u6587\u4EF6\u5206\u4E3A\u4EE5\u4E0B\u90E8\u5206\uFF1A \u955C\u50CF\u70E7\u5F55\u7684\u76EE\u6807\u8BBE\u5907\u63CF\u8FF0\uFF0C\u8BE6\u60C5\u53EF\u67E5\u770B \u5206\u533A\u8868\u63CF\u8FF0 \u3002 \u6700\u7EC8 Image \u6587\u4EF6\u63CF\u8FF0 \uFF0C\u5305\u62EC\u4FE1\u606F\u548C\u5185\u5BB9\u6392\u5E03\uFF0C\u7531 info \u6570\u636E\uFF0C updater \u6570\u636E\u548C...","topics/sdk/advanced/burn-cfg-file_2.html@@@\u70E7\u5F55\u955C\u50CF\u914D\u7F6E\u6587\u4EF6@@@\u4F7F\u7528 mk_image.py \u5236\u4F5C\u70E7\u5F55\u955C\u50CF\u65F6\uFF0C\u9700\u8981\u63D0\u4F9B image_cfg.json \u955C\u50CF\u914D\u7F6E\u6587\u4EF6\u3002 \u901A\u8FC7\u5D4C\u5957\u5BF9\u8C61\u7684\u65B9\u5F0F\uFF0C image_cfg.json \u63CF\u8FF0\u4E86\u4E00\u4E2A\u5F85\u751F\u6210\u7684\u955C\u50CF\u6587\u4EF6\u6240\u5305\u542B\u7684\u4FE1\u606F\u548C\u6570\u636E\uFF0C\u5982\u4E0B\u5217\u4EE3\u7801\u6240\u793A\uFF0C\u8BE5\u63CF\u8FF0\u6587\u4EF6\u5206\u4E3A\u4EE5\u4E0B\u90E8\u5206\uFF1A \u955C\u50CF\u70E7\u5F55\u7684\u76EE\u6807\u8BBE\u5907\u63CF\u8FF0\uFF0C\u8BE6\u60C5\u53EF\u67E5\u770B \u5206\u533A\u8868\u63CF\u8FF0 \u3002 \u6700\u7EC8 Image \u6587\u4EF6\u63CF\u8FF0 \uFF0C\u5305\u62EC\u4FE1\u606F\u548C\u5185\u5BB9\u6392\u5E03\uFF0C\u7531 info \u6570\u636E\uFF0C updater \u6570\u636E\u548C...","topics/sdk/advanced/burn-image-add-dev-board.html@@@\u6DFB\u52A0\u5F00\u53D1\u677F@@@\u4E3A\u4E86\u5FEB\u901F\u521B\u5EFA\u677F\u5B50\u914D\u7F6E\uFF0CLuban SDK \u63D0\u4F9B\u4E86 add_board \u7A0B\u5E8F\u3002\u8BE5\u7A0B\u5E8F\u4EE5\u539F\u5382\u516C\u677F\u7684\u914D\u7F6E\u6587\u4EF6\u4E3A\u6A21\u677F\u6765\u521B\u5EFA\u65B0\u677F\u5B50\u5BF9\u5E94\u7684\u76EE\u5F55\u548C\u53C2\u6570\u914D\u7F6E\u3002\u4E00\u6B3E\u4EA7\u54C1\u5BF9\u5E94\u4E00\u4E2A\u677F\u5B50\uFF0C\u5F00\u53D1\u65B0\u4EA7\u54C1\u65F6\uFF0C\u9700\u8981\u5728 SDK \u4E2D\u521B\u5EFA\u65B0\u7684\u677F\u5B50\u4EE5\u53CA\u5BF9\u5E94\u7684\u914D\u7F6E \u3002 \u6267\u884C\u4E0B\u5217\u6B65\u9AA4\u524D\uFF0C\u7528\u6237\u9700\u8981\u63D0\u4F9B\u4E00\u4E2A\u539F\u5382\u516C\u677F\u7684\u914D\u7F6E\u6587\u4EF6\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\u6267\u884C make add_board \u547D\u4EE4\u3002...","topics/sdk/advanced/configure-precompilation-package.html@@@\u914D\u7F6E\u9884\u7F16\u8BD1\u5305@@@\u9075\u7167\u4EE5\u4E0B\u6B65\u9AA4\u914D\u7F6E\u9884\u7F16\u8BD1\u5305\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 menuconfig \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make menuconfig \u5728 menuconfig \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF0C\u9009\u62E9\u4EE5\u4E0B\u4EFB\u610F\u4E00\u79CD\u7F16\u8BD1\u65B9\u5F0F\uFF0C\u4EE5 Busybox \u4E3A\u4F8B\u3002 \u5BF9\u4E8E\u4E00\u4E2A\u7EC4\u4EF6\u5305\uFF0C\u7528\u6237\u53EF\u4EE5\u901A\u8FC7 menuconfig \u914D\u7F6E\u754C\u9762\u9009\u62E9\u4EE5\u4E0B\u4EFB\u610F\u4E00\u79CD\u7F16\u8BD1\u65B9\u5F0F\uFF1A \u6CE8\uFF1A \u5173\u4E8E\u4E24\u79CD\u7F16\u8BD1\u65B9\u5F0F\u7684\u5BF9\u6BD4\u548C\u8BE6\u7EC6\u63CF\u8FF0\uFF0C\u53EF\u67E5\u770B \u9884\u7F16\u8BD1\u5305\u4F18\u52BF \u3002...","topics/sdk/advanced/fs_image.html@@@\u70E7\u5F55\u955C\u50CF\u683C\u5F0F\u548C\u5DE5\u5177@@@\u955C\u50CF\u683C\u5F0F ArtInChip \u7684\u70E7\u5F55\u955C\u50CF\u6587\u4EF6\u7531\u7EC4\u4EF6 (FirmWare Component, FWC) \u4EE5\u53CA\u5BF9\u5E94\u7684\u7EC4\u4EF6\u5143\u4FE1\u606F\u7EC4\u6210\u3002 \u6570\u636E\u5206\u5E03\u5982\u4E0B\u56FE\u6240\u793A\uFF1A \u56FE 1 . \u70E7\u5F55\u955C\u50CF\u683C\u5F0F \u5176\u4E2D\u4E00\u4E9B\u9700\u8981\u6253\u5305\u7684\u6570\u636E\u6587\u4EF6\uFF0C\u90FD\u88AB\u5F53\u505A\u7EC4\u4EF6 (FWC) \u8FDB\u884C\u5904\u7406\uFF0C\u5305\u62EC SPL \uFF0C os \uFF0C rodata \uFF0C data \u7B49\u6570\u636E\u3002 Image Header \u7684\u5177\u4F53\u683C\u5F0F\u5982\u4E0B\uFF1A struct...","topics/sdk/advanced/fs_image_2.html@@@\u70E7\u5F55\u955C\u50CF\u683C\u5F0F\u548C\u5DE5\u5177@@@\u955C\u50CF\u683C\u5F0F ArtInChip \u7684\u70E7\u5F55\u955C\u50CF\u6587\u4EF6\u7531\u7EC4\u4EF6 (FirmWare Component, FWC) \u4EE5\u53CA\u5BF9\u5E94\u7684\u7EC4\u4EF6\u5143\u4FE1\u606F\u7EC4\u6210\u3002 \u6570\u636E\u5206\u5E03\u5982\u4E0B\u56FE\u6240\u793A\uFF1A \u56FE 1 . \u70E7\u5F55\u955C\u50CF\u683C\u5F0F \u5176\u4E2D\u4E00\u4E9B\u9700\u8981\u6253\u5305\u7684\u6570\u636E\u6587\u4EF6\uFF0C\u90FD\u88AB\u5F53\u505A\u7EC4\u4EF6 (FWC) \u8FDB\u884C\u5904\u7406\uFF0C\u5305\u62EC SPL \uFF0C os \uFF0C rodata \uFF0C data \u7B49\u6570\u636E\u3002 Image Header \u7684\u5177\u4F53\u683C\u5F0F\u5982\u4E0B\uFF1A struct...","topics/sdk/advanced/image_burn_and_config.html@@@\u914D\u7F6E\u70E7\u5F55\u955C\u50CF@@@Luban SDK \u7F16\u8BD1\u7684\u6700\u7EC8\u8F93\u51FA\u7ED3\u679C\u662F\u4E00\u4E2A\u7528\u4E8E\u70E7\u5F55\u5230\u76EE\u6807\u5E73\u53F0\u7684\u955C\u50CF\u6587\u4EF6\u3002 \u8868 1 . \u70E7\u5F55\u5DE5\u5177 \u5DE5\u5177 \u8BF4\u660E AiBurn \u7528\u4E8E\u901A\u8FC7 PC \u70E7\u5F55\u955C\u50CF\u3002 \u4E32\u53E3\u8C03\u8BD5\u5DE5\u5177 \u7528\u4E8E\u901A\u8FC7\u547D\u4EE4\u884C\u8FDB\u5165\u70E7\u5F55\u6A21\u5F0F\u3001\u67E5\u770B\u70E7\u5F55\u3001\u542F\u52A8\u72B6\u6001\u3002 \u6267\u884C\u4E0B\u5217\u6D41\u7A0B\uFF0C\u70E7\u5F55\u955C\u50CF\u6587\u4EF6\uFF1A \u6253\u5F00 AiBurn \uFF0C\u8FDB\u5165 \u70E7\u5199\u955C\u50CF \u9875\u9762\uFF1A \u9009\u62E9\u4EE5\u4E0B\u4EFB\u610F\u65B9\u5F0F\uFF0C\u4F7F\u677F\u5361\u8FDB\u5165\u70E7\u5F55\u6A21\u5F0F\uFF1A \u677F\u5361\u4E0A\u7535\u524D\uFF0C\u6309\u4F4F\u5F00\u53D1\u677F\u4E0A\u7684 UBOOT \u952E\u4E0D\u653E\uFF0C\u518D\u4E0A\u7535\u3002...","topics/sdk/advanced/lb-delete-dev-board.html@@@\u5220\u9664\u5F00\u53D1\u677F@@@Luban SDK \u63D0\u4F9B\u5FEB\u901F\u5220\u9664\u5F00\u53D1\u677F\u914D\u7F6E\u7684\u65B9\u6CD5\u3002 \u7528\u6237\u53EF\u5728\u9009\u62E9\u4E00\u4E2A\u9700\u8981\u5220\u9664\u7684\u914D\u7F6E\u6587\u4EF6\u540E\uFF0C\u4F7F\u7528 del_board \u7A0B\u5E8F\u5220\u9664\u548C\u8FD9\u4E2A\u914D\u7F6E\u6587\u4EF6\u76F8\u5173\u7684\u76EE\u5F55\u548C\u914D\u7F6E\uFF0C\u8BE6\u7EC6\u6D41\u7A0B\u5982\u4E0B\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\u6267\u884C make del_board \u547D\u4EE4\u3002 \u6839\u636E\u63D0\u793A\uFF0C\u63D0\u4F9B\u5FC5\u8981\u7684\u4FE1\u606F\u3002\u4F8B\u5982\uFF1A Reference defconfig:(Delete one board base on selected defconfig)...","topics/sdk/advanced/lb_usage_add_new_package.html@@@\u6DFB\u52A0\u65B0\u5E94\u7528@@@\u5728 Luban SDK \u4E2D\u6DFB\u52A0\u65B0\u5E94\u7528\u7684\u6D41\u7A0B\u5305\u62EC\u914D\u7F6E\u5E94\u7528\u5305\u3001\u6E90\u7801\u7BA1\u7406\u3001\u7F16\u8BD1\u548C\u8865\u4E01\u5236\u4F5C\u3002 \u5982\u9700\u5728 Luban SDK \u4E2D\u6DFB\u52A0\u65B0\u7684\u5E94\u7528\uFF0C\u53EF\u6267\u884C\u4E0B\u5217\u6B65\u9AA4\uFF1A \u5728 package \u76EE\u5F55\u4E0B\u6DFB\u52A0\u4E0B\u5217\u5FC5\u8981\u7684\u6587\u4EF6\uFF1A pkg > |-> pkg .mk --> \u5FC5\u987B\u6587\u4EF6\uFF0C\u7528\u4E8E\u5B9A\u4E49\u5305\u7684\u57FA\u672C\u4FE1\u606F\u3002 |-> Config.in --> \u53EF\u9009\u6587\u4EF6\uFF0C\u7528\u4E8E\u914D\u7F6E\u5305\u7684\u7F16\u8BD1\u9009\u9879\u3002 |-> Config.in.host --> \u4EC5...","topics/sdk/advanced/lb_usage_commands.html@@@\u547D\u4EE4\u8BE6\u89E3@@@\u5E38\u89C4\u547D\u4EE4 make board _defconfig make all - \u9879\u76EE\u67E5\u770B\uFF1Amake list --> \u5217\u51FA\u5F53\u524D\u53EF\u7528\u7684\u9879\u76EE\u914D\u7F6E - \u914D\u7F6E\uFF1Amake d211_demo128_nand_defconfig --> \u5E94\u7528\u9879\u76EE\u914D\u7F6E\uFF08\u4FDD\u5B58\u76EE\u5F55\uFF1Atarget/configs\uFF09 - \u7F16\u8BD1\uFF1Amake --> \u7F16\u8BD1\uFF0C\u81EA\u52A8\u8FDB\u884C\u4FEE\u6539\u68C0\u6D4B\uFF0C\u589E\u91CF\u7F16\u8BD1 - \u6E05\u9664\uFF1Amake clean --> \u6E05\u9664\u7F16\u8BD1\u751F\u6210\u5185\u5BB9...","topics/sdk/advanced/lb_usage_fs_image.html@@@\u914D\u7F6E\u5206\u533A\u548C\u955C\u50CF@@@\u5728\u6784\u5EFA\u7CFB\u7EDF\u955C\u50CF\u65F6\uFF0C\u9996\u5148\u9700\u8981\u914D\u7F6E\u5206\u533A\u548C\u955C\u50CF\uFF0C\u5305\u62EC\u5B9A\u4E49\u4E0D\u540C\u7684\u6587\u4EF6\u7CFB\u7EDF\u7C7B\u578B\u3001\u5927\u5C0F\u4EE5\u53CA\u6302\u8F7D\u70B9\u3002\u4F8B\u5982\uFF0C\u4F7F\u7528 menuconfig \u5DE5\u5177\u6765\u9009\u62E9\u548C\u914D\u7F6E\u6240\u9700\u7684\u8F6F\u4EF6\u5305\u3002 \u5B9A\u5236\u8F6F\u4EF6\u5305 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 menuconfig \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make menuconfig \u5BFC\u822A\u5230\u8F6F\u4EF6\u5305\u9009\u9879\uFF0C\u6839\u636E\u9879\u76EE\u9700\u6C42\u52FE\u9009\u6240\u9700\u7684\u8F6F\u4EF6\u5305\uFF0C\u7F16\u8BD1\u5230\u8BE5\u9879\u76EE\u7684\u955C\u50CF\u4E2D\u3002...","topics/sdk/advanced/lb_usage_structure.html@@@\u4EE3\u7801\u7ED3\u6784@@@\u56FE 1 . Luban SDK \u6839\u76EE\u5F55 Luban SDK \u4E2D\u6709\u4EE5\u4E0B\u91CD\u8981\u7684\u6587\u4EF6\u548C\u76EE\u5F55\uFF0C\u5176\u5206\u7C7B\u548C\u529F\u80FD\u5982\u4E0B\u6240\u8FF0\u3002 Luban \u251C\u2500\u2500 dl --> \u7B2C\u4E09\u65B9\u6E90\u7801\u7684\u538B\u7F29\u5305\u4FDD\u5B58\u76EE\u5F55 \u251C\u2500\u2500 output --> \u9ED8\u8BA4\u7684\u7F16\u8BD1\u8F93\u51FA\u76EE\u5F55 \u251C\u2500\u2500 package --> \u5404\u7F16\u8BD1\u6E90\u7801\u5305/\u7EC4\u4EF6\u7684\u914D\u7F6E \u2502 \u251C\u2500\u2500 Config.in --> menuconfig \u914D\u7F6E\u7684\u9876\u5C42\u5165\u53E3 \u2502 \u251C\u2500\u2500 artinchip -->...","topics/sdk/advanced/luban-self-defined-package-dir.html@@@\u81EA\u5B9A\u4E49\u5305\u76EE\u5F55@@@Luban SDK \u652F\u6301\u5728 SDK \u4E4B\u5916\u7BA1\u7406\u81EA\u4E3B\u5F00\u53D1\u7684\u6A21\u5757\u548C\u5E94\u7528\uFF0C\u5305\u62EC\u4F7F\u7528\u72EC\u7ACB\u7684\u4ED3\u5E93\u8FDB\u884C\u7248\u672C\u7BA1\u7406\uFF0C\u5E76\u80FD\u4FBF\u6377\u63A5\u5165 Luban SDK \u8FDB\u884C\u7F16\u8BD1\u3002 \u672C\u8282\u4EE5\u521B\u5EFA\u4E00\u4E2A MYCOMPANY/ \u81EA\u5B9A\u4E49\u5305\u76EE\u5F55\u4E3A\u4F8B\u8FDB\u884C\u8BE6\u7EC6\u8BF4\u660E\uFF0C\u793A\u4F8B\u76EE\u5F55\u7ED3\u6784\u5982\u4E0B\u6240\u793A\u3002\u5176\u4E2D MYCOMPANY \u76EE\u5F55\u5373\u4E3A\u7528\u6237\u81EA\u5B9A\u4E49\u5305\u76EE\u5F55\uFF0C\u53EF\u4EE5\u7528\u6765\u72EC\u7ACB\u7BA1\u7406\u76F8\u5173\u7684\u5305\u914D\u7F6E\u548C\u6E90\u7801\u3002\u4E0E LUBAN_SDK \u4E2D\u7684\u5176\u4ED6\u5305\u4E00\u6837\uFF0C MYCOMPANY...","topics/sdk/advanced/pre-compilation-package.html@@@\u9884\u7F16\u8BD1\u5305\u4F18\u52BF@@@\u4E3A\u4E86\u52A0\u5FEB Luban \u7F16\u8BD1\u6846\u67B6\u4E2D\u7684 SDK \u7F16\u8BD1\u901F\u5EA6\uFF0C\u7F16\u8BD1\u8FC7\u7A0B\u4E2D\u5F15\u5165\u4E86\u9884\u7F16\u8BD1\u4E8C\u8FDB\u5236\u5305\u673A\u5236\u3002 \u4EE5\u4E0B\u4E3A\u4F7F\u7528\u6E90\u7801\u7F16\u8BD1\u65B9\u5F0F\u548C\u9884\u7F16\u8BD1\u5305\u65B9\u5F0F\u7684\u5BF9\u6BD4\uFF1A \u8868 1 . \u7F16\u8BD1\u65B9\u5F0F\u5BF9\u6BD4 \u6E90\u7801\u7F16\u8BD1\u65B9\u5F0F \u9884\u7F16\u8BD1\u4E8C\u8FDB\u5236\u538B\u7F29\u5305 \u7F16\u8BD1\u6784\u5EFA\u65F6\u95F4\u8F83\u957F\uFF0C\u7279\u522B\u662F\u7EC4\u4EF6\u8F83\u591A\u65F6\u3002 SDK \u7684\u6BCF\u4E00\u4E2A\u7EC4\u4EF6\u4ECE\u6E90\u7801\u7F16\u8BD1\u65F6\u4F1A\u7ECF\u5386\u4EE5\u4E0B\u6D41\u7A0B\uFF0C\u6BD4\u5982 Busybox \uFF1A extract patch configure build install \u63D0\u53D6\u3001...","topics/sdk/advanced/sdk-guide-temp-file.html@@@\u4E2D\u95F4\u6587\u4EF6\u63CF\u8FF0@@@\u201Ctemporary\u201D \u63CF\u8FF0\u7684\u662F\u955C\u50CF\u6587\u4EF6\u751F\u6210\u8FC7\u7A0B\u4E2D\u9700\u8981\u751F\u6210\u7684\u4E2D\u95F4\u6587\u4EF6\u3002\u901A\u8FC7\u63CF\u8FF0\u6570\u636E\u5BF9\u8C61\u7684\u65B9\u5F0F\uFF0C \u63CF\u8FF0\u4E0D\u540C\u7C7B\u578B\u7684\u4E2D\u95F4\u6587\u4EF6\u7684\u751F\u6210\u8FC7\u7A0B\uFF0C\u53EF\u7528\u4E8E\u5BF9\u7EC4\u4EF6\u7684\u7B7E\u540D\u3001\u52A0\u5BC6\u3001\u518D\u6B21\u6253\u5305\u7B49\u5904\u7406\u3002 \u5F53\u524D\u652F\u6301\u4E0B\u5217\u4E24\u79CD\u4E0D\u540C\u7684\u6570\u636E\u5904\u7406\uFF1A \u201Caicboot\u201D\uFF1A\u63CF\u8FF0 AIC \u542F\u52A8\u955C\u50CF\u7684\u751F\u6210 \u201Citb\u201D\uFF1A\u63CF\u8FF0 FIT Image \u7684\u6253\u5305 AIC \u542F\u52A8\u955C\u50CF AIC \u542F\u52A8\u955C\u50CF\u662F BROM \u89E3\u6790\u548C\u6267\u884C\u7684\u542F\u52A8\u7A0B\u5E8F\u6587\u4EF6\u3002...","topics/sdk/advanced/sdk-guide-temp-file_2.html@@@\u4E2D\u95F4\u6587\u4EF6\u63CF\u8FF0@@@\u201Ctemporary\u201D \u63CF\u8FF0\u7684\u662F\u955C\u50CF\u6587\u4EF6\u751F\u6210\u8FC7\u7A0B\u4E2D\u9700\u8981\u751F\u6210\u7684\u4E2D\u95F4\u6587\u4EF6\u3002\u901A\u8FC7\u63CF\u8FF0\u6570\u636E\u5BF9\u8C61\u7684\u65B9\u5F0F\uFF0C \u63CF\u8FF0\u4E0D\u540C\u7C7B\u578B\u7684\u4E2D\u95F4\u6587\u4EF6\u7684\u751F\u6210\u8FC7\u7A0B\uFF0C\u53EF\u7528\u4E8E\u5BF9\u7EC4\u4EF6\u7684\u7B7E\u540D\u3001\u52A0\u5BC6\u3001\u518D\u6B21\u6253\u5305\u7B49\u5904\u7406\u3002 \u5F53\u524D\u652F\u6301\u4E0B\u5217\u4E24\u79CD\u4E0D\u540C\u7684\u6570\u636E\u5904\u7406\uFF1A \u201Caicboot\u201D\uFF1A\u63CF\u8FF0 AIC \u542F\u52A8\u955C\u50CF\u7684\u751F\u6210 \u201Citb\u201D\uFF1A\u63CF\u8FF0 FIT Image \u7684\u6253\u5305 AIC \u542F\u52A8\u955C\u50CF AIC \u542F\u52A8\u955C\u50CF\u662F BROM \u89E3\u6790\u548C\u6267\u884C\u7684\u542F\u52A8\u7A0B\u5E8F\u6587\u4EF6\u3002...","topics/sdk/advanced/set-login-info.html@@@\u8BBE\u7F6E\u767B\u5F55\u4FE1\u606F@@@\u4EE5\u4E0B\u4E3A\u4E00\u4E2A\u767B\u5F55\u6253\u5370\u4FE1\u606F\u7684\u793A\u4F8B\uFF0C\u672C\u8282\u5C06\u4EE5\u6B64\u767B\u5F55\u6253\u5370\u4FE1\u606F\u4E3A\u4F8B\u8BB2\u89E3\u767B\u5F55\u8BBE\u7F6E\u6B65\u9AA4\u3002 Starting syslogd: OK Starting klogd: OK Starting mdev... OK WELCOME TO ARTINCHIP LUBAN LINUX ArtInChip-Device login: root Password: \u5728 menuconfig \u754C\u9762\uFF0C\u4FEE\u6539\u548C\u8BBE\u7F6E\u4E0B\u65B9\u7684...","topics/sdk/advanced/set-login-password.html@@@\u8BBE\u7F6E\u5BC6\u7801\u767B\u5F55@@@Luban SDK \u7F16\u8BD1\u7684 Linux \u7CFB\u7EDF\u56FA\u4EF6\uFF0C\u9ED8\u8BA4\u4F7F\u7528 root \u767B\u5F55\uFF0C\u5E76\u4E14\u6CA1\u6709\u767B\u5F55\u5BC6\u7801\u3002 \u6709\u4E9B\u4EA7\u54C1\u4E3A\u4E86\u7528\u6237\u6570\u636E\u7684\u5B89\u5168\uFF0C\u9700\u8981\u8BBE\u7F6E\u767B\u5F55\u5BC6\u7801\uFF0C\u53EF\u901A\u8FC7\u4E0B\u5217\u914D\u7F6E\u5B8C\u6210\u3002 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 menuconfig \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make menuconfig \u9009\u62E9 System configuration \u540E\uFF0C\u52FE\u9009 Enable root login with password...","topics/sdk/advanced/set-timezone.html@@@\u8BBE\u7F6E\u65F6\u533A@@@\u8BBE\u7F6E\u65F6\u533A\uFF0C\u9700\u8981\u5728 Luban SDK \u4E2D\u4F7F\u80FD Install timezone info \u3002\u5177\u4F53\u64CD\u4F5C\u6B65\u9AA4\u5982\u4E0B\u6240\u793A\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 menuconfig \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make menuconfig \u5728 System configuration \u9875\u9762\uFF0C\u52FE\u9009 Install timezone info \uFF1A \u540C\u65F6\uFF0C\u5728 System configuration...","topics/sdk/audio_codec/audio-codec-architecture.html@@@Audio Codec \u67B6\u6784@@@ALSA \u8F6F\u4EF6\u67B6\u6784 Linux \u4E2D\u7684\u97F3\u9891\u91C7\u7528 ALSA \u9A71\u52A8\u6846\u67B6\uFF0C\u8BE5\u6846\u67B6\u7BA1\u7406 Linux \u4E0B\u6240\u6709\u4E0E\u97F3\u9891\u76F8\u5173\u7684\u8D44\u6E90\uFF0Ccodec \u7684\u9A71\u52A8\u6309\u7167 ALSA \u6846\u67B6\u8FDB\u884C\u8BBE\u8BA1\u5F00\u53D1\u3002ALSA \u6574\u4F53\u6846\u67B6\u5982\u4E0B\u56FE\uFF1A \u5982\u4E0A\u56FE\uFF0CALSA \u97F3\u9891\u6846\u67B6\u5C06\u5E95\u5C42\u7684\u786C\u4EF6\u9A71\u52A8\u5206\u4E3A\u4E09\u90E8\u5206\uFF1Amachine\u3001platform \u4E0E codec\u3002\u4E09\u8005\u7684\u5173\u7CFB\u5982\u4E0B\u56FE\u6240\u793A\uFF1A platform driver \u5305\u542B\u4E86 soc \u5E73\u53F0\u7684\u97F3\u9891 DMA...","topics/sdk/audio_codec/audio-codec-configuration.html@@@Audio Codec \u914D\u7F6E@@@Audio Codec \u5305\u62EC\u4EE5\u4E0B\u914D\u7F6E\u5185\u5BB9\uFF1A \u5185\u6838\u914D\u7F6E \u6309\u7167 ALSA \u7684\u6846\u67B6\u8BBE\u8BA1\uFF0CAudioCodec \u7684\u6570\u636E\u4F20\u8F93\u4F7F\u7528 DMA \u65B9\u5F0F\uFF0C\u9700\u8981 engine \u7684\u652F\u6301\uFF0C\u6240\u4EE5\u5728 menuconfig \u4E2D\u9700\u8981\u6253\u5F00 DMA-engine \u7684\u9A71\u52A8\u652F\u6301\u3002 Device Drivers---> [*] DMA Engine support---> <*> ArtInChip SoCs DMA support \u5728...","topics/sdk/audio_codec/audio-codec-data_structure_design.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@\u7BA1\u7406 AudioCodec \u7684\u914D\u7F6E\u4FE1\u606F struct aic_codec { struct device *dev; struct regmap *regmap; struct clk *clk; struct reset_control *rst; struct resource *res; struct snd_dmaengine_dai_dma_data capture_dma_dmic...","topics/sdk/audio_codec/audio-codec-debug_guide.html@@@\u8C03\u8BD5\u6307\u5357@@@...","topics/sdk/audio_codec/audio-codec-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E linux-5.10/sound/soc/artinchip/aic-codec.c...","topics/sdk/audio_codec/audio-codec-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_codec_trigger \u51FD\u6570\u539F\u578B static int aic_codec_trigger(struct snd_pcm_substream *substream, int cmd, struct snd_soc_dai *dai) \u529F\u80FD\u8BF4\u660E AudioCodec \u7684\u89E6\u53D1\u51FD\u6570\uFF0C\u6839\u636E cmd \u6267\u884C\u4E0D\u540C\u7684\u64CD\u4F5C \u53C2\u6570\u5B9A\u4E49 substream\uFF1A\u6307\u5411\u9700\u8981\u6267\u884C cmd \u7684...","topics/sdk/audio_codec/audio-codec-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B AudioCodec \u6A21\u5757\u7684\u521D\u59CB\u5316\u6D41\u7A0B\u5982\u4E0B\uFF1A \u91CA\u653E clock \u548C reset \u4FE1\u53F7 \u91CA\u653E AudioCodec \u6A21\u5757\u7684\u5168\u5C40\u590D\u4F4D\u4FE1\u53F7 \u914D\u7F6E playback \u548C capture \u7684 DMA \u4F20\u8F93\u53C2\u6570 \u6CE8\u518C codec \u7AEF component driver \u548C codec_dai driver \u6CE8\u518C platform \u7AEF component driver \u548C cpu_dai driver...","topics/sdk/audio_codec/audio-codec-test_guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883\uFF1A \u786C\u4EF6 \u6D4B\u8BD5\u677F\uFF1A\u5E26\u6709 DMIC \u7684\u6D4B\u8BD5\u677F PC\uFF1A\u7528\u4E8E\u548C\u6D4B\u8BD5\u677F\u4EA4\u4E92 \u4E32\u53E3\u7EBF\uFF1A\u8FDE\u63A5\u6D4B\u8BD5\u677F\u7684\u8C03\u8BD5\u4E32\u53E3 \u8F6F\u4EF6 PC \u7AEF\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6 alsa-lib \u548C utils \u7B2C\u4E09\u65B9\u8F6F\u4EF6\u5305 \u5177\u4F53\u6D4B\u8BD5\u6B65\u9AA4\u5982\u4E0B\uFF1A \u521B\u5EFA\u58F0\u5361 AudioCodec \u662F SOC \u5185\u7F6E\u7684 codec\uFF0C\u6240\u4EE5\u5728 AudioCodec \u7684\u9A71\u52A8\u4E2D\uFF0C\u5DF2\u76F4\u63A5\u521B\u5EFA\u58F0\u5361\uFF0C\u4E0D\u9700\u8981\u518D\u5355\u72EC\u7F16\u5199 machine \u9A71\u52A8\u3002\u5728\u5B8C\u6210 Audio Codec \u914D\u7F6E...","topics/sdk/audio_codec/audio-codec-user-guide.html@@@Audio Codec \u4F7F\u7528\u6307\u5357@@@Audio Codec \u6A21\u5757\u5185\u7F6E Sigma-Delta ADC\u3001 DMIC \u63A5\u53E3\u548C PWM \u97F3\u9891\u8F93\u51FA\u6A21\u5757\uFF0C\u7ECF\u8FC7\u6570\u5B57\u4FE1\u53F7\u7684\u5904\u7406\uFF0C\u5B9E\u73B0\u97F3\u9891\u4FE1\u53F7\u7684\u5F55\u5165\u4EE5\u53CA\u64AD\u653E\u529F\u80FD\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 PCM \u8109\u51B2\u7F16\u7801\u8C03\u5236 PDM \u8109\u51B2\u5BC6\u5EA6\u8C03\u5236 SDM Sigma Delta Modulation DF \u62BD\u503C\u6EE4\u6CE2\u5668 IF \u63D2\u503C\u6EE4\u6CE2\u5668 HDF \u9AD8\u901A\u6EE4\u6CE2\u5668 DVC \u6570\u5B57\u97F3\u91CF\u63A7\u5236\u5668 DMICI/F \u6570\u5B57...","topics/sdk/audio_codec/audio-fail-to-find-alsa.conf-file.html@@@\u627E\u4E0D\u5230 alsa.conf \u914D\u7F6E\u6587\u4EF6@@@\u6267\u884C amixer \u65F6\u62A5\u9519\uFF0C\u663E\u793A\u627E\u4E0D\u5230 conf \u914D\u7F6E\u6587\u4EF6 \u8BE5\u95EE\u9898\u7684\u539F\u56E0\u662F\u627E\u4E0D\u5230 ALSA \u7684\u8DEF\u5F84\uFF0C\u53EF\u4EE5\u901A\u8FC7\u4EE5\u4E0B\u547D\u4EE4\u89E3\u51B3\uFF1A export ALSA_CONFIG_DIR=/usr/share/alsa/...","topics/sdk/boot/back-to-brom.html@@@\u8FD4\u56DE BROM@@@\u5728 USB \u5347\u7EA7\u7684\u5E94\u7528\u4E2D\uFF0C\u4E3B\u673A\u901A\u8FC7 USB \u4E0B\u8F7D SPL \u5230 SRAM\uFF0C\u5E76\u4E14\u7531 BROM \u8DF3\u8F6C\u6267\u884C\uFF0CSPL \u4EE3\u7801\u5BF9 DDR \u521D\u59CB\u5316\u7ED3\u675F\u4E4B\u540E\u9700\u8981\u8FD4\u56DE\u5230 BROM \u4E2D\u7EE7\u7EED\u6267\u884C\u4E0B\u8F7D\u5176\u4ED6\u6570\u636E\u7684\u64CD\u4F5C\u3002 \u8FD9\u79CD\u5E94\u7528\u573A\u666F\u4E2D\uFF0C\u5C06\u8FD4\u56DE BROM \u770B\u505A\u662F\u4ECE BROM \u4E2D\u52A0\u8F7D\u6570\u636E\uFF0C\u56E0\u6B64\u8FD4\u56DE BROM \u88AB\u5B9E\u73B0\u4E3A\u4E00\u4E2A\u7A0B\u5E8F\u52A0\u8F7D\u5668\u3002 common/spl/spl_bootrom.c \u4E2D\u901A\u8FC7\u6CE8\u518C...","topics/sdk/boot/boot-memory.html@@@\u5185\u5B58\u76F8\u5173@@@DDR \u521D\u59CB\u5316 BROM \u9636\u6BB5\u4EC5\u7CFB\u7EDF SRAM \u53EF\u7528\uFF0C\u5927\u5C0F\u4E3A 96 KB\u3002\u5728 BROM \u9636\u6BB5 Cache \u5173\u95ED\uFF0CSRAM \u7684\u8FD0\u884C\u9891\u7387\u4E3A 24 MHz. DDR \u7684\u521D\u59CB\u5316\u5728 PreBoot Program (PBP) \u7A0B\u5E8F\u4E2D\u8FDB\u884C\u3002PBP \u662F\u4FDD\u5B58\u5728 AIC \u542F\u52A8\u955C\u50CF\u4E2D\u7684\u4E00\u6BB5\u7A0B\u5E8F\uFF0C BROM \u5728\u8FD0\u884C SPL \u4E4B\u524D\u5148\u8FD0\u884C PBP \u7A0B\u5E8F\uFF0CPBP \u7A0B\u5E8F\u6267\u884C\u6210\u529F\u4E4B\u540E\uFF0C\u624D\u8DF3\u8F6C\u6267\u884C SPL \u7A0B\u5E8F\u3002 PBP...","topics/sdk/boot/bundle-images.html@@@\u6253\u5305\u955C\u50CF@@@\u672C\u7AE0\u8282\u63CF\u8FF0 U-Boot \u6D89\u53CA\u5230\u7684\u6253\u5305\u955C\u50CF\u76F8\u5173\u7684\u5185\u5BB9\uFF0C\u4EE5\u53CA\u76F8\u5173\u5DE5\u5177\u3002...","topics/sdk/boot/configure-default-environment-variable.html@@@\u521D\u59CB\u73AF\u5883\u53D8\u91CF\u8BBE\u7F6E@@@\u521D\u59CB\u7684\u73AF\u5883\u53D8\u91CF\u8BBE\u7F6E\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A \u6E90\u6587\u4EF6\u6587\u4EF6\u4E2D\u8BBE\u7F6E\u9ED8\u8BA4\u7684\u73AF\u5883\u53D8\u91CF\u5185\u5BB9 \u8FD9\u79CD\u65B9\u5F0F\u662F\u901A\u8FC7\u5177\u4F53\u5E73\u53F0\u7684\u914D\u7F6E\u5934\u6587\u4EF6\uFF0C\u5B9A\u4E49\u5404\u4E2A\u73AF\u5883\u53D8\u91CF\u7684\u521D\u59CB\u5316\u8BBE\u7F6E\u5B8F\uFF0C\u7136\u540E\u5728\u7F16\u8BD1\u7684\u65F6\u5019\u5C55\u5F00\u5230\u5168\u5C40\u53D8\u91CF default_environment \u4E2D\u3002\u5177\u4F53\u53EF\u4EE5\u53C2\u8003\uFF1A include/env_default.h env/common.c include/configs/qemu-riscv.h...","topics/sdk/boot/debug-configuration.html@@@\u8C03\u8BD5\u914D\u7F6E@@@\u6B64\u7AE0\u8282\u63CF\u8FF0\u5E38\u7528\u7684 SPL \u548C U-Boot \u8C03\u8BD5\u914D\u7F6E\u65B9\u6CD5\u3002...","topics/sdk/boot/environment-variables.html@@@\u73AF\u5883\u53D8\u91CF@@@\u672C\u7AE0\u63CF\u8FF0 U-Boot \u4E2D\u5173\u4E8E\u73AF\u5883\u53D8\u91CF\u7684\u5173\u952E\u5185\u5BB9\uFF0C\u4EE5\u53CA ArtInChip \u5E73\u53F0\u4E2D\u5BF9\u73AF\u5883\u53D8\u91CF\u7684\u4F7F\u7528\u65B9\u5F0F\u3002 \u5173\u4E8E U-Boot \u73AF\u5883\u53D8\u91CF\u7684\u66F4\u591A\u5185\u5BB9\uFF0C\u53EF\u4EE5\u53C2\u8003\u5B98\u65B9\u6587\u6863 http://www.denx.de/wiki/DULG/Manual U-Boot \u73AF\u5883\u53D8\u91CF\u662F\u4FDD\u5B58\u5728\u975E\u6613\u5931\u6027\u5B58\u50A8(NVM)\u4E0A\u7684\u6587\u672C\u6570\u636E\u5757\uFF0C\u7CFB\u7EDF\u542F\u52A8\u65F6\u4F1A\u88AB\u62F7\u8D1D\u5230\u5185\u5B58\u4E2D\u4F7F\u7528\u3002...","topics/sdk/boot/fitImage_0.html@@@FIT Image \u4ECB\u7ECD@@@\u5728 ArtInChip \u542F\u52A8\u7CFB\u7EDF\u7684\u5F00\u53D1\u8FC7\u7A0B\u4E2D\uFF0C\u4F7F\u7528\u8FC7\u4E0D\u540C\u7684 Kernel Image \u683C\u5F0F\uFF1A \u6CE8\uFF1A Kernel Image \u5916\u7F51\u53C2\u8003\u8D44\u6E90\uFF1A http://www.wowotech.net/u-boot/fit_image_overview.html \u3002\u672A\u6765\u9700\u8981\u6539\u7528 FIT Image (ITB Image)\u3002 uImage\uFF1AU-Boot \u5B9A\u4E49\u7684\u4E00\u79CD\u542F\u52A8\u955C\u50CF\u683C\u5F0F\uFF0C\u7531 64 \u5B57\u8282\u7684 U-Boot...","topics/sdk/boot/fitImage_1.html@@@FIT Image \u914D\u7F6E\u548C\u542F\u52A8@@@FIT\uFF0C\u5373 Flattened Image Tree\uFF0C\u662F\u53C2\u8003 Flattened Device Tree \u547D\u4EE4\u800C\u6765\uFF0C\u5177\u6709\u4EE5\u4E0B\u4F18\u52BF\u3002 \u66F4\u7075\u6D3B\u7684\u5904\u7406\u5404\u79CD\u7C7B\u578B\u7684 image \u7C7B\u578B(\u538B\u7F29\u3001\u975E\u538B\u7F29\u3001\u5404\u79CD\u683C\u5F0F\uFF0C\u5404\u79CD\u914D\u7F6E\u7EC4\u5408) \u53EF\u4EE5\u5904\u7406\u5B89\u5168\u542F\u52A8\u8FC7\u7A0B\u4E2D\u7684\u5B89\u5168\u6821\u9A8C\uFF08\u7B7E\u540D\u6821\u9A8C\uFF09 FIT \u539F\u59CB\u53C2\u8003\u6587\u6863\u5982\u4E0B\uFF1A source/uboot- 2021.10 /doc/usage/fit.rst source/uboot...","topics/sdk/boot/fitImage_2.html@@@\u4F7F\u7528 FIT Image@@@ArtInChip \u9879\u76EE\u4E2D\uFF0C\u5C06 Kernel Image \u6539\u4E3A\u4F7F\u7528 FIT Image \u7684\u539F\u56E0\uFF1A \u5FEB\u901F\u542F\u52A8\u7684\u9700\u8981 \u51CF\u5C11\u5206\u533A\u7684\u9700\u8981 \u5B89\u5168\u542F\u52A8\u7684\u9700\u8981 \u652F\u6301 RISCV \u7684\u9700\u8981 \u5FEB\u901F\u542F\u52A8 D21x \u7684\u5FEB\u901F\u542F\u52A8\uFF0CeMMC \u7684\u65B9\u6848\u4F7F\u7528\u672A\u538B\u7F29\u7684 Image \u901F\u5EA6\u6700\u5FEB\uFF0CSPI NOR/SPI NAND \u4F7F\u7528\u538B\u7F29\u7684 zImage \u6BD4\u8F83\u5408\u9002\u3002 \u540C\u65F6 U-Boot \u52A0\u8F7D Kernel \u6700\u597D\u53EA\u8BFB\u53D6 Kernel...","topics/sdk/boot/image-file-intro.html@@@Image \u6587\u4EF6\u63CF\u8FF0@@@\u201Cimage\u201D \u5BF9\u8C61\u63CF\u8FF0\u8981\u751F\u6210\u7684\u955C\u50CF\u6587\u4EF6\u7684\u57FA\u672C\u4FE1\u606F\uFF0C\u4EE5\u53CA\u8981\u6253\u5305\u7684\u6570\u636E\u3002\u5305\u542B\u51E0\u4E2A\u90E8\u5206\uFF1A \u201Cinfo\u201D \u201Cupdater\u201D \u201Ctarget\u201D "image" : { "info" : { ... } "updater" : { ... } "target" : { ... } } Info \u6570\u636E\u63CF\u8FF0 \u201Cinfo\u201D \u5BF9\u8C61\u7528\u4E8E\u63CF\u8FF0\u8BE5\u70E7\u5F55\u955C\u50CF\u7684\u57FA\u672C\u4FE1\u606F\uFF0C\u8FD9\u4E9B\u4FE1\u606F\u7528\u4E8E\u751F\u6210 Image Header\u3002\u4EE5...","topics/sdk/boot/image-file-intro_2.html@@@Image \u6587\u4EF6\u63CF\u8FF0@@@\u201Cimage\u201D \u5BF9\u8C61\u63CF\u8FF0\u8981\u751F\u6210\u7684\u955C\u50CF\u6587\u4EF6\u7684\u57FA\u672C\u4FE1\u606F\uFF0C\u4EE5\u53CA\u8981\u6253\u5305\u7684\u6570\u636E\u3002\u5305\u542B\u51E0\u4E2A\u90E8\u5206\uFF1A \u201Cinfo\u201D \u201Cupdater\u201D \u201Ctarget\u201D "image" : { "info" : { ... } "updater" : { ... } "target" : { ... } } Info \u6570\u636E\u63CF\u8FF0 \u201Cinfo\u201D \u5BF9\u8C61\u7528\u4E8E\u63CF\u8FF0\u8BE5\u70E7\u5F55\u955C\u50CF\u7684\u57FA\u672C\u4FE1\u606F\uFF0C\u8FD9\u4E9B\u4FE1\u606F\u7528\u4E8E\u751F\u6210 Image Header\u3002\u4EE5...","topics/sdk/boot/jtag-debug-configuration.html@@@JTAG \u8C03\u8BD5@@@\u672C\u8282\u63CF\u8FF0\u901A\u8FC7 JTAG \u63A5\u53E3\u4E0B\u8F7D\u548C\u8FD0\u884C U-Boot \u811A\u672C\uFF0C\u4EE5\u53CA\u5728\u91CD\u5B9A\u4F4D\u540E\u7684\u8C03\u8BD5\u6D41\u7A0B\u3002 \u901A\u8FC7 JTAG \u4E0B\u8F7D SPL \u5C06 SPL \u76F4\u63A5\u4E0B\u8F7D\u5230\u82AF\u7247 SRAM \u8FD0\u884C\uFF1A restore ./output/images/u-boot-spl-dtb.bin binary 0x103100 add-symbol-file ./output/build/uboot- 2021.10...","topics/sdk/boot/load-SDFAT32.html@@@SDFAT32 \u52A0\u8F7D@@@SDFAT32 \u542F\u52A8\u65B9\u5F0F\u66F4\u4E3A\u7B80\u5355\uFF0C\u4E0D\u9700\u8981\u4E13\u4E1A\u7684\u70E7\u5F55\u5DE5\u5177\u8FDB\u884C\u70E7\u5199\uFF0C\u53EA\u9700\u8981\u5C06\u955C\u50CF\u6587\u4EF6\u590D\u5236\u5230 SD \u5361\u5373\u53EF\u3002 \u56FE 1 . MMC \u4E0E SD \u5361\u542F\u52A8\u5DEE\u5F02 SDFAT32 \u662F\u57FA\u4E8E MMC \u5EFA\u7ACB\u7684\uFF0C\u52A0\u8F7D\u7A0B\u5E8F\u4E5F\u5728 spl_mmc.c \u4E2D\u5B9E\u73B0\uFF1A \u4F7F\u7528\u4E0B\u5217\u5B8F\u53C2\u6570\u5C06 spl_mmc_load_image \u51FD\u6570\u6DFB\u52A0\u5230 .u_boot_list_2_spl_image_loader_* \u6BB5\u3002...","topics/sdk/boot/load-mmc.html@@@MMC \u52A0\u8F7D@@@SPL \u4ECE MMC \u52A0\u8F7D U-Boot \u7684\u5904\u7406\u8FC7\u7A0B\u3002\u7A0B\u5E8F\u7F16\u7801\u7684\u65F6\u5019\uFF0C\u9488\u5BF9 MMC \u8BBE\u5907\u6DFB\u52A0\u4E86\u5BF9\u5E94\u7684\u52A0\u8F7D\u7A0B\u5E8F\u652F\u6301\uFF0C\u5982 spl_mmc.c \u4E2D\uFF0C\u901A\u8FC7\u4F7F\u7528\u5B8F SPL_LOAD_IMAGE_METHOD(\u201CMMC1\u201D, 0, BOOT_DEVICE_MMC1, spl_mmc_load_image); \u5C06 spl_mmc_load_image \u51FD\u6570\u6DFB\u52A0\u5230...","topics/sdk/boot/load-spiNand.html@@@SPI NAND \u52A0\u8F7D@@@\u5B98\u65B9\u7248\u672C\u7684 SPL \u5E76\u4E0D\u652F\u6301\u4ECE SPI NAND \u542F\u52A8\uFF0CArtInChip \u589E\u52A0\u4E86\u4ECE SPI NAND \u7684 MTD \u5206\u533A \u548C UBI \u52A0\u8F7D U-Boot \u7684\u652F\u6301\u3002 common/spl/spl_spi_nand.c \u4E2D\u6CE8\u518C\u4E86\u4E24\u4E2A\u4E0D\u540C\u7684 SPL \u7A0B\u5E8F\u52A0\u8F7D\u5668\u3002 #ifdef CONFIG_SPL_UBI /* Use priorty 0 to override other SPI device...","topics/sdk/boot/load-spiNor.html@@@SPI NOR \u52A0\u8F7D@@@common/spl/spl_spi.c \u4E2D\u901A\u8FC7\u5B8F\u6CE8\u518C\u4E86 SPI NOR \u7684\u7A0B\u5E8F\u52A0\u8F7D\u5668\u3002 SPL_LOAD_IMAGE_METHOD( "SPI" , 1 ,BOOT_DEVICE_SPI,spl_spi_load_image); \u5728 SPL \u521D\u59CB\u5316\u8FC7\u7A0B\u4E2D\uFF0C\u901A\u8FC7 boot_from_devices(spl_boot_list) \u51FD\u6570\u8C03\u7528\uFF0C\u68C0\u67E5\u5F53\u524D\u9879\u76EE\u6240\u652F\u6301\u7684 SPL...","topics/sdk/boot/logo-display.html@@@\u56FE\u50CF\u663E\u793A@@@\u672C\u7AE0\u8282\u4E3B\u8981\u4ECB\u7ECD U-Boot \u9636\u6BB5 LOGO \u663E\u793A\u7684\u76F8\u5173\u5185\u5BB9\u3002 U-Boot \u9A71\u52A8\u6A21\u578B\u652F\u6301 Graphics\uFF0CArtInChip \u5E73\u53F0\u4E2D\u7684\u663E\u793A\u9A71\u52A8\u57FA\u4E8E\u8BE5\u6846\u67B6\u8FDB\u884C\u5B9E\u73B0\u3002 \u4F46\u9A71\u52A8\u5185\u90E8\u903B\u8F91\u53C2\u8003\u4E86 Kernel \u4E2D\u7684\u663E\u793A\u9A71\u52A8\uFF0C\u5BF9\u65B0\u5C4F\u9002\u914D\u53EF\u53C2\u8003 SDK \u6307\u5357\u4E2D\u7684\u663E\u793A\u6A21\u5757\u4F7F\u7528\u6307\u5357\u3002 \u76F8\u5173\u672F\u8BED \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E DE Display Engine \u663E\u793A\u5F15\u64CE DI Display Interface...","topics/sdk/boot/luban_aicupg-burn.html@@@AICUPG \u70E7\u5F55@@@ArtInChip \u5E73\u53F0\u652F\u6301\u901A\u8FC7 USB \u8FDB\u884C\u88F8\u673A\u70E7\u5F55\u7684\u529F\u80FD\u3002\u901A\u5E38\u60C5\u51B5\u4E0B\uFF0C\u8BE5\u529F\u80FD\u5728 BROM \u9636\u6BB5\u901A\u8FC7\u68C0\u6D4B\u7279\u5B9A\u6309\u952E\u7684\u65B9\u5F0F\uFF0C\u6216\u8005\u542F\u52A8\u5931\u8D25\u65F6\u8FDB\u5165\u3002 \u5B8C\u6574\u7684\u5347\u7EA7\u8FC7\u7A0B\u5206\u4E3A\u4E24\u4E2A\u9636\u6BB5\uFF1A BROM \u9636\u6BB5 \u4EC5\u652F\u6301\u4E0B\u8F7D\u6570\u636E\u548C\u7EC4\u4EF6\u5230 SRAM/DRAM\uFF0C\u4EE5\u53CA\u6267\u884C\u4E0B\u8F7D\u7684\u7EC4\u4EF6\u3002\u4E0D\u652F\u6301\u70E7\u5F55\u7EC4\u4EF6\u5230\u5B58\u50A8\u4ECB\u8D28\u3002 U-Boot \u9636\u6BB5 \u652F\u6301\u4ECE\u4E3B\u673A\u7AEF\u4E0B\u8F7D\u6570\u636E\u548C\u7EC4\u4EF6\uFF0C\u5E76\u4E14\u652F\u6301\u5C06\u7EC4\u4EF6\u70E7\u5F55\u5230\u6307\u5B9A\u7684\u5B58\u50A8\u4ECB\u8D28\u3002 USB \u88F8\u673A\u70E7\u5F55\u7684\u5B9E\u73B0\u6D41\u7A0B\uFF1A...","topics/sdk/boot/mmc-drivers.html@@@MMC@@@\u672C\u7AE0\u8282\u63CF\u8FF0 MMC \u9A71\u52A8\u7684\u76F8\u5173\u914D\u7F6E\u548C\u4F7F\u7528\u3002 \u9A71\u52A8\u6846\u67B6 U-Boot \u9A71\u52A8\u6A21\u578B\u652F\u6301 MMC\uFF0C\u5E76\u4E14\u901A\u8FC7\u5757\u8BBE\u5907\u63A5\u53E3\u5BF9 MMC \u8FDB\u884C\u8BBF\u95EE\u3002ArtInChip \u5E73\u53F0\u4E2D\uFF0C SPL \u548C U-Boot \u9636\u6BB5\u90FD\u652F\u6301 MMC \u5DF2\u7ECF\u5757\u8BBE\u5907\u63A5\u53E3\u3002 \u76F8\u5173\u914D\u7F6E\u4E3A\uFF1A CONFIG_MMC CONFIG_DM_MMC CONFIG_SPL_DM_MMC CONFIG_BLK CONFIG_SPL_BLK...","topics/sdk/boot/modify-dts.html@@@\u4FEE\u6539 DTS@@@\u542F\u52A8\u5185\u6838\u65F6\uFF0C\u4F1A\u901A\u8FC7\u53C2\u6570 r2 \u5C06 FDT \u4F20\u9012\u7ED9 Kernel\u3002Bootargs \u7B49\u4FE1\u606F\u4E5F\u4F1A\u901A\u8FC7 FDT \u4F20\u9012\u7ED9 Kernel\u3002 \u7531\u4E8E bootargs \u662F\u5728 U-Boot \u8FD0\u884C\u65F6\u751F\u6210\uFF0C\u5982\u679C\u9700\u8981\u4F20\u9012 initrd \u4FE1\u606F\uFF0C\u4E5F\u662F\u901A\u8FC7 FDT \u4F20\u9012\u3002 do_bootm(); // cmd/bootm.c |-> do_bootm_states(); // common/bootm.c |->...","topics/sdk/boot/opensbi.html@@@OpenSBI@@@\u6B64\u5904\u4ECB\u7ECD OpenSBI \u7684\u57FA\u672C\u4F5C\u7528\uFF0C\u4EE5\u53CA\u4E0E U-Boot \u7684\u5173\u7CFB\u3002...","topics/sdk/boot/pre-boot-program.html@@@Pre-Boot Program (PBP)@@@Pre-Boot Program (PBP) \u662F ArtInChip \u82AF\u7247\u5E73\u53F0\u542F\u52A8\u8FC7\u7A0B\u4E2D\u7684\u4E00\u6BB5\u7A0B\u5E8F\uFF0C\u5728 BROM \u7A0B\u5E8F\u8DF3\u8F6C\u6267\u884C SPL \u4E4B\u524D\uFF0C \u8FD0\u884C\u7684\u4EE3\u7801\u3002 PBP \u7A0B\u5E8F\u7528\u4E8E\u521D\u59CB\u5316\u4E00\u4E9B\u4E0D\u5F00\u653E\u7684\u786C\u4EF6\u6A21\u5757\uFF0C\u6BD4\u5982 DRAM \u63A7\u5236\u5668\u7684\u521D\u59CB\u5316\u3002 \u5B58\u653E\u4F4D\u7F6E PBP \u7A0B\u5E8F\u662F\u4EE5\u4E8C\u8FDB\u5236\u5F62\u5F0F\u4FDD\u5B58\u5728 SDK \u4E2D\uFF0C\u901A\u5E38\u4F4D\u4E8E target/ chip /common/ chipname .pbp \u5728 mk_image.py...","topics/sdk/boot/print-setting-d21x.html@@@\u6253\u5370\u8BBE\u7F6E@@@\u5728\u6267\u884C\u542F\u52A8\u6D41\u7A0B\u8C03\u8BD5\u6216\u8005\u6A21\u5757\u8C03\u8BD5\u65F6\uFF0C\u901A\u8FC7\u4E32\u53E3\u6253\u5370\u4FE1\u606F\u8FDB\u884C\u8C03\u8BD5\u662F\u4E00\u79CD\u5E38\u89C1\u7684\u65B9\u6CD5\u3002\u901A\u8FC7 Kconfig \u914D\u7F6E\u4E2D\u7684 ArtInChip debug \u9009\u9879\uFF0C\u53EF\u4EE5\u4F7F\u80FD\u6253\u5370\u4FE1\u606F\uFF0C\u8BE6\u7EC6\u6D41\u7A0B\u5982\u4E0B\uFF1A \u8FDB\u5165 U-Boot \u83DC\u5355\u914D\u7F6E\u754C\u9762\uFF1A make uboot-menuconfig \u5728\u83DC\u5355\u914D\u7F6E\u4E2D\uFF0C\u627E\u5230\u5E76\u5C55\u5F00 ArtInChip debug \u9009\u9879\uFF1A ArtInChip debug ---> [ ] Enable early...","topics/sdk/boot/reset-drivers.html@@@Reset@@@\u672C\u7AE0\u8282\u63CF\u8FF0 ArtInChip \u5E73\u53F0\u7684 U-Boot \u590D\u4F4D\u9A71\u52A8\u76F8\u5173\u5185\u5BB9\u3002 \u9A71\u52A8\u6846\u67B6 U-Boot \u9A71\u52A8\u6A21\u578B\u652F\u6301 Reset\uFF0CArtInChip \u5E73\u53F0\u4E2D Reset \u9A71\u52A8\u57FA\u4E8E\u8BE5\u6846\u67B6\u8FDB\u884C\u5B9E\u73B0\u3002 \u76F8\u5173\u914D\u7F6E\u4E3A\uFF1A CONFIG_DM_RESET CONFIG_RESET_ARTINCHIP \u76F8\u5173\u6E90\u7801\u6709\uFF1A include/reset.h include/reset-uclass.h...","topics/sdk/boot/save-env-variable-on-memory-medium.html@@@\u5B58\u50A8\u4ECB\u8D28\u4E0A\u7684\u4FDD\u5B58@@@\u5728\u4F7F\u7528\u8FC7\u7A0B\u4E2D\uFF0C\u4FDD\u5B58\u5728\u5B58\u50A8\u8BBE\u5907\u4E0A\u7684\u73AF\u5883\u53D8\u91CF\u5185\u5BB9\u53EF\u80FD\u4F1A\u88AB\u4FEE\u6539\uFF0C\u56E0\u6B64\u9009\u62E9\u5B58\u50A8\u4F4D\u7F6E\u65F6\u9700\u8981\u8003\u8651\u5B58\u50A8\u4ECB\u8D28\u7684\u7279\u70B9\u3002 \u6BD4\u5982 MTD \u8BBE\u5907\u4E0A\u8981\u6CE8\u610F\u4FDD\u5B58\u5728\u72EC\u7ACB\u7684\u64E6\u9664\u5757\u4E0A\uFF0C\u4EE5\u514D\u5728\u4FEE\u6539\u65F6\u5F71\u54CD\u5176\u4ED6\u6570\u636E\u7684\u5B8C\u6574\u6027\u3002 \u5E38\u89C1\u7684\u4FDD\u5B58\u65B9\u5F0F\u6709\u4E0B\u9762\u4E24\u79CD\uFF1A \u4E0E U-Boot \u4E00\u8D77\u4FDD\u5B58 \u5728\u4F7F\u7528 MMC \u5B58\u50A8\u65F6\uFF0C\u6709\u4E9B\u65B9\u6848\u4F1A\u5C06 ENV \u4FDD\u5B58\u5728 U-Boot \u7684\u5206\u533A\uFF0C\u5E76\u4E14\u653E\u5728 U-Boot \u5206\u533A\u7684\u5C3E\u90E8\u3002 \u901A\u8FC7\u5728 DTS \u4E2D\u6307\u5B9A\u5206\u533A\u540D\u5B57\u5373\u53EF\u8BBF\u95EE\u5230\u3002...","topics/sdk/boot/sdCard-burn.html@@@SDCard \u70E7\u5F55@@@\u82AF\u7247\u652F\u6301\u4ECE SD \u5361\u7684 FAT32 \u6587\u4EF6\u7CFB\u7EDF\u542F\u52A8\u3002\u70E7\u5F55\u4E4B\u524D\uFF0C\u786E\u4FDD\u6EE1\u8DB3\u4EE5\u4E0B\u8981\u6C42\uFF1A \u677F\u5B50 SD \u5361\u63A5\u53E3\uFF0C\u5E76\u4E14\u4F7F\u7528 SDMC1 SD \u5361\u8981\u6C42\u53EA\u6709\u4E00\u4E2A\u5206\u533A SD \u5361\u683C\u5F0F\u5316\u4E3A FAT32 \u6587\u4EF6\u7CFB\u7EDF\uFF0C\u6CE8\u610F\u4E0D\u662F exFAT\u3001\u6216\u8005 FAT16 SD \u5361\u6700\u597D\u4E3A\u4E13\u7528\u5361\uFF0C\u91CC\u9762\u4E0D\u8981\u653E\u7F6E\u592A\u591A\u5176\u4ED6\u6587\u4EF6 \u82AF\u7247\u6CA1\u6709\u70E7\u5F55\u8DF3\u8FC7 SD \u5361\u7684 eFuse \u6267\u884C\u6B65\u9AA4\uFF1A \u62F7\u8D1D\u5728\u7F16\u8BD1\u8F93\u51FA\u76EE\u5F55 (images) \u4E0B\u7684\u4E24\u4E2A\u6587\u4EF6\u5230 SD \u5361...","topics/sdk/boot/signature-verify.html@@@\u7B7E\u540D\u6821\u9A8C@@@U-Boot \u5B98\u65B9\u7684\u4EE3\u7801\uFF0CSPL \u652F\u6301 FIT image \u7684\u7B7E\u540D\u3002\u5982\u679C\u56FA\u4EF6\u4F7F\u7528\u5176\u4ED6\u683C\u5F0F\uFF0C \u9700\u8981\u81EA\u884C\u6DFB\u52A0\u76F8\u5E94\u7684\u6821\u9A8C\u652F\u6301\u3002 FIT Image \u7B7E\u540D\u6821\u9A8C \u8981\u5B9E\u73B0\u9A8C\u8BC1 FIT Image \u7684\u7B7E\u540D\uFF0C\u9700\u8981\u5728\u914D\u7F6E\u4E2D\u6253\u5F00 CONFIG_SPL_FIT_SIGNATURE \u9009\u9879\uFF1A mmc_load_image_raw_sector(); // common/spl/spl_mmc.c |->...","topics/sdk/boot/spi-divers.html@@@SPI@@@SPI \u5728 U-Boot \u4E2D\u4E3B\u8981\u7528\u4E8E\u652F\u6301 SPI NAND/NOR \u5B58\u50A8\u8BBE\u5907\u3002\u76EE\u524D ArtInChip \u5E73\u53F0\u4E0A SPI \u7684\u5B9E\u73B0\u53EA\u652F\u6301\u534A\u53CC\u5DE5\u6A21\u5F0F(Half-duplex)\u3002 \u9A71\u52A8\u6846\u67B6 U-Boot \u9A71\u52A8\u6A21\u578B\u652F\u6301 SPI\uFF0CArtInChip \u5E73\u53F0\u4E2D SPI \u9A71\u52A8\u57FA\u4E8E\u8BE5\u6846\u67B6\u8FDB\u884C\u5B9E\u73B0\u3002 \u76F8\u5173\u914D\u7F6E\u4E3A\uFF1A CONFIG_DM_SPI CONFIG_SPI CONFIG_SPL_SPI_SUPPORT...","topics/sdk/boot/spi-nand-drivers.html@@@SPI NAND@@@\u672C\u7AE0\u8282\u63CF\u8FF0 SPI NAND \u9A71\u52A8\u7684\u76F8\u5173\u914D\u7F6E\u548C\u4F7F\u7528\u3002 \u9A71\u52A8\u6846\u67B6 SPI NAND \u7684\u64CD\u4F5C\u57FA\u4E8E SPI \u547D\u4EE4\uFF0C\u9664\u4E86\u4E2A\u522B\u578B\u53F7\u53EF\u80FD\u6709\u4E0D\u540C\u4E4B\u5916\uFF0C\u57FA\u672C\u4E0A\u64CD\u4F5C\u548C\u884C\u4E3A\u90FD\u662F\u4E00\u81F4\u7684\uFF0C \u6240\u4EE5 U-Boot \u4E2D\u5DF2\u7ECF\u5B9E\u73B0\u4E86\u5171\u7528\u7248\u672C\u7684 SPI NAND \u9A71\u52A8\uFF0C\u5177\u4F53\u5668\u4EF6\u53EA\u9700\u8981\u6DFB\u52A0\u5C0F\u90E8\u5206\u9A71\u52A8\u4EE3\u7801\u5373\u53EF\u3002 \u76F8\u5173\u914D\u7F6E\uFF1A CONFIG_MTD CONFIG_DM_SPI CONFIG_SPI_MEM...","topics/sdk/boot/spi-nor-drivers.html@@@SPI NOR@@@\u672C\u7AE0\u8282\u63CF\u8FF0 SPI NOR \u9A71\u52A8\u7684\u76F8\u5173\u914D\u7F6E\u548C\u4F7F\u7528\u3002 \u9A71\u52A8\u6846\u67B6 \u5F85\u5B8C\u5584 \u9A71\u52A8\u63A5\u53E3 \u5F85\u5B8C\u5584 \u521D\u59CB\u5316\u548C\u8BFB\u5199 \u5F85\u5B8C\u5584 \u6DFB\u52A0\u65B0\u5668\u4EF6 \u5F85\u5B8C\u5584...","topics/sdk/boot/spl-boot-procedure.html@@@\u542F\u52A8\u6D41\u7A0B@@@\u7406\u89E3 SPL \u7684\u542F\u52A8\u6D41\u7A0B\uFF0C\u5173\u952E\u662F\u8BBE\u5907\u6811\uFF0C\u8BBE\u5907\u9A71\u52A8\u6A21\u578B\u3002\u5173\u4E8E\u8BBE\u5907\u6811\uFF0C\u8BF7\u67E5\u770B\u8BBE\u5907\u6811\u76F8\u5173\u7AE0\u8282\uFF0C\u8BBE\u5907\u9A71\u52A8\u6A21\u578B\u7684\u4ECB\u7ECD\u5982\u4E0B\uFF1A uboot \u8BBE\u5907\u9A71\u52A8\u6846\u67B6\u6A21\u578B uclass <\u2013> uclass_driver <\u2013> udevice <\u2013> driver <\u2013> hardware uclass \u8868\u793A\u7BA1\u7406\u67D0\u4E00\u4E2A\u7C7B\u522B\u4E0B\u7684\u6240\u6709 device; uclass_driver \u8868\u793A\u5BF9\u5E94 uclass \u7684 ops \u96C6\u5408\u3002...","topics/sdk/boot/spl-program-stage.html@@@SPL \u9636\u6BB5@@@ArtInChip \u5E73\u53F0\u4E0A\u7684 SPL (Secondary Program Loader) \u662F\u7B2C\u4E00\u7EA7\u5F15\u5BFC\u7A0B\u5E8F (FSBL, First Stage Boot Loader)\uFF0C \u540C\u65F6\u4E5F\u662F\u7B2C\u4E8C\u7EA7\u7A0B\u5E8F\u52A0\u8F7D\u5668\u3002 BROM \u2192 SPL \u2192 U-Boot \u2192 Kernel SPL \u8FD0\u884C\u5728 SRAM \u4E2D\uFF0C\u5176\u6700\u91CD\u8981\u7684\u4EFB\u52A1\u6709\u4E24\u4E2A\uFF1A \u5B8C\u6210 DDR\uFF0C\u5E76\u4E14\u4F7F\u80FD Cache \u52A0\u8F7D\u548C\u9A8C\u8BC1 U-Boot...","topics/sdk/boot/uboot-aic-boot-image-format.html@@@AIC \u542F\u52A8\u955C\u50CF\u683C\u5F0F@@@ArtInChip BROM \u6240\u4F7F\u7528\u7684\u542F\u52A8\u955C\u50CF\u683C\u5F0F\u3002 \u8868 1 . AIC \u542F\u52A8\u955C\u50CF\u683C\u5F0F \u6570\u636E\u533A\u57DF \u6570\u636E\u5206\u5757 \u5B57\u6BB5 \u5B57\u8282 \u63CF\u8FF0 Signed Area Block1 (256B) Magic 4 \u7279\u5F81\u5B57\u7B26\u4E32\uFF0C\u56FA\u5B9A\u4E3A \u201DAIC \u201D Checksum 4 32 bit \u7D2F\u52A0\u548C\u6821\u9A8C\u7684\u6821\u9A8C\u503C\u3002\u5B89\u5168\u542F\u52A8\u65B9\u6848\u8BBE\u4E3A 0. Header version 4 \u672C\u6587\u4EF6\u5934\u7ED3\u6784\u7684\u7248\u672C\u53F7\uFF0C\u5F53\u524D\u7248\u672C\u4E3A v1.0...","topics/sdk/boot/uboot-chapter-image-burn.html@@@\u955C\u50CF\u70E7\u5F55@@@\u672C\u7AE0\u8282\u4E3B\u8981\u63CF\u8FF0 ArtInChip \u5E73\u53F0\u4E0A\u652F\u6301\u7684\u955C\u50CF\u5347\u7EA7\u548C\u70E7\u5F55\u65B9\u5F0F\u3002...","topics/sdk/boot/uboot-clock-drivers.html@@@Clock@@@\u672C\u7AE0\u8282\u63CF\u8FF0 ArtInChip \u5E73\u53F0\u7684 U-Boot \u65F6\u949F\u914D\u7F6E\u76F8\u5173\u5185\u5BB9\u3002 \u9A71\u52A8\u6846\u67B6 U-Boot \u9A71\u52A8\u6A21\u578B\u652F\u6301 Clock\uFF0CArtInChip \u5E73\u53F0\u4E2D Clock \u9A71\u52A8\u57FA\u4E8E\u8BE5\u6846\u67B6\u8FDB\u884C\u5B9E\u73B0\u3002 \u76F8\u5173\u914D\u7F6E\u4E3A\uFF1A CONFIG_CLK CONFIG_CLK_ARTINCHIP CONFIG_CLK_ARTINCHIP_CMU CONFIG_SPL_CLK_ARTINCHIP...","topics/sdk/boot/uboot-cmd-stage.html@@@\u547D\u4EE4\u884C\u9636\u6BB5@@@board_init_r \u51FD\u6570\u6700\u540E\u8FDB\u5165 run_main_loop \u6267\u884C Autoboot \u547D\u4EE4\u6216\u8005\u8FDB\u5165\u63A7\u5236\u53F0\u3002 board_init_r(); // common/board_r.c |-> run_main_loop(); // common/board_r.c |-> main_loop(); // common/main.c |-> cli_init(); // \u521D\u59CB\u5316 command...","topics/sdk/boot/uboot-code-relocate.html@@@\u4EE3\u7801\u91CD\u5B9A\u4F4D@@@\u901A\u5E38\u5185\u6838\u7684\u4EE3\u7801\u6BB5\u653E\u5728 DRAM \u7684\u5F00\u59CB\u4F4D\u7F6E\uFF0CU-Boot \u7684\u4EE3\u7801\u4F4D\u7F6E\u653E\u5230 DRAM \u7684\u672B\u7AEF\u3002 \u4F46\u662F\u7531\u4E8E\u4E0D\u540C\u9879\u76EE\u6240\u7528\u7684 DRAM \u5927\u5C0F\u4E0D\u4E00\u81F4\uFF0C\u4E3A\u4E86\u65B9\u4FBF\uFF0C\u5C06 U-Boot \u7684\u94FE\u63A5\u5730\u5740\u4E5F\u5B9A\u4E49\u5728 DRAM \u6BD4\u8F83\u524D\u9762\u7684\u56FA\u5B9A\u4F4D\u7F6E\u3002\u5728\u52A0\u8F7D U-Boot \u521D\u59CB\u5316\u5B8C DRAM \u4E4B\u540E\uFF0CU-Boot \u8BFB\u53D6\u5F53\u524D\u5E73\u53F0\u7684 DRAM \u5927\u5C0F\uFF0C \u7136\u540E\u5728\u52A0\u8F7D Kernel \u4E4B\u524D\u5C06\u81EA\u8EAB\u4EE3\u7801\u6BB5\u548C\u6570\u636E\u6BB5\u7B49\u4FE1\u606F\u91CD\u5B9A\u4F4D\u5230 DRAM...","topics/sdk/boot/uboot-core.html@@@\u542F\u52A8\u5185\u6838@@@\u672C\u7AE0\u8282\u4E3B\u8981\u4ECB\u7ECD\u4E0E\u542F\u52A8\u5185\u6838\u76F8\u5173\u7684\u547D\u4EE4\u548C\u5904\u7406\u6D41\u7A0B\u3002...","topics/sdk/boot/uboot-driver-support.html@@@\u9A71\u52A8\u652F\u6301@@@...","topics/sdk/boot/uboot-dts.html@@@DTS@@@ArtInChip \u5E73\u53F0\u4E0A\uFF0CU-Boot \u4E0E Kernel \u5171\u7528\u4E00\u4EFD DTS \u914D\u7F6E\uFF0C\u76EE\u524D DTB \u7684\u7F16\u8BD1\u653E\u5728 U-Boot \u9636\u6BB5\u8FDB\u884C\u3002\u9879\u76EE\u76F8\u5173\u7684 DTS \u6587\u4EF6\u5B58\u653E\u8DEF\u5F84\uFF1A target/ IC /common/*.dtsi target/ IC / Board /board.dts target/ IC / Board /board-u-boot.dtsi target/ IC / Board...","topics/sdk/boot/uboot-hardware-env.html@@@\u786C\u4EF6\u8FD0\u884C\u73AF\u5883@@@\u5728 U-Boot SPL \u8FD0\u884C\u4E4B\u524D\uFF0CBROM \u5DF2\u7ECF\u5BF9\u7CFB\u7EDF\u8FDB\u884C\u4E86\u57FA\u672C\u7684\u521D\u59CB\u5316\u3002 \u5BF9\u4E8E\u57FA\u672C\u786C\u4EF6\u6A21\u5757\uFF0C\u5728 CPU \u4E0A\u7535\u65F6\u9ED8\u8BA4\u8FDB\u884C\u521D\u59CB\u5316\uFF0C\u5177\u4F53\u5982\u4E0B\u8868\u6240\u793A\uFF1A \u8868 1 . \u57FA\u672C\u786C\u4EF6\u6A21\u5757\u72B6\u6001 \u540D\u5B57 \u9891\u7387 \u5907\u6CE8 AXI 24 MHz \u9ED8\u8BA4\u4F7F\u80FD AHB 60 MHz \u9ED8\u8BA4\u4F7F\u80FD APB0 24 MHz \u9ED8\u8BA4\u4F7F\u80FD APB1 24 MHz \u9ED8\u8BA4\u4F7F\u80FD CPU 24 MHz \u9ED8\u8BA4\u4F7F\u80FD SRAM 60 MHz \u9ED8\u8BA4\u4F7F\u80FD...","topics/sdk/boot/uboot-image-type.html@@@\u955C\u50CF\u7C7B\u578B@@@\u672C\u8282\u4ECB\u7ECD U-Boot \u4E2D\u6D89\u53CA\u5230\u7684\u5404\u79CD\u955C\u50CF\u7C7B\u578B\u3002 Image Image \u6587\u4EF6\u662F Linux \u7F16\u8BD1\u751F\u6210\u7684\u975E\u538B\u7F29\u955C\u50CF\u6587\u4EF6\uFF0C\u57FA\u4E8E ELF \u6587\u4EF6 vmlinux \u63D0\u53D6\u5F97\u5230\u3002 riscv64-unknown-linux-gnu-objcopy -O binary -O binary -R .note -R .note.gnu.build-id -R .comment -S vmlinux...","topics/sdk/boot/uboot-load-core.html@@@\u52A0\u8F7D\u5185\u6838@@@\u672C\u8282\u4ECB\u7ECD ArtInChip \u5E73\u53F0\u4ECE\u5B58\u50A8\u4ECB\u8D28\u4E2D\u52A0\u8F7D\u5185\u6838\u548C\u542F\u52A8\u7684\u6D41\u7A0B\u3002 U-Boot \u4E2D\u542F\u52A8\u6240\u9700\u7684\u6570\u636E\uFF0C\u4EE5\u53CA\u542F\u52A8\u5185\u6838\u901A\u8FC7\u547D\u4EE4\u884C\u6765\u5B9E\u73B0\uFF0C\u4E00\u7CFB\u5217\u7684\u547D\u4EE4\u7EC4\u6210\u542F\u52A8\u811A\u672C\u3002\u5728 ArtInChip \u7684\u65B9\u6848\u4E2D\uFF0C\u76F8\u5173\u7684\u542F\u52A8\u811A\u672C\u5728 env.txt \u73AF\u5883\u53D8\u91CF\u4E2D\u63D0\u4F9B\uFF0C\u5E76\u4E14\u6700\u7EC8\u7531\u53D8\u91CF autoboot= \u4E32\u5728\u4E00\u8D77\u3002 U-Boot \u5728\u6267\u884C\u81EA\u52A8\u542F\u52A8\u65F6\uFF0C\u9996\u5148\u8BFB\u53D6\u548C\u6267\u884C\u73AF\u5883\u53D8\u91CF bootcmd \u7684\u5185\u5BB9\uFF0C bootcmd \u88AB\u8BBE\u7F6E\u4E3A...","topics/sdk/boot/uboot-load-env-variables.html@@@\u73AF\u5883\u53D8\u91CF\u52A0\u8F7D@@@\u5982\u524D\u9762\u6240\u8FF0\uFF0C\u73AF\u5883\u53D8\u91CF\u7684\u5904\u7406\u6709\u4E24\u4E2A\u9636\u6BB5\uFF1A \u73AF\u5883\u53D8\u91CF\u521D\u59CB \u73AF\u5883\u53D8\u91CF\u8BFB\u53D6 \u5982\u4E0B\u9762\u7684\u8C03\u7528\u6D41\u7A0B\uFF0C env_init() \u5728 board_init_f() \u9636\u6BB5\u6267\u884C\uFF0C\u4F46\u5177\u4F53\u7684\u52A0\u8F7D\u8FC7\u7A0B \u5728 board_init_r() \u9636\u6BB5\u6267\u884C\u3002 reset // arch/riscv/cpu/start.S |-> save_boot_params //...","topics/sdk/boot/uboot-module.html@@@U-Boot@@@\u542F\u52A8\u652F\u6301\u7684\u57FA\u672C\u529F\u80FD\u4EE5\u53CA\u8FD0\u884C\u65F6\u7684\u57FA\u672C\u786C\u4EF6\u73AF\u5883\u3002...","topics/sdk/boot/uboot-parameter.html@@@\u542F\u52A8\u53C2\u6570@@@\u542F\u52A8\u6D41\u7A0B\u5206\u4E3A \u6B63\u5E38\u542F\u52A8 \u548C \u70E7\u5F55\u542F\u52A8 \u3002\u5728\u542F\u52A8\u8FC7\u7A0B\u4E2D\uFF0C\u4E0D\u540C\u7684\u542F\u52A8\u6D41\u7A0B\u4F20\u9012\u7684\u542F\u52A8\u53C2\u6570\u4E5F\u4E0D\u5C3D\u76F8\u540C\u3002\u672C\u8282\u4ECB\u7ECD\u4E86\u5404\u4E2A\u542F\u52A8\u6D41\u7A0B\u4E2D\u4F20\u9012\u7684\u542F\u52A8\u53C2\u6570\u3002 \u6B63\u5E38\u542F\u52A8\u6D41\u7A0B \u56FE 1 . \u6B63\u5E38\u542F\u52A8\u8FC7\u7A0B\u4E2D\u7684\u8DF3\u8F6C \u6B63\u5E38\u542F\u52A8\u8FC7\u7A0B\u8BE6\u7EC6\u4ECB\u7ECD\uFF1A BROM \u6839\u636E\u542F\u52A8\u65B9\u5F0F\u53BB\u5B9A\u4F4D SPL \u4F4D\u7F6E\uFF0C\u521D\u59CB\u5316\u5BF9\u5E94\u975E\u6613\u5931\u6027\u5B58\u50A8\u5668\uFF0C\u52A0\u8F7D SPL \u5230 SRAM \u4E0A\uFF0CBROM \u8FD0\u884C\u5728 M-Mode\u3002 SPL \u88AB\u6267\u884C\u3002 SPL PBP \u90E8\u5206\u4EE3\u7801\u521D\u59CB\u5316...","topics/sdk/boot/uboot-partition-config.html@@@\u914D\u7F6E\u542F\u52A8\u5206\u533A@@@\u672C\u8282\u63CF\u8FF0\u4E0D\u540C\u5B58\u50A8\u4ECB\u8D28\u7684\u9ED8\u8BA4\u5206\u533A\u65B9\u6848\uFF0C\u4EC5\u6D89\u53CA\u542F\u52A8\u76F8\u5173\u7684\u5206\u533A\u3002\u5E94\u7528\u76F8\u5173\u7684\u5206\u533A\u4E0D\u540C\u7684\u65B9\u6848\u4F1A\u6709\u4E0D\u540C\u7684\u9009\u62E9\uFF0C\u6B64\u8282\u672A\u505A\u63CF\u8FF0\u3002 \u5728 ArtInChip \u7684\u65B9\u6848\u4E2D\uFF1A env.txt \u53EF\u4EE5\u914D\u7F6E\u5206\u533A\u8868\u4FE1\u606F\uFF0C\u5305\u62EC\u5404\u5206\u533A\u5728\u5B58\u50A8\u4ECB\u8D28\u4E2D\u7684\u4F4D\u7F6E\u548C\u5927\u5C0F\u3002 env.txt \u901A\u5E38\u4F4D\u4E8E target/<ic>/common/ \u3002 \u5404\u9879\u76EE\u5BF9\u5E94\u7684 image_cfg.json \u4E2D\u8BBE\u7F6E\u5206\u533A\u8981\u70E7\u5F55\u7684\u5185\u5BB9\u3002 MMC \u5206\u533A\u914D\u7F6E MMC \u5305\u62EC SD...","topics/sdk/boot/uboot-post-init.html@@@\u540E\u521D\u59CB\u5316@@@\u540E\u521D\u59CB\u5316\u9636\u6BB5\u662F\u4EE3\u7801\u91CD\u5B9A\u4F4D\u4E4B\u540E\u6267\u884C\u7684\u521D\u59CB\u5316\u6D41\u7A0B\uFF0C\u7531\u4E0B\u9762\u7684 board_init_r \u5F00\u59CB\u3002 _start // arch/riscv/cpu/start.S |-> save_boot_params // arch/riscv/mach-artinchip/lowlevel_init.S |-> ... |-> board_init_f(); // common/board_f.c |->...","topics/sdk/boot/uboot-pre-init.html@@@\u524D\u521D\u59CB\u5316@@@U-Boot \u7684\u524D\u521D\u59CB\u5316\u662F\u6307\u6267\u884C\u4EE3\u7801\u91CD\u5B9A\u4F4D\u4E4B\u524D\u7684\u521D\u59CB\u5316\uFF0C\u6B64\u65F6 U-Boot \u5728 DRAM \u7684\u524D\u7AEF\u7A7A\u95F4\u6267\u884C\u3002 \u524D\u521D\u59CB\u5316\u5206\u4E3A\u4E24\u4E2A\u9636\u6BB5\uFF1A \u82AF\u7247\u67B6\u6784\u76F8\u5173\u7684\u521D\u59CB\u5316\u4EE3\u7801 \u677F\u5B50\u76F8\u5173\u7684\u524D\u521D\u59CB\u5316\u4EE3\u7801 \u9636\u6BB5\u4E00\uFF1A \u82AF\u7247\u67B6\u6784\u76F8\u5173\u521D\u59CB\u5316 \u8FD9\u4E2A\u9636\u6BB5\u4E3B\u8981\u662F\u5BF9 CPU \u8FDB\u884C\u4E86\u57FA\u672C\u7684\u521D\u59CB\u5316\uFF0C\u5E76\u4E14\u5C06\u4E0A\u4E00\u7EA7\u5F15\u5BFC\u7A0B\u5E8F\u4F20\u9012\u8FC7\u6765\u7684\u53C2\u6570\u4FDD\u5B58\u8D77\u6765\u3002 ArtInChip \u5E73\u53F0\u4E0A\u5B9E\u73B0\u4E86\u5BF9\u5E94\u7684 save_boot_params...","topics/sdk/boot/uboot-riscv-spl.html@@@RISCV SPL@@@SPL BSS \u7684\u914D\u7F6E CONFIG_SPL_TEXT_BASE= 0x103100 CONFIG_SPL_SIZE_LIMIT= 0x10000 # define CONFIG_SPL_MAX_SIZE (CONFIG_SPL_SIZE_LIMIT) # define CONFIG_SPL_STACK ( D21x _SRAM_BASE + D21x _SRAM_SIZE) # define...","topics/sdk/boot/uboot-signature-verify.html@@@\u5B89\u5168\u6821\u9A8C@@@U-Boot \u539F\u751F\u4EE3\u7801\u4EC5\u652F\u6301 FIT Image \u7684\u7B7E\u540D\u6821\u9A8C\u3002 \u5728 do_bootm_states() \u7684 BOOTM_STATE_FINDOS \u9636\u6BB5\uFF0C\u7A0B\u5E8F\u68C0\u67E5\u5F53\u524D\u5185\u6838\u955C\u50CF\u7684\u683C\u5F0F\uFF0C \u5982\u679C\u662F FIT Image \u683C\u5F0F\uFF0C\u5219\u6839\u636E FIT Image \u7684\u914D\u7F6E\uFF0C\u52A0\u8F7D\u5BF9\u5E94\u7684\u5185\u6838\u955C\u50CF\u3002 bootm_find_os(); // common/bootm.c |-> boot_get_kernel(); //...","topics/sdk/boot/uboot-stage.html@@@U-Boot \u9636\u6BB5@@@U-Boot \u5728 ArtInChip \u5E73\u53F0\u4E0A\u627F\u62C5\u4E24\u4E2A\u529F\u80FD\u89D2\u8272\uFF1A \u5F15\u5BFC\u5185\u6838 \u955C\u50CF\u70E7\u5F55 \u672C\u7AE0\u91CD\u70B9\u63CF\u8FF0 U-Boot \u8FD9\u4E00\u7EA7\u5F15\u5BFC\u7A0B\u5E8F\u7684\u4E3B\u8981\u542F\u52A8\u6D41\u7A0B\u4EE5\u53CA\u5728\u4E0D\u540C\u542F\u52A8\u4ECB\u8D28\u4E0B\u7684\u5904\u7406\u3002 \u955C\u50CF\u70E7\u5F55\u529F\u80FD\u5C06\u5728 \u955C\u50CF\u70E7\u5F55 \u7AE0\u8282\u8FDB\u884C\u63CF\u8FF0\u3002...","topics/sdk/boot/usb-burn.html@@@U \u76D8\u5347\u7EA7@@@\u82AF\u7247\u652F\u6301\u901A\u8FC7 U \u76D8\u7684 FAT32 \u6587\u4EF6\u7CFB\u7EDF\u8FDB\u884C\u5347\u7EA7\u3002\u70E7\u5F55\u524D\u987B\u6EE1\u8DB3\u4EE5\u4E0B\u8981\u6C42\uFF1A \u5BF9\u82AF\u7247\u4E0E\u677F\u5B50\u7684\u8981\u6C42\uFF1A \u677F\u5B50\u4F7F\u7528 USB \u63A5\u53E3\u3002 \u82AF\u7247\u70E7\u5F55\u8FC7\u955C\u50CF\uFF0C\u4E14\u955C\u50CF\u652F\u6301 U \u76D8\u5347\u7EA7 \u5BF9 U \u76D8 \u5361\u7684\u8981\u6C42\uFF1A U \u76D8\u8981\u6C42\u53EA\u6709\u4E00\u4E2A\u5206\u533A U \u76D8\u683C\u5F0F\u5316\u4E3A FAT32 \u6587\u4EF6\u7CFB\u7EDF\uFF0C\u6CE8\u610F\u4E0D\u662F exFAT\u3001\u6216\u8005 FAT16 U \u76D8\u6700\u597D\u4E3A\u4E13\u7528 U \u76D8\uFF0C\u91CC\u9762\u4E0D\u8981\u653E\u7F6E\u592A\u591A\u5176\u4ED6\u6587\u4EF6 \u6267\u884C\u6B65\u9AA4\uFF1A \u62F7\u8D1D\u5728\u7F16\u8BD1\u8F93\u51FA\u76EE\u5F55(images)...","topics/sdk/boot/userid-burn-test.html@@@\u6D4B\u8BD5\u6307\u5357@@@U-Boot \u6D4B\u8BD5\u547D\u4EE4 U-Boot \u4E2D\u901A\u8FC7\u547D\u4EE4\u884C\u63D0\u4F9B\u4E86 UserID \u7684\u589E\u5220\u6539\u67E5\u7B49\u64CD\u4F5C\uFF0C\u5177\u4F53\u547D\u4EE4\u7684\u4F7F\u7528\u53EF\u901A\u8FC7 help \u547D\u4EE4\u67E5\u770B\uFF1A userid help \u4ECE UserID \u5206\u533A\u52A0\u8F7D\u548C\u521D\u59CB\u5316 UserID \u6570\u636E\uFF1A userid init \u67E5\u770B\u5F53\u524D\u7684 ID \u5217\u8868\uFF1A userid list \u5199\u5165\u65B0 ID\uFF1A userid writehex name offset data \u793A\u4F8B\uFF1A userid...","topics/sdk/boot/userid-burn.html@@@UserID \u70E7\u5F55@@@...","topics/sdk/boot/userid-confuguration.html@@@\u4F7F\u7528\u914D\u7F6E@@@U-Boot \u7F16\u8BD1\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 uboot \u914D\u7F6E\u754C\u9762\uFF1A make uboot-menuconfig \u52FE\u9009\u4E0B\u5217\u9009\u9879\u4F7F\u80FD UserID \u529F\u80FD\uFF1A [*] UserID support for ArtInChip ---> \u786E\u8BA4\u76F8\u5173\u7684 UserID \u5206\u533A\u4F4D\u7F6E\u4E0E\u5B9E\u9645\u5339\u914D\uFF1A --- UserID support for ArtInChip Location of UserID...","topics/sdk/boot/userid-intro.html@@@\u6A21\u5757\u4ECB\u7ECD@@@\u529F\u80FD\u7B80\u4ECB UserID \u662F\u6307\u5382\u5546\u5728\u91CF\u4EA7\u8FC7\u7A0B\u4E2D\u70E7\u5F55\u7684\u81EA\u5B9A\u4E49 ID \u6570\u636E\uFF0C\u6BD4\u5982\uFF1A SN \u5E8F\u5217\u53F7 MAC \u5730\u5740 \u5176\u4ED6\u901A\u8FC7\u6307\u5B9A\u540D\u5B57\u7D22\u5F15\u7684\u6570\u636E \u8FD9\u4E9B\u4FE1\u606F\u53EF\u4EE5\u5728\u5DE5\u5382\u751F\u4EA7\u8FC7\u7A0B\u4E2D\u4F7F\u7528 AiBurnID \u5DE5\u5177\u8FDB\u884C\u70E7\u5F55\uFF0C\u5E76\u4E14\u5728\u5B58\u50A8\u5728 \u201Cuserid\u201D \u5206\u533A\u3002 UserID \u5206\u533A\u652F\u6301\u5728\u70E7\u5F55\u5B8C\u6210\u4E4B\u540E\u8FDB\u884C\u9501\u5B9A\u529F\u80FD\uFF0C\u4E00\u65E6\u9501\u5B9A\uFF0C\u542F\u52A8\u8FC7\u7A0B\u4E2D\u4E0D\u518D\u8FDB\u5165 UserID \u70E7\u5F55\u6A21\u5F0F\u3002 \u6CE8\u89E3 ID \u540D\u5B57\u53EF\u4EE5\u81EA\u5B9A\u4E49\uFF0C\u4F46\u662F\u4E0D\u80FD\u91CD\u590D ID...","topics/sdk/bringup/bringup-back-light-config.html@@@\u80CC\u5149\u914D\u7F6E@@@\u5982\u679C\u6CA1\u6709\u8C03\u8282\u80CC\u5149\u4EAE\u5EA6\u9700\u6C42\uFF0C\u4EC5\u4EC5\u662F\u4EAE\u6216\u9ED1\u5C4F\uFF0C\u5219\u7528 GPIO \u63A7\u5236\u8F83\u4E3A\u7B80\u5355\uFF0C\u53EA\u9700\u8981\u5728 dts panel \u8282\u70B9\u4E2D\u4E00\u4E2A\u5730\u65B9\u914D\u7F6E\u597D\u5C31\u53EF\u4EE5\uFF0C\u5982\u4E0B\uFF1A \u6CE8\uFF1A \u5C4F\u5E55\u7684\u8C03\u8BD5\u5C3D\u91CF\u5728 kernel \u4E2D\u5B8C\u6210\uFF0C\u7136\u540E\u518D\u79FB\u690D\u5230 uboot \u4E2D\u3002 panel_xxx { compatible = "artinchip,aic-general-lvds-panel" ; status = "okay" ; enable-gpios...","topics/sdk/bringup/bringup-boot.html@@@\u5237\u673A@@@\u4F7F\u7528\u5355\u673A\u5DE5\u5177 AiBurn \u53EF\u4EE5\u8FDB\u884C\u5237\u673A\u64CD\u4F5C\u3002\u5B89\u88C5 AiBurn \u5DE5\u5177\u65F6\uFF0C\u9ED8\u8BA4\u4F1A\u5B89\u88C5\u597D\u8BBE\u5907\u7684\u9A71\u52A8\uFF0C\u4E00\u822C\u4E0D\u7528\u7279\u6B8A\u5904\u7406\u3002\u5237\u673A\u6D41\u7A0B\u8BE6\u7EC6\u63CF\u8FF0\u5982\u4E0B\uFF1A \u9009\u62E9\u56FA\u4EF6\u3002 \u7F16\u8BD1\u7CFB\u7EDF\u4F1A\u6839\u636E\u5B58\u50A8\u4ECB\u8D28\u7684\u4E0D\u540C\u800C\u751F\u6210\u4E0D\u540C\u540D\u79F0\u7684\u56FA\u4EF6\uFF0C\u9700\u8981\u6839\u636E\u5F00\u53D1\u677F\u578B\u53F7\u9009\u62E9\u6B63\u786E\u7684\u56FA\u4EF6\uFF0C\u8BE6\u60C5\u53EF\u67E5\u770B\u8BE6\u60C5\u53EF\u67E5\u770B \u56FA\u4EF6\u7F16\u8BD1 \u3002 \u6CE8\uFF1A \u5728\u5DE5\u7A0B\u76EE\u5F55\u4E0B\u7684 image_cfg.json \u6587\u4EF6\u4E2D\uFF0C\u53EF\u4EE5\u5B9A\u4E49\u6587\u4EF6\u7248\u672C\u53F7\u4FE1\u606F\u3002 \u8FDB\u5165 \u5237\u673A\u6A21\u5F0F \u3002 PC \u73AF\u5883\u76D1\u6D4B USB...","topics/sdk/bringup/bringup-debug-ports-configuration.html@@@\u8C03\u8BD5\u914D\u7F6E@@@\u8C03\u8BD5\u7AEF\u53E3\u5728 Bringup \u8FC7\u7A0B\u4E2D\u975E\u5E38\u91CD\u8981\uFF0C\u56E0\u6B64\u6709\u5FC5\u8981\u5148\u914D\u7F6E\u597D\u8C03\u8BD5\u4FE1\u606F\u3002 \u8C03\u8BD5\u7AEF\u53E3\u5305\u62EC\u4EE5\u4E0B\u51E0\u4E2A\u914D\u7F6E\u53C2\u8003\uFF0C\u4EE5 demo128_nand \u5DE5\u7A0B\u4E3A\u4F8B\uFF0C \u4F7F\u7528 uart0 \u7AEF\u53E3\u4F5C\u4E3A\u8C03\u8BD5\u53E3\uFF1A board.dts &uart0 { pinctrl-names = "default" ; pinctrl- 0 = <&uart0_pins_a>; //\u5728...","topics/sdk/bringup/bringup-demo.html@@@Demo@@@LVGL \u7F16\u8BD1 \u5982\u679C\u8981\u8FD0\u884C LVGL demo\uFF1A \u5728 Luban \u7CFB\u7EDF\u901A\u8FC7 make m \u547D\u4EE4\u6253\u5F00 Luban \u914D\u7F6E\u754C\u9762\uFF1A ArtInChip packages Sample code [*] test-lvgl ---> \u6253\u5F00 test-lvgl \u540E\u9700\u8981\u7684\u4E09\u65B9\u5E93\u4F1A\u81EA\u52A8\u52A0\u8F7D\u548C\u7F16\u8BD1\u3002 \u9009\u62E9\u4EE5\u4E0B\u4EFB\u610F\u65B9\u5F0F\u8FD0\u884C\u4E0B\u5217\u4E0D\u540C\u7684\u811A\u672C\uFF1A \u81EA\u52A8\u8FD0\u884C\uFF1A\u811A\u672C\u4E3A /etc/init.d/S00lvgl \u624B\u52A8\u8FD0\u884C\uFF1A\u811A\u672C\u4E3A...","topics/sdk/bringup/bringup-display-debug-guide.html@@@\u5C4F\u5E55\u8C03\u8BD5@@@\u5C4F\u5E55\u7684\u8C03\u8BD5\u5C3D\u91CF\u5728 kernel \u4E2D\u5B8C\u6210\uFF0C\u7136\u540E\u518D\u79FB\u690D\u5230 uboot \u4E2D\u3002...","topics/sdk/bringup/bringup-display-screen-configuration.html@@@\u5C4F\u5E55\u914D\u7F6E@@@...","topics/sdk/bringup/bringup-ic-configuration.html@@@IC \u914D\u7F6E@@@D21x \u662F\u4E00\u4E2A IC \u7CFB\u5217\uFF0C \u662F\u4E0D\u540C\u7684\u5F15\u811A\u6570\u548C\u4E0D\u540C\u7684 ddr \u5BB9\u91CF\u7684\u7EC4\u5408\uFF0C\u56E0\u6B64\u5728\u8FDB\u884C Bringup \u7684\u65F6\u5019\u8981\u786E\u4FDD\u914D\u7F6E\u7684\u6B63\u786E\u3002 \u5185\u5B58\u914D\u7F6E \u578B\u53F7\u533A\u5206 D21XXB\uFF1A64M ddr2\uFF0C\u8B6C\u5982 D211BB D21XXC\uFF1A128M ddr3\uFF0C \u8B6C\u5982 D211BC, D213EC \u6CE8\uFF1A \u76EE\u524D SDK \u53EF\u4EE5\u81EA\u52A8 turning ddr \u7684\u578B\u53F7\u5E76\u8FDB\u884C\u521D\u59CB\u5316\uFF0C\u4F46\u5728 board.dts...","topics/sdk/bringup/bringup-lvds-display-config.html@@@LVDS@@@LVDS \u5C4F\u7684\u8C03\u8BD5\u548C RGB \u7C7B\u4F3C\uFF0C\u53EA\u9700\u8981\u628A\u89C4\u683C\u4E66\u4E2D\u6240\u63CF\u8FF0\u7684\u65F6\u5E8F\u548C\u89C4\u683C\u53C2\u6570\u52A0\u5165\u76F8\u5E94\u7684\u914D\u7F6E\u6587\u4EF6\u5373\u53EF\uFF0C\u4E5F\u4E0D\u9700\u8981\u989D\u5916\u7684\u9A71\u52A8\u7A0B\u5E8F\u3002 uboot \u914D\u7F6E \u5728 Luban \u6839\u76EE\u5F55\u4E0B\u6267\u884C make um \uFF0C\u8FDB\u5165 uboot \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF0C\u4F7F\u80FD\u663E\u793A\u6A21\u5757\u9A71\u52A8\uFF1A Device Drivers Graphics support ArtInChip Graphics ---> [*] Enable ArtInChip...","topics/sdk/bringup/bringup-memory-config.html@@@\u5B58\u50A8\u914D\u7F6E@@@\u5B58\u50A8\u914D\u7F6E\u662F\u7F16\u8BD1\u7684\u56FA\u4EF6\u662F\u5426\u53EF\u5237\u673A\u7684\u5173\u952E\u6B65\u9AA4\uFF0C\u4F46\u5B58\u50A8\u7684\u66F4\u6362\u8981\u4FEE\u6539\u7684\u5730\u65B9\u8F83\u591A\uFF0C\u5EFA\u8BAE\u6309\u7167\u73B0\u6709\u5DE5\u7A0B\u4EFF\u5199\u9700\u8981 Bringup \u7684\u5F00\u53D1\u677F\u3002 SPI NAND \u5B58\u50A8\u914D\u7F6E SPI NAND \u5B58\u50A8\u914D\u7F6E\u6B65\u9AA4\u5982\u4E0B\uFF1A \u914D\u7F6E U-Boot \u4EE5\u652F\u6301\u7279\u5B9A\u7684 SPI NAND \u578B\u53F7\uFF0C\u786E\u8BA4\u5F00\u53D1\u677F\u7684\u578B\u53F7\u88AB\u9009\u4E2D\u652F\u6301\u3002 \u6CE8\uFF1A kernel \u5206\u533A\u6BD4\u8F83\u5927\uFF0C\u9ED8\u8BA4\u6253\u5F00\u4E86 SDK \u652F\u6301\u7684\u6240\u6709\u578B\u53F7\uFF0C\u4E0D\u7528\u9009\u62E9\u3002 \u67E5\u770B...","topics/sdk/bringup/bringup-mipi-display-config.html@@@MIPI@@@\u6BCF\u4E00\u6B3E MIPI \u5C4F\u90FD\u9700\u8981\u4E00\u4E2A\u72EC\u7ACB\u7684\u9A71\u52A8\u7A0B\u5E8F\uFF0C\u56E0\u6B64\u8C03\u8BD5 MIPI \u5C4F\u65F6\uFF0C\u4E0D\u4EC5\u9700\u8981\u5728 DTS \u4E2D\u8BBE\u7F6E\u53C2\u6570\uFF0C\u8FD8\u9700\u8981\u5728 kernel \u548C uboot \u4E2D\u6DFB\u52A0\u5C4F\u5E55\u6240\u5BF9\u5E94\u7684\u9A71\u52A8\uFF1A uboot \u914D\u7F6E \u5728 Luban \u6839\u76EE\u5F55\u4E0B\u6267\u884C make um \uFF0C\u8FDB\u5165 uboot \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF0C\u4F7F\u80FD\u663E\u793A\u6A21\u5757\u9A71\u52A8\uFF1A Device Drivers Graphics support ArtInChip Graphics --->...","topics/sdk/bringup/bringup-rgb-display-config.html@@@RGB@@@\u914D\u7F6E Uboot \u5728 Luban \u6839\u76EE\u5F55\u4E0B\u6267\u884C make um \uFF0C\u8FDB\u5165 uboot \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF0C\u4F7F\u80FD\u663E\u793A\u6A21\u5757\u9A71\u52A8\uFF1A Device Drivers Graphics support ArtInChip Graphics ---> [*] Enable ArtInChip Video Support [*] ArtInChip display rgb support [ ] ArtInChip...","topics/sdk/bringup/chapter-bringup.html@@@BringUp@@@\u5728\u786C\u4EF6\u4E0A\u7535\u540E\u5FEB\u901F\u521D\u59CB\u5316\u7CFB\u7EDF\uFF0C\u4E3A\u64CD\u4F5C\u7CFB\u7EDF\u7684\u542F\u52A8\u51C6\u5907\u597D\u5FC5\u8981\u7684\u786C\u4EF6\u73AF\u5883\u3002...","topics/sdk/bringup/lite-bringup-prepare.html@@@\u51C6\u5907\u5DE5\u4F5C@@@\u4E3A\u4E86\u8BA9\u540E\u7EED\u7684\u5F00\u53D1\u5DE5\u4F5C\u66F4\u4FBF\u6377\uFF0C\u5728\u5F00\u59CB\u8FDB\u884C\u5F00\u53D1\u677F Bringup \u4E4B\u524D\uFF0C\u9700\u505A\u597D\u4E0B\u5217\u76F8\u5173\u51C6\u5907\u5DE5\u4F5C\u3002 \u6CE8\uFF1A \u7F16\u8BD1\u73AF\u5883\u7684\u642D\u5EFA\u53EF\u4EE5\u53C2\u8003 SDK \u7F16\u8BD1 \u3002 \u521B\u5EFA Git \u4ED3\u5E93 \u5982\u679C\u4F7F\u7528\u4E86 git clone \u83B7\u53D6\u7684\u4EE3\u7801\uFF0C\u5219\u8868\u793A\u5DF2\u7ECF\u5B58\u5728 Git \u4ED3\u5E93\uFF0C\u53EF\u4EE5\u7565\u8FC7\u6B64\u6B65\u3002 \u5982\u679C\u4E0D\u662F\u76F4\u63A5\u4E0B\u8F7D\u7684\u4EE3\u7801\uFF0C\u5219\u9700\u8981\u624B\u52A8\u521B\u5EFA\u4E00\u4E0B\u672C\u5730 Git \u4ED3\u5E93\uFF0C\u5177\u4F53\u64CD\u4F5C\u5982\u4E0B\uFF1A sudo apt-get install git //\u5B89\u88C5 Git...","topics/sdk/burnsys/burner_offline.html@@@\u79BB\u7EBF\u70E7\u5F55@@@\u79BB\u7EBF\u70E7\u5F55\uFF0C\u662F\u6307\u4F7F\u7528\u70E7\u5F55\u5668\u70E7\u5F55\u5B58\u50A8\u5668\u4EF6\uFF0C\u5305\u62EC SPI NOR \u548C SPI NAND\u3002\u672C\u8282\u6F14\u793A\u4F7F\u7528\u7855\u98DE SP328 \u70E7\u5F55\u5668\u8FDB\u884C\u70E7\u5F55\u7684\u8BE6\u7EC6\u6D41\u7A0B\u548C\u6B65\u9AA4\uFF0C\u4EE5 D21x \u5E73\u53F0\u7684\u955C\u50CF\u70E7\u5F55\u4E3A\u4F8B\u3002 \u6CE8\uFF1A \u79BB\u7EBF\uFF08\u8131\u673A\uFF09\u70E7\u5F55\u4F1A\u7834\u574F\u6389\u56FA\u4EF6\u7684\u52A0\u5BC6\u4FE1\u606F\u3002\u5982\u679C\u5F00\u542F\u4E86\u5B89\u5168\u542F\u52A8\uFF0CSPIENC \u7B49\u52A0\u5BC6\u65B9\u6848\uFF0C\u5219\u4E0D\u5F97\u8FDB\u884C\u8131\u673A\u70E7\u5F55\u3002 \u6CE8\uFF1A \u6267\u884C\u672C\u8282\u6B65\u9AA4\u548C\u6D41\u7A0B\u4E4B\u524D\uFF0C\u786E\u4FDD\u5DF2\u5B89\u88C5\u7855\u98DE SP328...","topics/sdk/burnsys/burnsys_user_guide.html@@@\u7CFB\u7EDF\u66F4\u65B0@@@\u672C\u8282\u4ECB\u7ECD\u7CFB\u7EDF\u66F4\u65B0\u7684\u65B9\u5F0F\u53CA\u5176\u5177\u4F53\u6D41\u7A0B\u3002 \u4E86\u89E3\u7CFB\u7EDF\u66F4\u65B0\u7684\u6982\u5FF5\u548C\u9014\u5F84\u6709\u52A9\u4E8E\u7406\u89E3\u7CFB\u7EDF\u66F4\u65B0\u7684\u5177\u4F53\u6D41\u7A0B\u5E76\u9009\u62E9\u5408\u9002\u7684\u5347\u7EA7\u65B9\u5F0F\u3002 \u7CFB\u7EDF\u66F4\u65B0\u6D89\u53CA\u4EE5\u4E0B\u6982\u5FF5\uFF1A \u5237\u673A \uFF1A\u501F\u52A9\u4E13\u95E8\u7684\u5237\u673A\u5DE5\u5177\uFF0C\u6E05\u9664\u5B58\u50A8\u4ECB\u8D28\u4E0A\u7684\u6240\u6709\u7684\u6570\u636E\uFF0C \u5E76\u91CD\u65B0\u8FDB\u884C\u5B58\u50A8\u5206\u533A\u3001\u574F\u5757\u7BA1\u7406\u3001\u56FA\u4EF6\u5199\u5165\u7B49\u4E0D\u53EF\u9006\u64CD\u4F5C\u3002 \u5237\u673A\u53EF\u80FD\u5177\u6709\u5982\u4E0B\u98CE\u9669\uFF1A \u5BFC\u81F4\u7528\u6237\u6240\u6709\u6570\u636E\u4E22\u5931\u3002 \u4E00\u822C\u4EC5\u5728\u5DE5\u7A0B\u8C03\u8BD5\u3001\u751F\u4EA7\u65F6\u4F7F\u7528\uFF0C\u7528\u6237\u673A\u9700\u614E\u7528\u3002 \u5C3D\u7BA1 AiBurn...","topics/sdk/burnsys/flow.html@@@\u7CFB\u7EDF\u66F4\u65B0\u6D41\u7A0B@@@\u7CFB\u7EDF\u66F4\u65B0\u6D41\u7A0B\u56E0\u4EA7\u54C1\u548C\u5E73\u53F0\u800C\u5F02\uFF0C\u5173\u4E8E\u5404\u4E2A\u4EA7\u54C1\u5E73\u53F0\u6240\u652F\u6301\u7684\u66F4\u65B0\u65B9\u5F0F\uFF0C\u53EF\u67E5\u770B \u5E73\u53F0\u5347\u7EA7\u65B9\u5F0F \u3002 \u5237\u673A\u6A21\u5F0F \u5F00\u53D1\u677F\u53EA\u6709\u8FDB\u5165\u5230\u5237\u673A\u6A21\u5F0F\u624D\u80FD\u8FDB\u884C\u5237\u673A\u64CD\u4F5C\uFF0C\u4F7F\u7528\u4E0B\u5217\u4EFB\u610F\u65B9\u6CD5\u53EF\u8FDB\u5165\u5237\u673A\u6A21\u5F0F\uFF1A \u7A7A\u7247\u76F4\u63A5\u8FDB\u5165\uFF1A\u5F00\u53D1\u677F\u4E0A\u5B58\u50A8\u4ECB\u8D28\u4E3A\u7A7A\u7247\uFF0C\u5219\u4E0A\u7535\u76F4\u63A5\u8FDB\u5165\u5237\u673A\u6A21\u5F0F\u3002 \u77ED\u8DEF\u70E7\u5F55\u5F15\u811A\uFF1A\u77ED\u8DEF\u70E7\u5F55\u5F15\u811A\uFF08PA0\uFF09\u5230\u5730\uFF0C\u5219\u4E0A\u7535\u76F4\u63A5\u8FDB\u5165\u5237\u673A\u6A21\u5F0F\u3002 \u6309\u4F4F\u5237\u673A\u952E\uFF1A\u5982\u679C\u5F00\u53D1\u677F\u6709\u5237\u673A\u6309\u952E\uFF0C\u5219\u6309\u4F4F\u5237\u673A\u952E\u4E0A\u7535\u6216\u8005...","topics/sdk/burnsys/medium.html@@@\u7CFB\u7EDF\u66F4\u65B0\u5A92\u4ECB@@@SD \u5361 \uFF1ASD \u5361\u4F5C\u4E3A\u5B58\u50A8\u4ECB\u8D28\u5B58\u653E\u8981\u66F4\u65B0\u7684\u56FA\u4EF6\u66F4\u65B0\u7CFB\u7EDF USB \u7EBF \uFF1A\u8BBE\u5907\u901A\u8FC7 USB \u7EBF\u548C\u8BA1\u7B97\u673A\u76F8\u8FDE\uFF0C\u901A\u8FC7\u8BA1\u7B97\u673A\u4E0A\u7684\u5237\u673A\u5DE5\u5177\uFF1AAiBurn \u66F4\u65B0\u7CFB\u7EDF U \u76D8 \uFF1AU \u76D8\u4F5C\u4E3A\u5B58\u50A8\u4ECB\u8D28\u5B58\u653E\u8981\u66F4\u65B0\u7684\u56FA\u4EF6\u66F4\u65B0\u7CFB\u7EDF \u7F51\u7EDC\uFF1A\u901A\u8FC7\u7F51\u7EDC\uFF08\u6709\u7EBF\u3001\u65E0\u7EBF\u3001CAN \u7B49\uFF09\u7684\u65B9\u5F0F\u4E0B\u8F7D\u5347\u7EA7\u5305\u5230\u672C\u5730\uFF0C\u518D\u66F4\u65B0\u7CFB\u7EDF...","topics/sdk/burnsys/sdcard.html@@@SD \u5361@@@\u4F5C\u4E3A\u4E00\u79CD\u901A\u7528\u5B58\u50A8\u4ECB\u8D28\uFF0CSD \u5361\u5728 Luban \u7684\u5237\u673A\u7CFB\u7EDF\u4E2D\u6709\u4E09\u79CD\u5DE5\u4F5C\u6A21\u5F0F\u3002 \u5236\u4F5C\u542F\u52A8\u5361 \u4F7F\u7528 Luban SDK \u65F6\uFF0C\u53EF\u4EE5\u5C06 SD \u5361\u4F5C\u4E3A\u4E00\u79CD\u901A\u7528\u5B58\u50A8\u8BBE\u5907\uFF0C\u6765\u521B\u5EFA\u7CFB\u7EDF\u5206\u533A\u548C\u5B58\u50A8\u7CFB\u7EDF\u6587\u4EF6\u3002\u6B64\u65F6\uFF0C\u9700\u8981\u901A\u8FC7 AiBurn \u5236\u4F5C\u4E00\u5F20\u542F\u52A8\u5361\uFF0C\u5E76\u5C06\u5176\u63D2\u5230\u5F00\u53D1\u677F\u540E\u4E0A\u7535\u542F\u52A8\u5373\u53EF\u3002 \u4EE5\u7BA1\u7406\u5458\u8EAB\u4EFD\u8FD0\u884C AiBurn \u5237\u673A\u5DE5\u5177\u3002 \u5236\u4F5C\u542F\u52A8\u5361\u65F6\u5FC5\u987B\u5F00\u542F\u7BA1\u7406\u5458\u6743\u9650\u3002 \u6253\u5F00 \u5236\u4F5C\u542F\u52A8\u5361 \u6807\u7B7E\u9875\u3002 \u5728 SD \u5361...","topics/sdk/burnsys/statis.html@@@\u5E73\u53F0\u5347\u7EA7\u65B9\u5F0F@@@\u8868 1 . D21x \u529F\u80FD USB \u7EBF \u4E32\u53E3\u7EBF SD \u5361 U \u76D8 \u5237\u673A \u652F\u6301 \u4E0D\u652F\u6301 \u652F\u6301 \u4E0D\u652F\u6301 \u5347\u7EA7 \u652F\u6301 \u4E0D\u652F\u6301 \u652F\u6301 \u652F\u6301 \u8868 2 . D13x \u529F\u80FD USB \u7EBF \u4E32\u53E3\u7EBF SD \u5361 U \u76D8 \u5237\u673A \u652F\u6301 \u652F\u6301 \u652F\u6301 \u652F\u6301 \u5347\u7EA7 \u652F\u6301 \u652F\u6301 \u652F\u6301 \u652F\u6301 \u8868 3 . G73x \u529F\u80FD USB \u7EBF \u4E32\u53E3\u7EBF SD \u5361 U \u76D8 \u5237\u673A \u652F\u6301 \u652F\u6301 \u652F\u6301 \u652F\u6301 \u5347\u7EA7 \u652F\u6301 \u4E0D\u652F\u6301 \u652F\u6301 \u652F\u6301 \u8868 4...","topics/sdk/burnsys/uart.html@@@\u4E32\u53E3\u7EBF@@@\u4E32\u53E3\u7EBF\u53EF\u4EE5\u501F\u52A9 AiBurn \u8FDB\u884C\u5237\u673A\uFF0C\u4F46\u5177\u6709\u4E0B\u5217\u9650\u5236\uFF1A \u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u4E32\u53E3\u70E7\u5F55\u901F\u5EA6\u6BD4\u8F83\u6162\uFF0C\u70E7\u5F55\u901F\u5EA6\u5728\u51E0\u4E2A\u5230\u51E0\u5341\u4E2A KB \u4E4B\u95F4\u3002 \u4F7F\u7528\u666E\u901A\u7684 USB \u8F6C\u4E32\u53E3\uFF0C\u5EFA\u8BAE\u4F7F\u7528 115200 \u7684\u6CE2\u7279\u7387\u3002 \u4EC5 uart0 \u652F\u6301\u4E32\u53E3\u70E7\u5F55\u3002 \u8BBE\u7F6E AiBurn \u5DE5\u5177 \u5728\u6B63\u5F0F\u70E7\u5F55\u4E4B\u524D\uFF0C\u6309\u7167\u4E0B\u5217\u6D41\u7A0B\u8BBE\u7F6E AiBurn \u5DE5\u5177\uFF1A \u9009\u62E9\u8FDE\u63A5\u65B9\u5F0F\uFF1A\u4E32\u53E3 \u9009\u62E9\u4E32\u53E3\u53F7\uFF1APC \u4E0A\u7684\u70E7\u5F55\u4E32\u53E3\u7684\u8BBE\u5907\u53F7 \u8BBE\u7F6E\u6CE2\u7279\u7387\uFF1A\u652F\u6301...","topics/sdk/burnsys/udisk.html@@@U \u76D8@@@U \u76D8\u5237\u673A U \u76D8\u5237\u673A\u7684\u4E00\u822C\u6D41\u7A0B\u5982\u4E0B\u6240\u793A\uFF1A \u5C06 U \u76D8\u683C\u5F0F\u5316\u6210\u5355\u5206\u533A\u7684 FAT32 \u6587\u4EF6\u7CFB\u7EDF\u3002 \u590D\u5236\u5237\u673A\u56FA\u4EF6\u5230 U \u76D8\u4E2D\uFF0C\u5982 d211_demo128_nand_v1.0.0.img \u3002 \u590D\u5236\u56FA\u4EF6\u7684\u914D\u7F6E\u6587\u4EF6 bootcfg.txt \u5230 U \u76D8\u4E2D\u3002 \u63D2\u5361\u4E0A\u7535\u542F\u52A8\u5F00\u53D1\u677F\uFF0C\u4F1A\u81EA\u52A8\u8FDB\u884C\u5237\u673A\u3002 \u5237\u673A\u7684\u65F6\u5019\u5C4F\u5E55\u4E0A\u4F1A\u63D0\u793A AiBurn UDISK \u3002 \u5237\u673A\u6210\u529F\u4F1A\u5C4F\u5E55\u4E0A\u4F1A\u63D0\u793A AiBurn done \u3002...","topics/sdk/burnsys/usb.html@@@USB \u7EBF@@@\u4F7F\u7528 USB \u7EBF\u53EF\u4EE5\u5B9E\u73B0\u4E0B\u5217\u7CFB\u7EDF\u66F4\u65B0\u65B9\u5F0F\uFF1A \u5237\u673A \u4F7F\u7528 USB \u7EBF\u65F6\uFF0C\u53EF\u501F\u52A9 AiBurn \u5DE5\u5177\u8FDB\u884C\u5237\u673A\u64CD\u4F5C\uFF0C\u8BE6\u7EC6\u4FE1\u606F\u8BF7\u53C2\u8003 \u3002 \u5347\u7EA7 \u501F\u52A9 USB \u7EBF\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u901A\u8FC7 ADB \u65B9\u5F0F\u5C06\u9700\u8981\u5347\u7EA7\u7684\u56FA\u4EF6\u63A8\u9001\u5230\u5185\u90E8\u5B58\u50A8\u4E2D\uFF1A adb push dxx_demoxxx_nand_page_ 2 k_block_ 128 k_v1. 0.0 .img /mnt/ ADB \u662F Android...","topics/sdk/bwm/bwm-configuration.html@@@BWM \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E Device Drivers Misc devices---> [*] BWM driver for ArtInChip SoC DTS \u914D\u7F6E bwm: bwm@ 184f f000 { compatible = "artinchip,aic-bwm" ; reg = < 0x184ff000 0x1000 >; interrupts = <GIC_SPI 19...","topics/sdk/bwm/bwm-debug-guide.html@@@\u8C03\u8BD5\u6307\u5357@@@\u5728 BWM \u521D\u59CB\u5316\u6210\u529F\u540E\uFF0C\u4F1A\u5728 sysfs \u4E2D\u6CE8\u518C\u751F\u6210 bwm \u76EE\u5F55\uFF0C\u8DEF\u5F84\u4F4D\u4E8E sys/devices/platform/soc/184ff000.bwm/bwm \uFF0C\u76EE\u5F55\u5185\u90E8\u5305\u542B BWM \u6A21\u5757\u9A71\u52A8\u751F\u6210\u7684\u51E0\u4E2A\u7ED3\u70B9\uFF0C\u53EF\u4EE5\u901A\u8FC7\u8FD9\u4E9B\u7ED3\u70B9\u83B7\u53D6\u76F8\u5E94\u7684\u5E26\u5BBD\u6570\u636E\u3002...","topics/sdk/bwm/bwm-design-intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@BWM \u6A21\u5757\u7684\u6E90\u4EE3\u7801\u4F4D\u4E8E linux-5.10/drivers/misc/artinchip-bwm.c \u3002 BWM \u6A21\u5757\u4E3B\u8981\u662F\u76D1\u6D4B DDR \u7684\u5E26\u5BBD\uFF0C\u6240\u4EE5 BWM \u6A21\u5757\u7684\u9A71\u52A8\uFF0C\u4E3B\u8981\u53EF\u4EE5\u5206\u4E3A\u4E24\u90E8\u5206\uFF1A \u521D\u59CB\u5316 BWM\uFF0C\u4F7F BWM \u6A21\u5757\u53EF\u4EE5\u6B63\u5E38\u5DE5\u4F5C\uFF0C\u8FD9\u90E8\u5206\u4E3B\u8981\u5728 probe \u51FD\u6570\u4E2D\u5B9E\u73B0\u3002 \u5411\u7528\u6237\u5C42\u63D0\u4F9B\u63A5\u53E3\uFF0C\u65B9\u4FBF\u7528\u6237\u53EF\u4EE5\u5B9E\u65F6\u67E5\u770B DDR \u7684\u5E26\u5BBD\u6570\u636E\u3002\u8FD9\u90E8\u5206\u662F\u901A\u8FC7 sysfs \u5411\u7528\u6237\u63D0\u4F9B\u7ED3\u70B9\uFF0C\u65B9\u4FBF\u7528\u6237\u8C03\u7528\u3002...","topics/sdk/bwm/bwm-test-guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \u786C\u4EF6 \u6D4B\u8BD5\u677F PC\uFF1A\u7528\u4E8E\u548C\u6D4B\u8BD5\u677F\u4EA4\u4E92 \u4E32\u53E3\u7EBF\uFF1A\u8FDE\u63A5\u6D4B\u8BD5\u677F\u7684\u8C03\u8BD5\u4E32\u53E3 \u8F6F\u4EF6 PC \u7AEF\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6 bwmtop \u6D4B\u8BD5\u5DE5\u5177 \u7F16\u8BD1\u6D4B\u8BD5\u5DE5\u5177 SDK \u5DF2\u9ED8\u8BA4\u7F16\u8BD1 test-bwmtop \u5DE5\u5177\uFF0C\u53EF\u4EE5\u76F4\u63A5\u4F7F\u7528\u3002\u4E5F\u53EF\u4EE5\u6309\u4EE5\u4E0B\u914D\u7F6E\u6253\u5F00\uFF1A ArtInChip packages---> Sample code---> [*] test-bwmtop---> \u914D\u7F6E\u540E\uFF0C\u91CD\u65B0\u7F16\u8BD1\u3002 bwmtop \u6D4B\u8BD5...","topics/sdk/bwm/bwm-user-guide.html@@@BWM \u4F7F\u7528\u6307\u5357@@@BWM \u7528\u4E8E\u9488\u5BF9 DDR \u6A21\u5757\u8FDB\u884C\u5E26\u5BBD\u76D1\u6D4B \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E BWM Bandwidth Monitor \u5E26\u5BBD\u68C0\u6D4B\u5668 \u56FE 1 . \u539F\u7406\u6846\u56FE \u57FA\u672C\u7279\u6027\uFF1A \u5FAA\u73AF\u7D2F\u8BA1\u5E26\u5BBD\u6570\u636E\uFF0C\u5FAA\u73AF\u5468\u671F\u6700\u5927\u4E3A 16s \u6BCF\u4E2A AXI \u7AEF\u53E3\u5355\u72EC\u76D1\u63A7\uFF0C\u8BFB\u5199\u5206\u5F00\u76D1\u63A7...","topics/sdk/can/can_config.html@@@CAN \u914D\u7F6E@@@CAN \u5305\u62EC\u4EE5\u4E0B\u914D\u7F6E\u5185\u5BB9\uFF1A \u5185\u6838\u914D\u7F6E [*] Networking support---> <*> CAN bus subsystem support---> CAN Device Drivers---> <*> Platform CAN drivers with Netlink support [*] CAN bit-timing calculation <*> Support for ARTC...","topics/sdk/can/can_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@CAN \u6A21\u5757\u7684\u6E90\u7801\u4F4D\u4E8E linux-5.10/drivers/net/can/artc_can.c \u8F83\u65E9\u7684 linux \u5185\u6838\u7248\u672C\u7684 CAN \u9A71\u52A8\u90FD\u662F\u57FA\u4E8E\u5B57\u7B26\u8BBE\u5907\u9A71\u52A8\u5B9E\u73B0\uFF0C\u63D0\u4F9B\u7684\u529F\u80FD\u76F8\u5BF9\u8F83\u5C11\uFF0C\u6570\u636E\u5305\u7684\u6392\u961F\u548C\u66F4\u9AD8\u7EA7\u522B\u7684\u4F20\u8F93\u534F\u8BAE\u5FC5\u987B\u5728\u7528\u6237\u7A7A\u95F4\u7684\u5E94\u7528\u7A0B\u5E8F\u5B9E\u73B0\u3002\u73B0\u5728\u7684\u5185\u6838\u7248\u672C\u666E\u904D\u91C7\u7528 socketCAN \u5B9E\u73B0 CAN \u6A21\u5757\u7684\u9A71\u52A8\u3002socketCAN \u662F\u5C06 CAN \u4F5C\u4E3A\u4E00\u79CD\u7F51\u7EDC\u8BBE\u5907\uFF0C\u57FA\u4E8E linux...","topics/sdk/can/can_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \u786C\u4EF6 \u6D4B\u8BD5\u677F\uFF1A\u5E26\u6709\u4E24\u4E2A CAN \u63A5\u53E3\u7684\u6D4B\u8BD5\u677F PC\uFF1A\u7528\u4E8E\u548C\u6D4B\u8BD5\u677F\u4EA4\u4E92 \u4E32\u53E3\u7EBF\uFF1A\u8FDE\u63A5\u6D4B\u8BD5\u677F\u7684\u8C03\u8BD5\u4E32\u53E3 \u8F6F\u4EF6 PC \u7AEF\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6 can-utils \u7B2C\u4E09\u65B9\u8F6F\u4EF6\u5305 iprouter2 \u7B2C\u4E09\u65B9\u8F6F\u4EF6\u5305 \u7B2C\u4E09\u65B9\u8F6F\u4EF6\u5305\u7F16\u8BD1 SDK \u4E2D\u5DF2\u9ED8\u8BA4\u7F16\u8BD1 can-utils/iprouter2 \u8F6F\u4EF6\u5305\uFF0C\u53EF\u4EE5\u76F4\u63A5\u4F7F\u7528\u3002\u4E5F\u53EF\u4EE5\u901A\u8FC7\u4EE5\u4E0B\u4E24\u79CD\u65B9\u5F0F\u7F16\u8BD1\u6D4B\u8BD5\uFF1A \u4F7F\u7528\u9884\u7F16\u8BD1\u5305 SDK \u4E2D\u63D0\u4F9B\u4E86...","topics/sdk/can/can_user_guide.html@@@CAN \u4F7F\u7528\u6307\u5357@@@CAN \u662F\u4E00\u79CD\u5E7F\u6CDB\u5E94\u7528\u4E8E\u6C7D\u8F66\u63A7\u5236\u7CFB\u7EDF\u548C\u4E00\u822C\u5DE5\u4E1A\u73AF\u5883\u4E2D\u7684\u533A\u57DF\u7F51\u7EDC\u603B\u7EBF\u3002\u4F5C\u4E3A\u4E00\u6B3E\u591A\u4E3B\u673A\u3001\u591A\u5E7F\u64AD\u7684\u901A\u4FE1\u534F\u8BAE\uFF0CCAN \u4EE5\u5176\u9AD8\u53EF\u9760\u6027\u548C\u5353\u8D8A\u7684\u9519\u8BEF\u68C0\u6D4B\u80FD\u529B\u800C\u8457\u79F0\u3002 \u652F\u6301 CAN2.0A \u548C CAN2.0B \u534F\u8BAE \u652F\u6301 11 \u4F4D\u6807\u51C6\u683C\u5F0F\u6807\u8BC6\u7B26\u548C 29 \u4F4D\u6269\u5C55\u683C\u5F0F\u6807\u8BC6\u7B26 \u53EF\u7F16\u7A0B\u901A\u4FE1\u901F\u7387\u6700\u9AD8\u53EF\u8FBE 1 Mbps \u652F\u6301\u591A\u79CD\u64CD\u4F5C\u6A21\u5F0F\uFF1A\u6B63\u5E38\u6A21\u5F0F\u3001\u53EA\u542C\u6A21\u5F0F\u3001\u81EA\u6D4B\u6A21\u5F0F\u3001\u4F11\u7720\u6A21\u5F0F\u3001\u590D\u4F4D\u6A21\u5F0F \u652F\u6301\u63A5\u6536\u8FC7\u6EE4\u5668\uFF0C\u652F\u6301\u4E24\u79CD\u8FC7\u6EE4\u6A21\u5F0F 64...","topics/sdk/ce/ce-demo.html@@@\u5E94\u7528\u7F16\u7A0B@@@\u7528\u6237\u7A7A\u95F4\u7F16\u7A0B\u4F7F\u7528 CE \u65F6\uFF0C\u6839\u636E\u4F7F\u7528\u573A\u666F\u548C\u9700\u6C42\u7684\u4E0D\u540C\uFF0C\u6709\u51E0\u5C42 API \u53EF\u4EE5\u9009\u62E9\uFF1A AF_ALG Socket API Libkcapi API OpenSSL API \u56FE 1 . \u7528\u6237\u7A7A\u95F4 API \u5BF9\u63A5 AF_ALG API \u76F8\u5173 API \u53EF\u53C2\u8003\u5934\u6587\u4EF6 linux/if_alg.h \u8981\u4F7F\u7528\u5185\u6838\u63D0\u4F9B\u7684\u7B97\u6CD5\u548C\u9A71\u52A8\uFF0C\u9700\u8981\u77E5\u9053\u5BF9\u5E94\u7684\u7B97\u6CD5\u540D\u5B57\u3002\u53EF\u901A\u8FC7\u4E0B\u5217\u547D\u4EE4\u83B7\u53D6\uFF1A cat /proc/crypto \u4F8B\u5982...","topics/sdk/ce/ce-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u76F8\u5173\u6A21\u5757 \u6E90\u7801\u8DEF\u5F84 1. Crypto subsystem2. AF_ALG source/linux-5.10/crypto/ Driver source/linux-5.10/drivers/crypto/artinchip/ce/...","topics/sdk/ce/ce-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_skcipher_alg_init \u51FD\u6570\u539F\u578B int aic_skcipher_alg_init(struct crypto_skcipher *tfm) \u529F\u80FD\u8BF4\u660E \u5BF9\u79F0\u5BC6\u94A5\u7B97\u6CD5\u7684\u521D\u59CB\u5316\u51FD\u6570 \u53C2\u6570\u5B9A\u4E49 struct crypto_skcipher *tfm \u7B97\u6CD5\u5B9E\u4F8B\u6307\u9488 \u8FD4\u56DE\u503C 0: \u6210\u529F \u5176\u4ED6: \u5931\u8D25 \u6CE8\u610F\u4E8B\u9879 - \u8868 2 . aic_skcipher_alg_exit...","topics/sdk/ce/ce-key_design_intro.html@@@\u8BBE\u8BA1\u8981\u70B9@@@\u7B97\u6CD5\u7684\u5206\u7C7B\u6CE8\u518C CE \u786C\u4EF6\u5B9E\u73B0\u4E86\u591A\u7EC4\u4E0D\u540C\u7C7B\u578B\u7684\u52A0\u5BC6\u7B97\u6CD5\u52A0\u901F\u5355\u5143\uFF0C\u5206\u522B\u5BF9\u5E94\u5185\u6838\u52A0\u5BC6\u5B50\u7CFB\u7EDF\u4E2D\u7684\u51E0\u79CD\u7C7B\u578B\u52A0\u5BC6\u7B97\u6CD5\u3002\u5728\u9A71\u52A8\u5B9E\u73B0\u65F6\uFF0C\u6839\u636E\u4E0D\u540C\u7684\u7B97\u6CD5\u7C7B\u578B\uFF0C\u5C06 CE \u786C\u4EF6\u62BD\u8C61\u51FA\u4E09\u4E2A\u4E0D\u540C\u7684\u7B97\u6CD5\u52A0\u901F\u5668\uFF1A \u5BF9\u79F0\u5BC6\u94A5\u7B97\u6CD5\u52A0\u901F\u5668 \u975E\u5BF9\u79F0\u5BC6\u94A5\u7B97\u6CD5\u52A0\u901F\u5668 \u6D88\u606F\u6458\u8981\u7B97\u6CD5\u52A0\u901F\u5668 \u9A71\u52A8\u6309\u7167\u4E0D\u540C\u7684\u7B97\u6CD5\u52A0\u901F\u5668\u8FDB\u884C\u8D44\u6E90\u5206\u914D\u548C\u5B9E\u73B0\uFF0C\u6BCF\u4E2A\u7B97\u6CD5\u52A0\u901F\u5668\u652F\u6301\u591A\u79CD\u4E0D\u540C\u7684\u5177\u4F53\u7B97\u6CD5\uFF0C\u5E76\u4E14\u5C06\u5177\u4F53\u7B97\u6CD5\u6CE8\u518C\u5230\u52A0\u5BC6\u5B50\u7CFB\u7EDF\u3002 \u56FE 1 . CE \u7B97\u6CD5\u5206\u7C7B \u9A71\u52A8\u4E3A...","topics/sdk/ce/ce-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B \u56FE 1 . \u521D\u59CB\u5316\u6D41\u7A0B \u76F8\u5173\u7684\u4EE3\u7801\u6D41\u7A0B\u5982\u4E0B\u3002 aic_crypto_probe(pdev); |-> ce_dev->base = devm_platform_ioremap_resource(pdev, 0 ); |-> ret = devm_request_threaded_irq(dev, irq, aic_crypto_irq_handler, |...","topics/sdk/ce/ce_architecture.html@@@\u6A21\u5757\u67B6\u6784@@@CE \u6A21\u5757\u5BF9\u63A5\u5185\u6838\u52A0\u5BC6\u5B50\u7CFB\u7EDF\u3002 CE <\u2014> Crypto subsystem <\u2014> User space \u4E4B\u95F4\u7684\u5C42\u6B21\u5173\u7CFB\u5982\u4E0B\u56FE\u6240\u793A\u3002 \u56FE 1 . CE \u4E0E\u5185\u6838\u52A0\u5BC6\u5B50\u7CFB\u7EDF Linux \u5185\u6838\u52A0\u5BC6\u5B50\u7CFB\u7EDF\u7531\u51E0\u4E2A\u90E8\u5206\u7EC4\u6210 \u6838\u5FC3\u90E8\u5206\u3002\u8BE5\u90E8\u5206\u5B9E\u73B0\u4E86\u52A0\u5BC6\u5B50\u7CFB\u7EDF\u7684\u4E3B\u8981\u6838\u5FC3\u529F\u80FD\uFF0C\u5305\u62EC \u4E3B\u8981\u7684\u6570\u636E\u7ED3\u6784\u548C\u7BA1\u7406 \u6240\u652F\u6301\u7684\u7B97\u6CD5\u7C7B\u578B \u4EE5\u53CA\u4E0D\u540C\u7B97\u6CD5\u4E4B\u95F4\u8FDB\u884C\u7EC4\u5408\u7684\u6A21\u677F\u7B49 \u5BF9\u4E0B\u5BF9\u63A5\u5404\u79CD\u7B97\u6CD5\u7684\u5177\u4F53\u8F6F\u786C\u4EF6\u5B9E\u73B0\uFF0C\u5BF9\u4E0A\u63D0\u4F9B\u5BF9\u5E94\u7684...","topics/sdk/ce/ce_config.html@@@CE \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u4F7F\u80FD CE \u76F8\u5173\u7684\u5185\u6838\u9A71\u52A8\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u7684\u914D\u7F6E\u754C\u9762\u4E2D\uFF0C\u914D\u7F6E\u4E0B\u5217\u9009\u9879\uFF1A Cryptographic API ---> <*> User-space interface for asymmetric key cipher algorithms...","topics/sdk/ce/ce_data_struct.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@\u8BBE\u5907\u7ED3\u6784\u4F53 CE \u8BBE\u5907\u7ED3\u6784\u4F53\u7528\u6765\u4FDD\u5B58 CE \u57FA\u5730\u5740\u7B49\u76F8\u5173\u4FE1\u606F\uFF0C\u9664\u6B64\u4E4B\u5916\uFF0C\u8FD8\u5305\u542B\u4E86\u4E09\u4E2A\u4E0D\u540C\u7C7B\u578B\u7684\u7B97\u6CD5\u52A0\u901F\u5668\u7ED3\u6784\u4F53\uFF0C \u4EE5\u53CA\u5B89\u5168 SRAM \u7684\u5206\u914D\u7BA1\u7406\u4FE1\u606F\u7B49\u3002 struct aic_alg_accelerator { struct crypto_engine *engine; struct mutex alock; DECLARE_KFIFO_PTR(req_fifo, void *); }...","topics/sdk/ce/ce_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u901A\u8FC7\u5185\u6838\u914D\u7F6E\u4F7F\u80FD CE \u6A21\u5757\u7684\u9A71\u52A8\u8C03\u8BD5\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u7684\u914D\u7F6E\u754C\u9762\uFF0C\u4F7F\u80FD CE \u9A71\u52A8\u8C03\u8BD5\u9009\u9879\uFF1A Linux Kernel hacking ArtInChip Debug [*] CE driver debug \u6253\u5F00 DEBUG \u9009\u9879\u540E\uFF1A \u9A71\u52A8\u4EE5...","topics/sdk/ce/ce_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@CE \u7684\u6D4B\u8BD5\u4E3B\u8981\u8986\u76D6\u4EE5\u4E0B\u51E0\u4E2A\u8981\u70B9\uFF1A \u9A71\u52A8\u6240\u5B9E\u73B0\u7684\u6240\u6709\u7B97\u6CD5 \u4E0D\u540C\u6570\u636E\u957F\u5EA6\u7684\u5904\u7406 \u8F93\u5165\u8F93\u51FA buffer \u662F\u5426 4 KB \u5BF9\u9F50\uFF08\u9700\u8981\u652F\u6301\u4E0D\u5BF9\u9F50\u7684\u60C5\u51B5\uFF09 \u591A\u8FDB\u7A0B/\u7EBF\u7A0B\u5E76\u53D1\u8BBF\u95EE \u6D4B\u8BD5\u7684\u65B9\u5F0F\u4E3B\u8981\u662F\u901A\u8FC7\u5BF9\u7B97\u6CD5\u5904\u7406\u540E\u7684\u6570\u636E\u8FDB\u884C\u201C\u6BD4\u6570\u201D\u7684\u65B9\u5F0F\u8FDB\u884C\uFF0C\u7ED3\u679C\u4E0E\u53C2\u8003\u7ED3\u679C\u4E00\u81F4\uFF0C\u5219\u8868\u660E\u6D4B\u8BD5\u901A\u8FC7\u3002 \u6D4B\u8BD5\u5DE5\u5177 \uFF1A \u4E3B\u673A\u7AEF\u5DE5\u5177\uFF1AOpenSSL (\u4E3B\u673A\u9700\u8981\u5B89\u88C5) \u5E73\u53F0\u7AEF\u5DE5\u5177\uFF1Acrypto_kcapi (\u7F16\u8BD1...","topics/sdk/ce/ce_user_guide.html@@@CE \u4F7F\u7528\u6307\u5357@@@CE \u662F\u4E00\u4E2A\u72EC\u7ACB\u7684\u786C\u4EF6\u52A0\u89E3\u5BC6\u7B97\u6CD5\u5F15\u64CE\uFF0C\u662F\u4E00\u4E2A\u72EC\u7ACB\u7684\u786C\u4EF6\u52A0\u89E3\u5BC6\u7B97\u6CD5\u5F15\u64CE\uFF0C\u652F\u6301\u591A\u79CD\u7B97\u6CD5\u6A21\u5F0F\u3002\u8FD9\u4E9B\u7B97\u6CD5\u6A21\u5F0F\u53EF\u4EE5\u5355\u72EC\u6216\u7EC4\u5408\u4F7F\u7528\uFF0C\u4EE5\u6EE1\u8DB3\u4E0D\u540C\u7684\u5B89\u5168\u9700\u6C42\u548C\u5E94\u7528\u573A\u666F\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E CE Crypto Engine \u786C\u4EF6\u52A0\u89E3\u5BC6\u7B97\u6CD5\u5F15\u64CE DES Data Encryption Standard \u4E00\u79CD\u5BF9\u79F0\u5206\u7EC4\u5BC6\u7801\u7B97\u6CD5 AES Advanced Encryption Standard...","topics/sdk/chapter-advanced-app.html@@@\u9AD8\u7EA7\u5E94\u7528@@@\u7CFB\u7EDF\u3001\u5B58\u50A8\u3001\u591A\u5A92\u4F53\u3001\u63A5\u53E3\u3001\u5B89\u5168\u7B49\u6A21\u5757\u7684\u8BE6\u7EC6\u914D\u7F6E\u548C\u8BBE\u8BA1\u8BF4\u660E\u3002...","topics/sdk/chapter-app.html@@@\u5E94\u7528\u573A\u666F@@@\u63CF\u8FF0\u4E86 SDK \u5728\u4E0D\u540C\u5E94\u7528\u573A\u666F\u4E2D\u7684\u914D\u7F6E\u548C\u4F7F\u7528\uFF0C\u5305\u62EC\u7CFB\u7EDF\u66F4\u65B0\u3001OTA\u3001\u5B89\u5168\u65B9\u6848\u7B49\u3002...","topics/sdk/cir/cir_config.html@@@CIR \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E Device Drivers <*> Remote Controller support---> [*] LIRC user interface [*] Remote controller decoders---> <*> Enable IR raw decoder for the NEC protocol < > Enable IR raw decoder for the RC- 5...","topics/sdk/cir/cir_data_struct.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@struct aic_ir { spinlock_t ir_lock; struct rc_dev *rc; void __iomem *base; struct clk *clk; struct reset_control *rst; const char *map_name; /*CIR \u6A21\u5757\u4F7F\u7528\u7684 scancode \u6620\u5C04\u8868*/ unsigned int tx_duty...","topics/sdk/cir/cir_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@CIR \u7684\u9A71\u52A8\u4E2D\u5305\u542B\u90E8\u5206\u8C03\u8BD5\u4FE1\u606F\uFF0C\u9ED8\u8BA4\u60C5\u51B5\u4E0D\u6253\u5370\uFF0C\u4F46\u5728\u9700\u8981\u8DDF\u8E2A\u8C03\u8BD5\u65F6\uFF0C\u53EF\u901A\u8FC7\u4EE5\u4E0B\u6B65\u9AA4\u6253\u5F00\u8C03\u8BD5\u4FE1\u606F\u3002 \u901A\u8FC7 menuconfig \u8C03\u6574\u5185\u6838\u7684 log \u7B49\u7EA7 Kernel hacking---> printk and dmesg options---> ( 8 ) Default console loglevel ( 1 - 15 ) \u6253\u5F00\u8C03\u8BD5\u5F00\u5173 Kernel hacking--->...","topics/sdk/cir/cir_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u7801\u8BF4\u660E CIR \u6A21\u5757\u7684\u6E90\u7801\u4F4D\u4E8E linux-5.10/drivers/media/rc/artinchip-cir.c \u6A21\u5757\u67B6\u6784 linux \u5185\u6838\u4E2D rc \u7684\u57FA\u672C\u6846\u67B6\u5982\u4E0B\u56FE\u6240\u793A\uFF1A \u7EA2\u5916\u4FE1\u53F7\u7684\u7F16\u7801\u548C\u89E3\u7801\u5DE5\u4F5C\u7531 \u5185\u6838 \u8D1F\u8D23\u5B8C\u6210\u3002\u5728\u5B8C\u6210\u7F16\u7801\u540E\uFF0C\u5E94\u7528\u5C42\u9700\u8981\u53D1\u9001\u7684\u4FE1\u53F7\u88AB\u7F16\u7801\u4E3A\u4E00\u7CFB\u5217\u7684\u5E26\u6709\u5BBD\u5EA6\u7684\u9AD8\u4F4E\u7535\u5E73\uFF08pulse/space\uFF09\uFF0CCIR driver \u5728\u53D1\u9001\u7AEF\u5C31\u662F\u9700\u8981\u5C06\u8FD9\u4E00\u7CFB\u5217\u7684 pulse/space...","topics/sdk/cir/cir_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@...","topics/sdk/cir/cir_interface.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_set_rx_carrier_range \u51FD\u6570\u539F\u578B static int aic_set_rx_carrier_range(struct rc_dev *rcdev, u32 min, u32 max) \u529F\u80FD\u8BF4\u660E \u8BBE\u7F6E CIR \u6A21\u5757\u63A5\u6536\u5668\u7684\u91C7\u6837\u9891\u7387 \u53C2\u6570\u5B9A\u4E49 rcdev\uFF1A\u6307\u5411\u7EA2\u5916\u8BBE\u5907\u7684\u6307\u9488 min\uFF1A\u8BBE\u7F6E\u7684\u91C7\u6837\u9891\u7387\u6700\u5C0F\u503C max\uFF1A\u8BBE\u7F6E\u7684\u91C7\u6837\u9891\u7387\u6700\u5927\u503C \u8FD4\u56DE\u503C \u6267\u884C\u6210\u529F\u8FD4\u56DE 0...","topics/sdk/cir/cir_key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B CIR \u6A21\u5757\u7684\u521D\u59CB\u5316\u6D41\u7A0B\u5982\u4E0B\uFF1A \u91CA\u653E clock \u548C reset \u4FE1\u53F7 \u8C03\u7528 device \u4E3A rc_dev \u7ED3\u6784\u4F53\u5206\u914D\u7A7A\u95F4 \u8BBE\u7F6E\u8F7D\u6CE2\u7684\u5360\u7A7A\u6BD4\u4E3A 33%\u3002\u8BFB\u53D6 dts \u4E2D linux,rc-map-name \u7684\u5C5E\u6027\u503C\u3002\u82E5\u4E3A\u7A7A\uFF0C\u5219\u9ED8\u8BA4\u4F7F\u7528\u5185\u6838\u4E2D\u7684\u7A7A\u8868 \u6CE8\u518C\u7EA2\u5916\u8BBE\u5907 \u8BFB\u53D6 dts \u4E2D\u7684 rx-level \u5C5E\u6027\u503C\uFF0C\u8BBE\u7F6E RX \u7A7A\u95F2\u65F6\u7684\u72B6\u6001 \u8BBE\u7F6E\u566A\u58F0\u9608\u503C\uFF0C\u6FC0\u6D3B\u9608\u503C\uFF0C\u7A7A\u95F2\u9608\u503C\u7B49\u5E95\u5C42\u914D\u7F6E...","topics/sdk/cir/cir_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u51C6\u5907\u6D4B\u8BD5\u73AF\u5883 \u786C\u4EF6 \u6D4B\u8BD5\u677F\uFF1A\u5E26\u6709\u7EA2\u5916\u6536\u53D1\u5668\u7684\u6D4B\u8BD5\u677F PC\uFF1A\u7528\u4E8E\u548C\u6D4B\u8BD5\u677F\u4EA4\u4E92 \u4E32\u53E3\u7EBF\uFF1A\u8FDE\u63A5\u6D4B\u8BD5\u677F\u7684\u8C03\u8BD5\u4E32\u53E3 \u8F6F\u4EF6 PC \u7AEF\u4E32\u53E3\u8F6F\u4EF6 \u5185\u6838\u81EA\u5E26\u7684\u7EA2\u5916\u6D4B\u8BD5\u5DE5\u5177\uFF1A tools/testing/selftests/ir \u914D\u7F6E SDK \u4FE1\u606F \u5728 SDK \u4E2D\u914D\u7F6E\u4E0B\u5217\u4FE1\u606F\uFF1A \u914D\u7F6E\u5B8F BR2_PACKAGE_BUSYBOX_SHOW_OTHERS Third-party packages--->...","topics/sdk/cir/cir_user_guide.html@@@CIR \u4F7F\u7528\u6307\u5357@@@Consumer IR (CIR) \u6A21\u5757\u5305\u542B\u53D1\u9001\u5668\u548C\u63A5\u6536\u5668\uFF0C\u5176\u7279\u6B8A\u8BBE\u8BA1\u652F\u6301\u751F\u6210\u6216\u6355\u83B7\u5404\u7C7B\u6570\u5B57\u8109\u51B2\u4FE1\u53F7\u3002\u6A21\u5757\u4F7F\u7528\u6E38\u7A0B\u7F16\u7801 (RLC\uFF0CRun-Length Code) \u65B9\u5F0F\u7F16\u7801\u6570\u5B57\u8109\u51B2\u4FE1\u53F7\uFF0C\u4EE5 Byte \u4E3A\u5355\u4F4D\u8BB0\u5F55\u7F16\u7801\u6570\u636E\uFF0C\u5176\u4E2D\uFF1A MSB \u4F4D\u8868\u793A\u4FE1\u53F7\u7535\u5E73\uFF1A 1\uFF1A\u9AD8\u7535\u5E73 0\uFF1A\u4F4E\u7535\u5E73 \u5176\u4F59 7 \u4F4D\u8868\u793A\u4FE1\u53F7\u5BBD\u5EA6\uFF0C\u4EE5\u91C7\u6837\u65F6\u949F\u4E3A\u5355\u4F4D\u3002 \u6700\u5927\u5BBD\u5EA6\u4E3A 128\uFF0C\u5047\u5982\u67D0\u4E00\u7535\u5E73\u5BBD\u5EA6\u5927\u4E8E 128\uFF0C\u5219\u4F7F\u7528\u53E6\u4E00\u5B57\u8282\u5B58\u50A8\u3002 \u8868...","topics/sdk/cmu/cmu-data-structure-design.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@CMU \u6A21\u5757\u5173\u952E\u7ED3\u6784\u4F53\u5B9A\u4E49\u5982\u4E0B\uFF1A fixed_parent_clk_cfg struct fixed_parent_clk_cfg { //fixed parent clock \u7684\u914D\u7F6E\u7ED3\u6784\u4F53 u32 id; //fixed parent clock \u7684\u7D22\u5F15\u503C\uFF0C\u53C2\u8003 3.2 \u8282 CLK_xxx u16 type; u8 fact_mult; u8 fact_div; const char...","topics/sdk/cmu/cmu-debug-guide-lb.html@@@\u8C03\u8BD5\u6307\u5357@@@CMU \u8C03\u8BD5\u5305\u542B\u4EE5\u4E0B\u6B65\u9AA4\uFF1A \u786E\u4FDD\u6253\u5F00 Debugfs \u3002SDK \u4E2D\u9ED8\u8BA4\u5DF2\u6253\u5F00 Debugfs \uFF0C\u4E5F\u53EF\u4EE5\u901A\u8FC7\u4EE5\u4E0B\u914D\u7F6E\u6253\u5F00\uFF1A Kernel hacking---> Generic Kernel Debugging Instruments---> Debug Filesystem Debugfs default access(Access normal)---> \u5185\u6838\u7684 CCF...","topics/sdk/cmu/cmu-design-guide-lb.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u7801\u8BF4\u660E \u5185\u6838\u7684\u65F6\u949F\u9A71\u52A8\u6846\u67B6\u4F4D\u4E8E linux-5.10/drivers/clk \u76EE\u5F55\u4E0B\uFF0CCMU \u7684\u5E95\u5C42\u9A71\u52A8\u4F4D\u4E8E /drivers/clk/artinchip/ \u76EE\u5F55\u4E0B\u3002 ArtInChip \u7684\u76EE\u5F55\u7ED3\u6784\u5982\u4E0B\u56FE\u6240\u793A\uFF1A \u6587\u4EF6 \u8BF4\u660E clk-aic.h aic \u516C\u7528\u5934\u6587\u4EF6 clk-aic.c CMU \u5404\u4E2A\u65F6\u949F\u7684\u521D\u59CB\u5316\uFF0C\u6CE8\u518C\u6587\u4EF6 clk-disp.c \u663E\u793A\u6A21\u5757\u7684\u65F6\u949F\u6587\u4EF6...","topics/sdk/cmu/cmu-interface-design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_clk_hw_fixed_parent_module \u51FD\u6570\u539F\u578B struct clk_hw *aic_clk_hw_fixed_parent(void __iomem *base, const struct fixed_parent_clk_cfg *cfg) \u529F\u80FD\u8BF4\u660E \u521D\u59CB\u5316 clock\uFF0C\u5E76\u5BF9\u65F6\u949F\u8FDB\u884C\u6CE8\u518C \u53C2\u6570\u5B9A\u4E49 base\uFF1ACMU \u5BC4\u5B58\u5668\u7684\u57FA\u5730\u5740 cfg\uFF1A\u6307\u5411\u914D\u7F6E\u53C2\u6570\u7684\u6307\u9488...","topics/sdk/cmu/cmu-introduction.html@@@CMU \u4F7F\u7528\u6307\u5357@@@CMU \u6A21\u5757\u7528\u4E8E\u914D\u7F6E\u7CFB\u7EDF\u65F6\u949F\u3001PLL \u65F6\u949F\u9891\u7387\u548C\u5C55\u9891\u3001AXI/ AHB/ APB \u603B\u7EBF\u65F6\u949F\u3001\u5404\u6A21\u5757\u8F93\u5165\u65F6\u949F\u3001IO \u8F93\u51FA\u65F6\u949F\uFF0C\u4EE5\u53CA\u5404\u4E2A\u6A21\u5757\u7684 Reset \u4FE1\u53F7\u7684\u590D\u4F4D\u6216\u91CA\u653E\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E CMU clock manage unit \u65F6\u949F\u7BA1\u7406\u5355\u5143 PLL Phase Locked Loop \u9501\u76F8\u73AF\u65F6\u949F CMU \u6A21\u5757\u7684\u57FA\u672C\u7279\u6027\u5982\u4E0B\uFF1A \u4E24\u79CD\u9501\u76F8\u73AF\u5171\u4E94\u4E2A PLL \u4E24\u4E2A\u6574\u6570...","topics/sdk/cmu/cmu-key-procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@Clock \u9A71\u52A8\u521D\u59CB\u5316 \u901A\u8FC7 DECLARE \u5B8F\u5B9A\u4E49\uFF0CCMU \u7684 clock \u9A71\u52A8\u4F1A\u5728__clock_of_table \u6BB5\u5B58\u653E\u4E00\u4E2A id \u7C7B\u578B\u7684\u53D8\u91CF\u3002\u5728\u7CFB\u7EDF\u521D\u59CB\u5316\u5185\u6838\u65F6\uFF0C\u8C03\u7528 init \u51FD\u6570\uFF0C\u5728\u8BE5\u51FD\u6570\u4E2D\u8C03\u7528\u76F8\u5E94\u7684\u65F6\u949F\u521D\u59CB\u5316\u51FD\u6570\u3002\u521D\u59CB\u5316\u6D41\u7A0B\u5982\u4E0B\uFF1A Reset \u9A71\u52A8\u521D\u59CB\u5316 \u901A\u8FC7 initcall \u5B8F\uFF0C\u5C06 reset \u9A71\u52A8\u5B58\u653E\u5230.initcall2.init \u6BB5\u4E2D\u3002\u5728\u7CFB\u7EDF\u521D\u59CB\u5316\u5185\u6838\u65F6\uFF0C\u8C03\u7528 init...","topics/sdk/cmu/cmu-test-guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@CMU \u6A21\u5757\u8D1F\u8D23\u4E3A\u5176\u4ED6\u786C\u4EF6\u6A21\u5757\u63D0\u4F9B\u5176\u65F6\u949F\u548C\u590D\u4F4D\u4FE1\u53F7\u3002\u56E0\u6B64\uFF0CCMU \u7684\u9A71\u52A8\u6240\u63D0\u4F9B\u7684 API \u63A5\u53E3\u662F\u4F9B\u5176\u5B83\u5916\u8BBE\u6A21\u5757\u4F7F\u7528\uFF0C\u800C\u4E0D\u662F\u76F4\u63A5\u5411\u7528\u6237\u5C42\u63D0\u4F9B API \u63A5\u53E3\u3002\u5173\u4E8E CMU \u6A21\u5757\u7684\u5177\u4F53\u7684\u6D4B\u8BD5\u65B9\u5F0F\uFF0C\u53EF\u4EE5\u53C2\u8003 \u8C03\u8BD5\u6307\u5357...","topics/sdk/cmu/cmu_configure_lb.html@@@CMU \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E Clock \u9A71\u52A8\u4F7F\u80FD Device Drivers Common Clock Framework---> [*] Clock driver for ArtInChip SoC Reset \u9A71\u52A8\u4F7F\u80FD Device Drivers Reset Controller Support---> [*] ArtInChip Reset Driver DTS \u914D\u7F6E Clock DTS \u914D\u7F6E cmu...","topics/sdk/display/display-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@...","topics/sdk/display/display_backlight.html@@@\u80CC\u5149\u8BBE\u8BA1@@@Backlight \u4F7F\u7528\u5185\u6838\u4E2D pwm-backlight \u80CC\u5149\u9A71\u52A8\uFF0C\u4EE3\u7801\u89C1 linux-5.10driversvideobacklightpwm_bl.c \u3002 Panel \u9A71\u52A8\u53EF\u4EE5\u901A\u8FC7 DTS \u83B7\u53D6\u80CC\u5149\u9A71\u52A8\u7684 device node\uFF0C\u7136\u540E backlight API \u63A7\u5236\u80CC\u5149\u3002 backlight_enable() \u4F7F\u80FD\u80CC\u5149 backlight_update_status() \u5BF9\u80CC\u5149\u72B6\u6001\u8FDB\u884C\u66F4\u65B0...","topics/sdk/display/display_boot_logo.html@@@Boot Logo@@@ArtInChip \u5E73\u53F0\u652F\u6301\u663E\u793A png/jpg \u683C\u5F0F\u7684 logo \u56FE\u7247\uFF0CLuban SDK \u9ED8\u8BA4\u4F7F\u7528 png \u683C\u5F0F\u7684 logo \u56FE\u7247\u3002 \u5173\u4E8E\u5982\u4F55\u66F4\u6362 LOGO \u56FE\u7247\uFF0C\u53C2\u8003 U-Boot \u4E2D\u7684 \u56FE\u50CF\u663E\u793A \u3002...","topics/sdk/display/display_color_property.html@@@\u8272\u5F69\u8C03\u6574@@@ArtInChip \u5E73\u53F0\u663E\u793A\u5F15\u64CE\u652F\u6301\u8272\u5F69\u8C03\u6574\uFF0C\u8986\u76D6 UI \u56FE\u5C42\u548C Video \u56FE\u5C42\u3002 \u901A\u8FC7\u8C03\u6574\u4EAE\u5EA6\uFF0C\u5BF9\u6BD4\u5EA6\uFF0C\u9971\u548C\u5EA6\uFF0C\u8272\u8C03\u7B49\u5C5E\u6027\uFF0C\u53EF\u4EE5\u4F7F\u540C\u4E00\u5F20\u56FE\u7247\u6216\u4E00\u6BB5\u89C6\u9891\u5448\u73B0\u4E0D\u540C\u7684\u663E\u793A\u6548\u679C\uFF0C \u80FD\u8BA9\u8D28\u91CF\u4E0D\u540C\u7684 LCD \u5916\u8BBE\u62E5\u6709\u76F8\u8FD1\u7684\u663E\u793A\u6548\u679C\u3002 \u5BF9\u4E8E\u8272\u5F69\u8C03\u6574\u7684\u76F8\u5173\u53C2\u6570\uFF0C\u652F\u6301 device tree \u914D\u7F6E\uFF0C\u5728\u5E94\u7528\u542F\u52A8\u65F6\u5373\u65F6\u751F\u6548\u3002\u4E5F\u652F\u6301 ioctl \u52A8\u6001\u8C03\u6574\uFF0C\u65B9\u4FBF\u8C03\u8BD5\u3002UI \u56FE\u5C42\u548C Video...","topics/sdk/display/display_config.html@@@Display \u914D\u7F6E@@@\u663E\u793A\u6A21\u5757\u7684\u53C2\u6570\u914D\u7F6E\uFF0C\u5305\u62EC menuconfig \u914D\u7F6E \u548C dts \u914D\u7F6E\u3002...","topics/sdk/display/display_data_structure.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@uapi/video/artinchip_video.h struct aic_rect struct aic_rect { int x; int y; int width; int height; }; struct aic_point struct aic_point { int x; int y; }; struct aic_size struct aic_size { int width...","topics/sdk/display/display_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u5982\u65E0\u7279\u6B8A\u8BF4\u660E\uFF0C\u672C\u8282\u63CF\u8FF0\u7684 DE \u9A71\u52A8\u8868\u793A\u663E\u793A\u6A21\u5757\u7684\u9A71\u52A8\uFF0C\u5305\u542B\u663E\u793A\u5F15\u64CE\u6A21\u5757\u3001\u663E\u793A\u63A5\u53E3\u6A21\u5757\u4EE5\u53CA LCD \u7684 panel \u9A71\u52A8\uFF0C\u5E76\u975E\u4EC5\u6307\u793A\u663E\u793A\u5F15\u64CE\u3002 \u5173\u4E8E\u672C\u8282\u6D89\u53CA\u7684 Component\u3001CMA \u548C DMA-BUF \u7684\u8BE6\u7EC6\u8BBE\u8BA1\u63CF\u8FF0\uFF0C\u53EF\u67E5\u770B \u8BBE\u8BA1\u8BF4\u660E \u3002 \u6253\u5F00 DE \u8C03\u8BD5\u5F00\u5173 \u5728 Luban \u6839\u76EE\u5F55\u4E0B\u6267\u884C make linux-menuconfig \uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\uFF0C\u6253\u5F00 DE \u6A21\u5757\u7684...","topics/sdk/display/display_demo.html@@@Demo@@@Framebuffer \u6807\u51C6\u63A5\u53E3\u7684\u4F7F\u7528 \u6807\u51C6 framebuffer \u63A5\u53E3\u64CD\u4F5C\u793A\u4F8B: int main() { int fd = 0 ; struct fb_var_screeninfo vi; struct fb_fix_screeninfo fi; void *fb_ptr = NULL; fd = open( "/dev/fb0" , O_RDWR); if (fd < 0 ) {...","topics/sdk/display/display_driver-intro.html@@@\u5C4F\u9A71\u52A8\u652F\u6301@@@\u5C4F\u6E90\u7801\u4F4D\u7F6E\uFF1A Kernel: source/linux-5.10/drivers/video/artinchip/disp/panel/ Uboot: source/uboot-2021.10/drivers/video/artinchip/display/panel/ LCD \u5C4F\u9A71\u52A8\uFF0C\u5373 panel\uFF0C\u672C\u8D28\u4E0A\u662F\u4E00\u4E2A\u56DE\u8C03\u51FD\u6570\u7684\u96C6\u5408\u3002\u65B0\u5C4F\u9A71\u52A8\u5B9E\u9645\u4E0A\u662F\u91CD\u65B0\u5B9E\u73B0 aic_panel_funcs...","topics/sdk/display/display_faq_screen.html@@@\u8C03\u5C4F\u5E38\u89C1\u95EE\u9898@@@\u5C4F\u5E55\u65E0\u6CD5\u70B9\u4EAE\u4F1A\u6D89\u53CA\u5F88\u591A\u56E0\u7D20\uFF0C\u4E3B\u8981\u6392\u9664\u7684\u5730\u65B9\u6709\u4E09\u5904\uFF1ADTS \u914D\u7F6E\u3001\u5185\u6838\u7F16\u8BD1\u914D\u7F6E\u3001DE&DI \u5BC4\u5B58\u5668\u8BBE\u7F6E\u3002\u8FD9\u91CC\u63D0\u4F9B\u4E00\u4E2A debug \u601D\u8DEF\u3002 \u542F\u52A8 debug \u5F00\u5173\uFF0C\u68C0\u67E5 kernel \u542F\u52A8\u65F6\u6253\u5370\u5230\u63A7\u5236\u53F0\u7684\u4FE1\u606F\uFF0C\u68C0\u67E5\u9A71\u52A8\u662F\u5426\u62A5 error\uFF0C\u6839\u636E error \u89E3\u51B3\u95EE\u9898 kernel \u4E2D\u662F\u5426\u751F\u6210\u8BBE\u5907\u7ED3\u70B9/dev/fb0\uFF0C\u5982\u679C\u6CA1\u6709\uFF0C\u6309/dev/fb0 \u8BBE\u5907\u6587\u4EF6\u7F3A\u5931\u601D\u8DEF\u8FDB\u884C\u68C0\u67E5 PRGB \u63A5\u53E3\u5C4F \u73B0\u8C61\u4E00\uFF1A\u9ED1\u5C4F...","topics/sdk/display/display_faqs.html@@@\u5E38\u89C1\u95EE\u9898@@@\u5185\u6838\u65E0\u6CD5\u6210\u529F\u542F\u52A8 \u663E\u793A\u6A21\u5757\u65E0\u6CD5\u7533\u8BF7\u5230\u8DB3\u591F\u5927\u7684\u5185\u5B58\u4F5C\u4E3A framebuffer\u3002 \u663E\u793A\u6A21\u5757\u7533\u8BF7\u7684 buffer \u6765\u6E90\u4E8E CMA \u673A\u5236\u9884\u7559\u7684\u5185\u5B58\uFF0C\u5982\u679C CMA \u9884\u7559\u5185\u5B58\u4E0D\u8DB3\uFF0C\u53EF\u80FD\u4F1A\u5BFC\u81F4\u5185\u6838\u542F\u52A8\u5931\u8D25\u3002 CMA \u9884\u7559\u5185\u5B58\u8BBE\u7F6E\u53EF\u53C2\u8003 \u914D\u7F6E CMA \u8BBE\u5907\u6587\u4EF6 /dev/fb0 \u7F3A\u5931 \u663E\u793A\u6A21\u5757\u9A71\u52A8\u521D\u59CB\u5316\u5931\u8D25\u3002\u53EF\u901A\u8FC7 debugfs \u67E5\u770B component \u6846\u67B6\u4E0B\u663E\u793A\u5F15\u64CE\uFF0C\u663E\u793A\u63A5\u53E3\uFF0Cpanel \u7684 bind...","topics/sdk/display/display_fb_roatate_buffer_choice.html@@@\u573A\u666F\u9009\u62E9@@@ArtInChip \u5E73\u53F0\u5728\u8FDB\u884C\u5C4F\u5E55\u65CB\u8F6C\u65F6\uFF0C\u517C\u5BB9\u5355 buffer \u548C\u53CC buffer \u7684\u5E94\u7528\u7A0B\u5E8F\uFF0C\u53EF\u4EE5\u63D0\u4F9B\u591A\u79CD\u5C4F\u5E55\u65CB\u8F6C\u573A\u666F\u4F9B\u7528\u6237\u9009\u62E9\u3002\u5404\u79CD\u573A\u666F\u7684\u8BE6\u7EC6\u5BF9\u6BD4\u8BF4\u660E\u5982\u4E0B\u8868\u6240\u793A\uFF1A \u8868 1 . \u5C4F\u5E55\u65CB\u8F6C\u573A\u666F\u5BF9\u6BD4 \u573A\u666F \u4F18\u52BF \u52A3\u52BF \u53CC\u7ED8\u5236 buffer \u548C\u53CC\u663E\u793A buffer \u5BF9\u5E94\u7528\u53CB\u597D\uFF0C\u4EC5\u9700\u4FEE\u6539 dts \u914D\u7F6E\u5373\u53EF\u8FBE\u6210\u7AD6\u5C4F\u6A2A\u7528\uFF0C\u4E0D\u9700\u8981\u4FEE\u6539\u4E0A\u5C42\u5E94\u7528\u3002 \u5360\u7528\u7684\u5185\u5B58\u8D44\u6E90\u591A\uFF0C\u9700\u8981 4 \u5757 buf\uFF0C\u6709\u4E00\u5757\u7ED8\u5236 buf...","topics/sdk/display/display_fb_rotation.html@@@\u5C4F\u5E55\u65CB\u8F6C@@@ArtInChip \u5E73\u53F0\u652F\u6301\u5C4F\u5E55\u65CB\u8F6C\uFF0C\u652F\u6301\u7AD6\u5C4F\u6A2A\u7528\u548C\u6A2A\u5C4F\u7AD6\u7528\uFF0C\u517C\u5BB9\u5355\u7F13\u51B2 \u548C\u53CC\u7F13\u51B2\u7684\u5E94\u7528\u7A0B\u5E8F\u3002 Display Engine \u5E76\u4E0D\u63D0\u4F9B\u65CB\u8F6C\u529F\u80FD\uFF0C\u65CB\u8F6C\u662F\u7531\u663E\u793A\u9A71\u52A8\u8C03\u7528 Graphics Engine \u5B9E\u73B0\u7684\u3002\u652F\u6301\u987A\u65F6\u9488\u65CB\u8F6C 0\u00B0/ 90\u00B0/ 180\u00B0/ 270\u00B0\u3002 LCD \u9002\u914D \u65E0\u8BBA\u662F\u7AD6\u5C4F\u6A2A\u7528\uFF0C\u8FD8\u662F\u6A2A\u5C4F\u7AD6\u7528\uFF0C\u5728\u9002\u914D LCD \u5C4F\u5E55\u65F6\uFF0C\u6309\u7167\u5C4F\u5E55\u7684\u7269\u7406\u5BBD\u9AD8\u914D\u7F6E\u65F6\u5E8F\u53C2\u6570\u5373\u53EF\uFF0C\u4E0D\u9700\u8981\u5C06\u65F6\u5E8F\u53C2\u6570\u4E2D\u7684\u5BBD\u9AD8\u4E92\u6362\u3002...","topics/sdk/display/display_init_process.html@@@\u521D\u59CB\u5316\u6D41\u7A0B@@@Probe \u548C Bind \u8FC7\u7A0B \u4E3A\u4E86\u7EA6\u675F\u521D\u59CB\u5316\u987A\u5E8F\uFF0CAICFB \u4E3A component \u7684 master \u8BBE\u5907\uFF0CDE\u3001DI \u548C panel \u4E3A slave \u8BBE\u5907\uFF0Ccomponent \u6846\u67B6\u4FDD\u8BC1 master \u7684\u521D\u59CB\u5316\u987A\u5E8F\u5728\u6240\u6709 slave \u4E4B\u540E\u3002\u5404\u6A21\u5757\u7684\u521D\u59CB\u5316\u987A\u5E8F\u5982\u4E0B\uFF1A \u56FE 1 . \u663E\u793A\u6A21\u5757\u7684\u521D\u59CB\u5316\u987A\u5E8F \u5176\u4E2D\uFF1A Master \u8C03\u7528 component_match_add() \u63A5\u53E3\u58F0\u660E\u4E00\u4E2A match...","topics/sdk/display/display_interface.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@AICFB \u663E\u793A\u9A71\u52A8\u63A5\u53E3\u5206\u53EF\u4E3A\u6807\u51C6\u529F\u80FD\u548C\u6269\u5C55\u529F\u80FD\u3002 \u6807\u51C6\u529F\u80FD\uFF1A \u5C06\u7269\u7406\u663E\u5B58\u6620\u5C04\u5230\u7528\u6237\u7A7A\u95F4 \u83B7\u53D6\u663E\u793A\u5C4F\u7684\u5206\u8FA8\u7387\u548C\u83B7\u53D6 Framebuffer \u7684\u50CF\u7D20\u683C\u5F0F \u652F\u6301\u5355\u7F13\u51B2 Framebuffer \u548C\u53CC\u7F13\u51B2 Framebuffer \u53EF\u914D\u7F6E \u6269\u5C55\u529F\u80FD\uFF1A \u83B7\u53D6\u56FE\u5C42\u4E2A\u6570 \u83B7\u53D6\u56FE\u5C42\u80FD\u529B \u83B7\u53D6\u56FE\u5C42\u914D\u7F6E\u6570\u636E \u66F4\u65B0\u56FE\u5C42\u914D\u7F6E\u6570\u636E \u652F\u6301\u540C\u65F6\u66F4\u65B0\u591A\u56FE\u5C42\u914D\u7F6E\u6570\u636E \u652F\u6301\u56FE\u5C42 scaler \u8BBE\u7F6E \u652F\u6301 alpha blending...","topics/sdk/display/display_mem_managment.html@@@\u9884\u7559\u5185\u5B58\u7BA1\u7406\u6D41\u7A0B@@@CMA Linux-3.5 \u5F15\u5165\u4E86\u4E00\u5957 Contiguous Memory Allocator\uFF0C\u7B80\u79F0 CMA\uFF0C\u57FA\u4E8E DMA \u6620\u5C04\u6846\u67B6\u4E3A\u5185\u6838\u63D0\u4F9B\u8FDE\u7EED\u5927\u5757\u5185\u5B58\u7684\u7533\u8BF7\u548C\u91CA\u653E\u3002CMA \u4E3B\u8981\u601D\u8DEF\u662F\u5C06\u9884\u7559\u5185\u5B58\u7EB3\u5165 DMA \u6620\u5C04\u7BA1\u7406\uFF0C\u53EF\u4EE5\u7ED9\u7CFB\u7EDF\u5185\u6240\u6709\u8BBE\u5907\u5171\u4EAB\u4F7F\u7528\uFF0C\u8FD9\u6837\u5C31\u65E2\u89E3\u51B3\u4E86\u4E3A GPU\u3001Camera\u3001\u663E\u793A\u7B49\u56FE\u50CF\u5904\u7406\u7C7B\u6A21\u5757\u9884\u7559\u5927\u5757\u7684\u8FDE\u7EED\u5185\u5B58\uFF0C\u53C8\u89E3\u51B3\u4E86\u9884\u7559\u5185\u5B58\u88AB\u7A7A\u7F6E\u7684\u95EE\u9898\uFF0C\u63D0\u5347\u5185\u5B58\u4F7F\u7528\u7387\u3002 CMA...","topics/sdk/display/display_menuconfig.html@@@menuconfig \u914D\u7F6E@@@\u5728 Luban \u6839\u76EE\u5F55\u4E0B\u6267\u884C make linux-menuconfig \uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\uFF0C\u4F7F\u80FD\u663E\u793A\u6A21\u5757\u9A71\u52A8\uFF1A Linux Device Drivers Graphics support ArtInChip Graphics ---> <*> ArtInChip Framebuffer support \u5C06\u663E\u793A\u63A5\u53E3\u7F16\u8BD1\u8FDB\u5185\u6838\u3002 \u53EF\u4EE5\u7F16\u8BD1\u6240\u6709\u663E\u793A\u63A5\u53E3\uFF0C\u4F46\u53EA\u6709 panel...","topics/sdk/display/display_menuconfig_2.html@@@menuconfig \u914D\u7F6E@@@\u5728 Luban \u6839\u76EE\u5F55\u4E0B\u6267\u884C make linux-menuconfig \uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\uFF0C\u4F7F\u80FD\u663E\u793A\u6A21\u5757\u9A71\u52A8\uFF1A Linux Device Drivers Graphics support ArtInChip Graphics ---> <*> ArtInChip Framebuffer support \u5C06\u663E\u793A\u63A5\u53E3\u7F16\u8BD1\u8FDB\u5185\u6838\u3002 \u53EF\u4EE5\u7F16\u8BD1\u6240\u6709\u663E\u793A\u63A5\u53E3\uFF0C\u4F46\u53EA\u6709 panel...","topics/sdk/display/display_panel_port.html@@@\u5C4F\u9002\u914D\u6307\u5357@@@\u672C\u7AE0\u8282\u4ECB\u7ECD LCD \u5916\u8BBE\u5728 Luban \u4E0A\u7684\u9002\u914D\u65B9\u6CD5\u3002\u7528\u6237\u53EF\u9009\u62E9\u4EE5\u4E0B\u4EFB\u610F\u65B9\u5F0F\u914D\u7F6E\u5C4F\u53C2\u6570\uFF1A \u5C06\u4EE5\u4E0B\u5C4F\u53C2\u6570\u5199\u5165 panel \u9A71\u52A8\u6E90\u7801\u4E2D\uFF1A \u6CE8\uFF1A \u5BF9\u4E8E\u5C4F\u65F6\u5E8F\u53C2\u6570\uFF0C\u53EA\u6709\u5F53 board.dts \u6587\u4EF6\u7684 panel \u7ED3\u70B9\u6CA1\u6709\u8BBE\u7F6E display-timings \u5B50\u8282\u70B9\u65F6\uFF0C\u6B64\u65B9\u5F0F\u624D\u4F1A\u751F\u6548\u3002 \u65F6\u5E8F\u53C2\u6570 /* Init the videomode parameter, dts will override the...","topics/sdk/display/display_parameter_backlight.html@@@PWM Backlight@@@panel_rgb { ... backlight = <&backlight>; } backlight: backlight { compatible = "pwm-backlight" ; /* pwm node name; pwm device No.; period_ns; pwm_polarity */ pwms = <&pwm 2 1000000 0 >...","topics/sdk/display/display_parameter_backlight_2.html@@@PWM Backlight@@@panel_rgb { ... backlight = <&backlight>; } backlight: backlight { compatible = "pwm-backlight" ; /* pwm node name; pwm device No.; period_ns; pwm_polarity */ pwms = <&pwm 2 1000000 0 >...","topics/sdk/display/display_parameter_display_engine.html@@@Display Engine@@@&de0 { status = "okay" ; port@ 0 { reg = < 0 >; de0_in: endpoint { remote-endpoint = <&fb0_out>; }; }; port@ 1 { reg = < 1 >; de0_out: endpoint { remote-endpoint = <&lvds0_in>; }; }; }; \u8868 1 . MIPI-DBI...","topics/sdk/display/display_parameter_display_engine_2.html@@@Display Engine@@@&de0 { status = "okay" ; port@ 0 { reg = < 0 >; de0_in: endpoint { remote-endpoint = <&fb0_out>; }; }; port@ 1 { reg = < 1 >; de0_out: endpoint { remote-endpoint = <&lvds0_in>; }; }; }; \u8868 1 . MIPI-DBI...","topics/sdk/display/display_parameter_display_fb0.html@@@Display FB0@@@&fb0 { artinchip,uboot-logo-on=< 1 >; rotation-degress = < 270 >; rotation-buf-num = < 2 >; height-virtual = < 2160 >; disp-bright = < 45 >; disp-contrast = < 50 >; disp-saturation = < 60 >; disp-hue...","topics/sdk/display/display_parameter_display_fb0_2.html@@@Display FB0@@@&fb0 { artinchip,uboot-logo-on=< 1 >; rotation-degress = < 270 >; rotation-buf-num = < 2 >; height-virtual = < 2160 >; disp-bright = < 45 >; disp-contrast = < 50 >; disp-saturation = < 60 >; disp-hue...","topics/sdk/display/display_parameter_display_interface.html@@@Display Interface@@@RGB Display Interface &rgb0 { pinctrl-names = "default" ; pinctrl- 0 = <&lcd_pins>; status = "okay" ; port@ 0 { reg = < 0 >; rgb0_in: endpoint { remote-endpoint = <&de0_out>; }; }; port@ 1 { reg = < 1...","topics/sdk/display/display_parameter_display_interface_2.html@@@Display Interface@@@RGB Display Interface &rgb0 { pinctrl-names = "default" ; pinctrl- 0 = <&lcd_pins>; status = "okay" ; port@ 0 { reg = < 0 >; rgb0_in: endpoint { remote-endpoint = <&de0_out>; }; }; port@ 1 { reg = < 1...","topics/sdk/display/display_parameter_function_config.html@@@\u529F\u80FD\u53C2\u6570\u914D\u7F6E@@@\u529F\u80FD\u53C2\u6570\u4F1A\u968F\u7740\u4F7F\u7528\u65B9\u6848\u7684\u6539\u53D8\u800C\u53D8\u5316\uFF0C\u4E3B\u8981\u5B58\u50A8\u5728 target/d211/\u65B9\u6848/x/board.dts \u6587\u4EF6\u4E2D\uFF0C\u8BBE\u7F6E\u7684\u529F\u80FD\u53C2\u6570\u5FC5\u987B\u548C\u786C\u4EF6\u539F\u7406\u56FE\u76F8\u5339\u914D\u3002 \u529F\u80FD\u53C2\u6570\u7684\u8BBE\u7F6E\u4EA6\u53EF\u53C2\u770B\u4EE5\u4E0B\u8DEF\u5F84\u7684\u5185\u6838\u6587\u6863\uFF1A linux- 5.10 /Documentation/devicetree/bindings/display/artinchip/ artinchip-de.txt artinchip-dsi.txt...","topics/sdk/display/display_parameter_function_config_2.html@@@\u529F\u80FD\u53C2\u6570\u914D\u7F6E@@@\u529F\u80FD\u53C2\u6570\u4F1A\u968F\u7740\u4F7F\u7528\u65B9\u6848\u7684\u6539\u53D8\u800C\u53D8\u5316\uFF0C\u4E3B\u8981\u5B58\u50A8\u5728 target/d211/\u65B9\u6848/x/board.dts \u6587\u4EF6\u4E2D\uFF0C\u8BBE\u7F6E\u7684\u529F\u80FD\u53C2\u6570\u5FC5\u987B\u548C\u786C\u4EF6\u539F\u7406\u56FE\u76F8\u5339\u914D\u3002 \u529F\u80FD\u53C2\u6570\u7684\u8BBE\u7F6E\u4EA6\u53EF\u53C2\u770B\u4EE5\u4E0B\u8DEF\u5F84\u7684\u5185\u6838\u6587\u6863\uFF1A linux- 5.10 /Documentation/devicetree/bindings/display/artinchip/ artinchip-de.txt artinchip-dsi.txt...","topics/sdk/display/display_parameter_panel_dbi.html@@@Panel_DBI@@@panel_dbi \u7ED3\u70B9\u7684\u8BE6\u7EC6\u53C2\u6570\u914D\u7F6E\u548C\u63CF\u8FF0\u5982\u4E0B\uFF1A \u6CE8\uFF1A \u76F8\u5173\u5B8F\u5B9A\u4E49\u53D6\u503C\u5728\u6587\u4EF6 include/dt-bindings/display/artinchip,aic-disp.h \u4E2D\u3002\u5173\u4E8E\u5404\u53C2\u6570\u7684\u5B8F\u5B9A\u4E49\u53D6\u503C\u63CF\u8FF0\uFF0C\u53EF\u67E5\u770B \u5B8F\u5B9A\u4E49\u53D6\u503C \u3002 panel_dbi { compatible = "artinchip,aic-dbi-panel-simple" ; status = "okay" ; port...","topics/sdk/display/display_parameter_panel_dbi_2.html@@@Panel_DBI@@@panel_dbi \u7ED3\u70B9\u7684\u8BE6\u7EC6\u53C2\u6570\u914D\u7F6E\u548C\u63CF\u8FF0\u5982\u4E0B\uFF1A \u6CE8\uFF1A \u76F8\u5173\u5B8F\u5B9A\u4E49\u53D6\u503C\u5728\u6587\u4EF6 include/dt-bindings/display/artinchip,aic-disp.h \u4E2D\u3002\u5173\u4E8E\u5404\u53C2\u6570\u7684\u5B8F\u5B9A\u4E49\u53D6\u503C\u63CF\u8FF0\uFF0C\u53EF\u67E5\u770B \u5B8F\u5B9A\u4E49\u53D6\u503C \u3002 panel_dbi { compatible = "artinchip,aic-dbi-panel-simple" ; status = "okay" ; port...","topics/sdk/display/display_parameter_panel_dsi.html@@@Panel_DSI@@@panel_dsi \u7ED3\u70B9\u7684\u8BE6\u7EC6\u53C2\u6570\u914D\u7F6E\u548C\u63CF\u8FF0\u5982\u4E0B\uFF1A \u6CE8\uFF1A \u76F8\u5173\u5B8F\u5B9A\u4E49\u53D6\u503C\u5728\u6587\u4EF6 include/dt-bindings/display/artinchip,aic-disp.h \u4E2D\u3002\u5173\u4E8E\u5404\u53C2\u6570\u7684\u5B8F\u5B9A\u4E49\u53D6\u503C\u63CF\u8FF0\uFF0C\u53EF\u67E5\u770B \u5B8F\u5B9A\u4E49\u53D6\u503C \u3002 panel_dsi { compatible = "artinchip,aic-dsi-panel-simple" ; backlight =...","topics/sdk/display/display_parameter_panel_dsi_2.html@@@Panel_DSI@@@panel_dsi \u7ED3\u70B9\u7684\u8BE6\u7EC6\u53C2\u6570\u914D\u7F6E\u548C\u63CF\u8FF0\u5982\u4E0B\uFF1A \u6CE8\uFF1A \u76F8\u5173\u5B8F\u5B9A\u4E49\u53D6\u503C\u5728\u6587\u4EF6 include/dt-bindings/display/artinchip,aic-disp.h \u4E2D\u3002\u5173\u4E8E\u5404\u53C2\u6570\u7684\u5B8F\u5B9A\u4E49\u53D6\u503C\u63CF\u8FF0\uFF0C\u53EF\u67E5\u770B \u5B8F\u5B9A\u4E49\u53D6\u503C \u3002 panel_dsi { compatible = "artinchip,aic-dsi-panel-simple" ; backlight =...","topics/sdk/display/display_parameter_panel_lvds.html@@@Panel_LVDS@@@panel_lvds \u7ED3\u70B9\u7684\u8BE6\u7EC6\u53C2\u6570\u914D\u7F6E\u548C\u63CF\u8FF0\u5982\u4E0B\uFF1A \u6CE8\uFF1A \u76F8\u5173\u5B8F\u5B9A\u4E49\u53D6\u503C\u5728\u6587\u4EF6 include/dt-bindings/display/artinchip,aic-disp.h \u4E2D\u3002\u5173\u4E8E\u5404\u53C2\u6570\u7684\u5B8F\u5B9A\u4E49\u53D6\u503C\u63CF\u8FF0\uFF0C\u53EF\u67E5\u770B \u5B8F\u5B9A\u4E49\u53D6\u503C \u3002 panel_lvds { compatible = "artinchip,aic-general-lvds-panel" ; data-mapping =...","topics/sdk/display/display_parameter_panel_lvds_2.html@@@Panel_LVDS@@@panel_lvds \u7ED3\u70B9\u7684\u8BE6\u7EC6\u53C2\u6570\u914D\u7F6E\u548C\u63CF\u8FF0\u5982\u4E0B\uFF1A \u6CE8\uFF1A \u76F8\u5173\u5B8F\u5B9A\u4E49\u53D6\u503C\u5728\u6587\u4EF6 include/dt-bindings/display/artinchip,aic-disp.h \u4E2D\u3002\u5173\u4E8E\u5404\u53C2\u6570\u7684\u5B8F\u5B9A\u4E49\u53D6\u503C\u63CF\u8FF0\uFF0C\u53EF\u67E5\u770B \u5B8F\u5B9A\u4E49\u53D6\u503C \u3002 panel_lvds { compatible = "artinchip,aic-general-lvds-panel" ; data-mapping =...","topics/sdk/display/display_parameter_panel_rgb.html@@@Panel_RGB@@@panel_rgb \u7ED3\u70B9\u7684\u8BE6\u7EC6\u53C2\u6570\u914D\u7F6E\u548C\u63CF\u8FF0\u5982\u4E0B\uFF1A \u6CE8\uFF1A \u76F8\u5173\u5B8F\u5B9A\u4E49\u53D6\u503C\u5728\u6587\u4EF6 include/dt-bindings/display/artinchip,aic-disp.h \u4E2D\u3002\u5173\u4E8E\u5404\u53C2\u6570\u7684\u5B8F\u5B9A\u4E49\u53D6\u503C\u63CF\u8FF0\uFF0C\u53EF\u67E5\u770B \u5B8F\u5B9A\u4E49\u53D6\u503C \u3002 panel_rgb { compatible = "artinchip,aic-general-rgb-panel" ; status = "okay"...","topics/sdk/display/display_parameter_panel_rgb_2.html@@@Panel_RGB@@@panel_rgb \u7ED3\u70B9\u7684\u8BE6\u7EC6\u53C2\u6570\u914D\u7F6E\u548C\u63CF\u8FF0\u5982\u4E0B\uFF1A \u6CE8\uFF1A \u76F8\u5173\u5B8F\u5B9A\u4E49\u53D6\u503C\u5728\u6587\u4EF6 include/dt-bindings/display/artinchip,aic-disp.h \u4E2D\u3002\u5173\u4E8E\u5404\u53C2\u6570\u7684\u5B8F\u5B9A\u4E49\u53D6\u503C\u63CF\u8FF0\uFF0C\u53EF\u67E5\u770B \u5B8F\u5B9A\u4E49\u53D6\u503C \u3002 panel_rgb { compatible = "artinchip,aic-general-rgb-panel" ; status = "okay"...","topics/sdk/display/display_parameter_sys_config.html@@@\u7CFB\u7EDF\u53C2\u6570\u914D\u7F6E@@@\u7CFB\u7EDF\u53C2\u6570\u4E3B\u8981\u5B58\u653E\u4E8E target/ board /common/ board .dtsi \u6587\u4EF6\u4E2D\uFF0C\u4F8B\u5982 target/d211/common/d211.dtsi \u3002\u6A21\u5757\u7CFB\u7EDF\u53C2\u6570\u968F\u7740 IC \u7684\u53D8\u5316\u800C\u6539\u53D8\uFF0C\u4E0D\u5EFA\u8BAE\u7528\u6237\u4FEE\u6539\u3002\u5404\u7C7B\u578B\u663E\u793A\u5C4F\u5E38\u89C1\u7684\u7CFB\u7EDF\u53C2\u6570\u5982\u4E0B\u6240\u793A\uFF1A Display FB0 display-fb { compatible = "artinchip,aic-framebuffer"...","topics/sdk/display/display_parameter_sys_config_2.html@@@\u7CFB\u7EDF\u53C2\u6570\u914D\u7F6E@@@\u7CFB\u7EDF\u53C2\u6570\u4E3B\u8981\u5B58\u653E\u4E8E target/ board /common/ board .dtsi \u6587\u4EF6\u4E2D\uFF0C\u4F8B\u5982 target/d211/common/d211.dtsi \u3002\u6A21\u5757\u7CFB\u7EDF\u53C2\u6570\u968F\u7740 IC \u7684\u53D8\u5316\u800C\u6539\u53D8\uFF0C\u4E0D\u5EFA\u8BAE\u7528\u6237\u4FEE\u6539\u3002\u5404\u7C7B\u578B\u663E\u793A\u5C4F\u5E38\u89C1\u7684\u7CFB\u7EDF\u53C2\u6570\u5982\u4E0B\u6240\u793A\uFF1A Display FB0 display-fb { compatible = "artinchip,aic-framebuffer"...","topics/sdk/display/display_sourcecode_and_arch.html@@@\u6E90\u7801\u548C\u6846\u67B6\u8BF4\u660E@@@\u6E90\u7801\u8BF4\u660E \u672C\u6A21\u5757\u6E90\u4EE3\u7801\u5728\u5185\u6838\u76EE\u5F55 linux-5.10/drivers/video/artinchip/disp \u4E0B\uFF0C\u76EE\u5F55\u7ED3\u6784\u5982\u4E0B\uFF1A \u251C\u2500\u2500 aic_com.h // \u663E\u793A\u9A71\u52A8\u5171\u7528\u7684\u5934\u6587\u4EF6\uFF0C\u5176\u4E2D\u5B9A\u4E49\u4E86\u5BC4\u5B58\u5668\u3001\u5171\u7528\u6570\u636E\u7ED3\u6784\u3001\u5168\u5C40\u51FD\u6570\u7B49 \u251C\u2500\u2500 aic_fb.c // \u5BF9\u63A5 fbdev \u6846\u67B6\uFF0C\u5E76\u8FDB\u884C\u6269\u5C55 \u251C\u2500\u2500 aic_de.c // \u663E\u793A\u5F15\u64CE\u9A71\u52A8 \u251C\u2500\u2500 aic_dsi.c // mipi-dsi...","topics/sdk/display/display_test_guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \u786C\u4EF6 \u5F00\u53D1\u677F\uFF0C\u6216\u8005 D211 \u7684 FPGA \u677F \u53EF\u8F6C\u63A5 LVDS \u7684\u5B50\u677F LVDS \u5C4F\u5E55\uFF0C7 \u5BF8 TFT \u5C4F\u5E55\uFF0C\u9A71\u52A8\u82AF\u7247 EK79001+EK73215 \u8F6F\u4EF6 PC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 \u663E\u793A\u6A21\u5757\u7684\u6D4B\u8BD5 demo\uFF1A test_dmabuf \u8F6F\u4EF6\u914D\u7F6E \u6D4B\u8BD5\u4E2D\u9700\u8981\u7528\u5230 LVDS \u5C4F\u5E55\uFF0C\u4EE5\u9A71\u52A8\u82AF\u7247 EK79001+EK73215 \u4E3A\u4F8B\u3002 \u5728 Luban...","topics/sdk/display/display_user_guide.html@@@Display \u4F7F\u7528\u6307\u5357@@@\u663E\u793A\u5B50\u7CFB\u7EDF (DSS) \u8D1F\u8D23\u5C06\u5185\u5B58\u4E2D\u7684\u6570\u636E\u8F6C\u6362\u6210 LCD \u4FE1\u53F7\u8F93\u51FA\u3002DSS \u5305\u62EC\u4EE5\u4E0B\u4E3B\u8981\u7EC4\u4EF6\uFF1A \u663E\u793A\u5F15\u64CE (DE)\uFF1A\u63D0\u4F9B\u591A\u56FE\u5C42\u53E0\u52A0\uFF0C\u652F\u6301 Alpha Blending \u548C Color Key\uFF0C\u652F\u6301\u5404\u79CD\u50CF\u7D20\u64CD\u4F5C\uFF0C\u4F8B\u5982\u989C\u8272\u7A7A\u95F4\u8F6C\u6362\u548C\u7F29\u653E\u7B49\u3002 \u663E\u793A\u63A5\u53E3 (DI)\uFF1A\u5C06\u663E\u793A\u8F93\u51FA\u7684\u65E0\u7F1D\u8FDE\u63A5\u5230 LCD \u5916\u8BBE\uFF0C\u652F\u6301 RGB/ LVDS/ DSI/ I8080/ SPI \u7B49\u63A5\u53E3\u6807\u51C6\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED...","topics/sdk/dma/dma-configuration.html@@@DMA \u914D\u7F6E@@@DMA \u5305\u542B\u4EE5\u4E0B\u914D\u7F6E\u5185\u5BB9\uFF1A \u5185\u6838\u914D\u7F6E\u3002 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers [*] DMA Engine support <*> ArtInChip SoCs DMA support DTS \u53C2\u6570\u914D\u7F6E\u3002 D211...","topics/sdk/dma/dma-data-structure.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@\u672C\u8282\u4ECB\u7ECD\u4E86 DMA \u6570\u636E\u7C7B\u578B\u53CA\u5176\u7ED3\u6784\u63CF\u8FF0\u3002 struct aic_dma_dev \u8BB0\u5F55 DMA \u63A7\u5236\u5668\u7684\u914D\u7F6E\u4FE1\u606F\uFF1A struct aic_dma_dev { void __iomem *base; int irq; u32 num_pchans; u32 num_vchans; u32 max_request; struct clk *clk; struct reset_control...","topics/sdk/dma/dma-debug-guide.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF0C\u6253\u5F00 DMA \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A Linux Kernel hacking [*] DMA Engine support [*] DMA Engine debugging [*] DMA Engine...","topics/sdk/dma/dma-demo.html@@@Demo@@@SPI \u9A71\u52A8\uFF08\u8BE6\u89C1 drivers/spi/spi-artinchip.c \uFF09\u4E2D\u8C03\u7528\u4E86 DMA \u8FDB\u884C\u6570\u636E\u4F20\u8F93\uFF0C\u5176\u4F7F\u7528\u8FC7\u7A0B\u53EF\u4EE5\u5F53\u4F5C Demo \u53C2\u8003\u3002 DMA \u901A\u9053\u7684\u7533\u8BF7 static int aic_spi_probe( struct platform_device *pdev) { ... aicspi->dma_rx =...","topics/sdk/dma/dma-design-guide.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@DMA \u6E90\u4EE3\u7801\u4F4D\u4E8E drivers/dma/artinchip-dma.c \u3002 Linux \u63D0\u4F9B\u4E86\u4E00\u4E2A DMA Engine \u5B50\u7CFB\u7EDF\uFF0C\u53EF\u5C01\u88C5\u4E0D\u540C\u7C7B\u578B\u7684 DMA \u63A7\u5236\u5668\u9A71\u52A8\uFF0C\u4FBF\u4E8E DMA \u7528\u6237\u4E86\u89E3\u786C\u4EF6\u7EC6\u8282\u3002 \u56FE 1 . Linux DMA Engine \u5B50\u7CFB\u7EDF\u67B6\u6784 Linux DMA Engine \u5B50\u7CFB\u7EDF\u67B6\u6784 \u5C55\u793A\u4E86 DMA Engine \u4E2D\u7684\u4E0B\u5217\u7EC4\u6210\u90E8\u5206\uFF1A DMA Device \u5BF9\u5E94\u7269\u7406\u4E0A\u7684\u4E00\u4E2A...","topics/sdk/dma/dma-drivers.html@@@DMA@@@\u6B64\u5904\u63CF\u8FF0\u7684 DMA \u662F ArtInChip \u5E73\u53F0\u4E0A\u7684\u7CFB\u7EDF DMA\u3002\u4E00\u4E9B\u786C\u4EF6 IP \u5185\u90E8\u81EA\u5E26\u7684 DMA \u4E0D\u5728\u8FD9\u91CC\u63CF\u8FF0\u7684\u8303\u56F4\u3002 \u9A71\u52A8\u6846\u67B6 U-Boot \u9A71\u52A8\u6A21\u578B\u652F\u6301 DMA\uFF0CArtInChip \u5E73\u53F0\u4E2D DMA \u9A71\u52A8\u57FA\u4E8E\u8BE5\u6846\u67B6\u8FDB\u884C\u5B9E\u73B0\u3002 \u76F8\u5173\u914D\u7F6E\u4E3A\uFF1A CONFIG_DMA CONFIG_ARTINCHIP_DMA \u76F8\u5173\u6E90\u7801\u6709\uFF1A include/dma.h drivers/dma/dma-uclass.c...","topics/sdk/dma/dma-faq.html@@@\u5E38\u89C1\u95EE\u9898@@@dmatest \u65F6 verify \u6570\u636E\u62A5\u9519 \u73B0\u8C61 \u5F53\u8FD0\u884C dmatest \u6D4B\u8BD5\u65F6\uFF0C\u9519\u8BEF log \u7C7B\u4F3C\u5982\u4E0B\uFF1A [ 381.878419 ] dmatest: dma0chan5-copy0: dstbuf[ 0x3f70 ] mismatch! Expected cf, got d7 [ 381.885999 ] dmatest: dma0chan5-copy0: dstbuf[ 0x3f71 ]...","topics/sdk/dma/dma-interface-design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u4EE5\u4E0B\u63A5\u53E3\u662F\u9075\u5FAA Linux DMA Engine \u5B50\u7CFB\u7EDF\u7684\u6807\u51C6\u63A5\u53E3\uFF1A \u8868 1 . aic_dma_config \u51FD\u6570\u539F\u578B static int aic_dma_config(struct dma_chan *chan, struct dma_slave_config *config) \u529F\u80FD\u8BF4\u660E \u914D\u7F6E\u6307\u5B9A\u7684 DMA \u7269\u7406\u901A\u9053 \u53C2\u6570\u5B9A\u4E49 chan - \u6307\u5411\u4E00\u4E2A DMA \u7269\u7406\u901A\u9053 config...","topics/sdk/dma/dma-key-procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u672C\u8282\u4ECB\u7ECD\u4E86 DMA \u6A21\u5757\u7684\u5173\u952E\u6D41\u7A0B\u3002 \u521D\u59CB\u5316\u6D41\u7A0B DMA \u9A71\u52A8\u7684\u521D\u59CB\u5316\u8FC7\u7A0B\u89C1 aic_dma_probe() \u51FD\u6570\u3002 \u9664\u4E86\u6267\u884C\u666E\u901A platform \u8BBE\u5907\u7684\u5904\u7406\u8FC7\u7A0B\uFF0C\u5982\u7533\u8BF7 regs \u8D44\u6E90\u3001clk\u3001reset \u7B49\uFF0C\u8FD8\u9700\u8981\u8C03\u7528 DMA \u5B50\u7CFB\u7EDF\u7684\u63A5\u53E3 dma_async_device_register() \u6765\u6CE8\u518C DMA \u5907\uFF0C\u793A\u4F8B\u5982\u4E0B\uFF1A int dma_async_device_register(...","topics/sdk/dma/dma-test-guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@DMA \u6D4B\u8BD5\u6240\u9700\u7684\u6D4B\u8BD5\u73AF\u5883\u5982\u4E0B\uFF1A \u786C\u4EF6 \uFF1A\u5F00\u53D1\u677F\u6216 FPGA \u677F \u8F6F\u4EF6 \uFF1A PC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 Linux \u5185\u6838\u539F\u751F\u7684 dmatest \u6A21\u5757 \u6CE8\uFF1A dmatest \u6A21\u5757 \u53EA\u9650\u4E8E\u6D4B\u8BD5 Mem To Mem \u7684\u6570\u636E\u4F20\u8F93\u64CD\u4F5C\u3002 \u914D\u7F6E\u8F6F\u4EF6 \u8FDB\u5165 Luban \u7684\u6839\u76EE\u5F55\uFF0C\u6267\u884C make menuconfig \u547D\u4EE4\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers...","topics/sdk/dma/dma-user-guide.html@@@DMA \u4F7F\u7528\u6307\u5357@@@Direction memory access (DMA) \u6A21\u5757\u63D0\u4F9B\u4E00\u79CD\u9AD8\u6548\u7684\u6570\u636E\u4F20\u8F93\u6280\u672F\uFF0C\u80FD\u591F\u5728\u4E0D\u53D7 CPU \u5E72\u9884\u7684\u60C5\u51B5\u4E0B\u8FDB\u884C\u8BBE\u5907\u95F4\u7684\u6570\u636E\u4F20\u8F93\uFF0C\u4ECE\u800C\u51CF\u5C11 CPU \u8D1F\u8377\u3002CPU \u4F7F\u80FD DMA \u4E4B\u540E\uFF0C\u5C31\u9000\u51FA\u64CD\u4F5C\uFF0C\u7531 DMA \u72EC\u7ACB\u81EA\u4E3B\u63A7\u5236\u6570\u636E\u4F20\u8F93\u3002\u6B64\u5916\uFF0CDMA \u63D0\u4F9B\u7684\u6570\u636E\u4EA4\u6362\u5177\u6709\u9AD8\u5E26\u5BBD\u548C\u4F4E\u5EF6\u8FDF\u7684\u4F18\u70B9\u3002 \u6CE8\uFF1A \u5173\u4E8E DMA \u53EF\u4EE5\u8FDE\u63A5\u7684\u8BBE\u5907\u5217\u8868\uFF0C\u53EF\u67E5\u770B\u5177\u4F53\u4EA7\u54C1\u578B\u53F7\u5BF9\u5E94\u7684\u6570\u636E\u624B\u518C\u3002\u5173\u4E8E DMA...","topics/sdk/dvp/dvp_config.html@@@DVP \u914D\u7F6E@@@DVP \u5305\u62EC\u4EE5\u4E0B\u914D\u7F6E\u5185\u5BB9\uFF1A \u5185\u6838\u914D\u7F6E DVP \u9A71\u52A8\u4F9D\u8D56 buf\u3001CMA\u3001V4L2 \u6A21\u5757\uFF0C\u6240\u4EE5\u9700\u8981\u63D0\u524D\u6253\u5F00\u3002 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Memory Management options [*] Contiguous Memory...","topics/sdk/dvp/dvp_data_struct.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@DVP \u81EA\u5B9A\u4E49\u7684\u6570\u636E\u7ED3\u6784\u90FD\u5728 aic_dvp.h \u4E2D\u3002 struct aic_dvp\uFF1A\u5B9A\u4E49\u4E86 DVP \u63A7\u5236\u5668\u7684\u8BBE\u5907\u7BA1\u7406\u4FE1\u606F\uFF1A struct aic_dvp { /* Device resources */ struct device *dev; void __iomem *regs; struct clk *clk; struct reset_control *rst; u32 clk_rate...","topics/sdk/dvp/dvp_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6253\u5F00 DVP \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A Linux Kernel hacking Artinchip Debug [*] DVP driver debug \u6253\u5F00 DEBUG \u9009\u9879\u540E\uFF1A \u9A71\u52A8\u4EE5 -O0 \u7F16\u8BD1\u3002...","topics/sdk/dvp/dvp_demo.html@@@APP Demo@@@APP \u5C42\u7684\u5904\u7406\u6D41\u7A0B APP \u4E2D\u5B9E\u73B0\u4ECE Sensor -> DVP -> DE \u7684\u6570\u636E\u901A\u8DEF\uFF0C\u6574\u4F53\u7684\u5904\u7406\u6D41\u7A0B\u5982\u4E0B\u56FE\uFF08\u56FE\u4E2D\u6309\u7167\u8BBF\u95EE\u5BF9\u8C61\u5206\u4E3A\u4E09\u5217\uFF0C\u5B9E\u9645\u4E0A\u6574\u4F53\u662F\u4E32\u884C\u6267\u884C\uFF09\uFF1A \u56FE 1 . APP \u4E2D\u7684\u5904\u7406\u6D41\u7A0B test-dvp \u652F\u6301\u4E86 \u5148\u65CB\u8F6C\u518D\u663E\u793A \uFF0C\u4E0A\u56FE\u4E2D\u4E3A\u4E86\u7B80\u5316\u5E76\u672A\u5C55\u793A GE \u7684\u5904\u7406\u3002\u5728\u56FE\u4E2D\u5C06\u5F53\u524D Buf \u4F20\u7ED9 Video Layer \u73AF\u8282\uFF0C\u5982\u679C\u6253\u5F00\u4E86\u65CB\u8F6C\u529F\u80FD\uFF08\u53C2\u6570 -a \uFF09\uFF0C\u4F1A\u5148\u5C06 Buf \u9001\u7ED9 GE...","topics/sdk/dvp/dvp_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u672C\u6A21\u5757\u6E90\u4EE3\u7801\u5728\u5185\u6838\u76EE\u5F55 linux-5.4/drivers/media/platform/artinchip \u4E0B\uFF0C\u76EE\u5F55\u7ED3\u6784\u5982\u4E0B\uFF1A drivers/media/platform/artinchip/ \u251C\u2500\u2500 aic_buf.c // \u548C buf \u7BA1\u7406\u76F8\u5173\u7684\u5904\u7406\u4EE3\u7801 \u251C\u2500\u2500 aic_dvp.c // DVP \u9A71\u52A8\u7684\u521D\u59CB\u5316\u5165\u53E3\uFF0C\u4E3B\u8981\u5B9E\u73B0\u4E86 probe\u3001Notifier \u63A5\u53E3 \u251C\u2500\u2500 aic_dvp.h...","topics/sdk/dvp/dvp_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@\u6444\u50CF\u5934\u521D\u59CB\u5316\u5931\u8D25 \u73B0\u8C61 \u677F\u5B50\u542F\u52A8\u540E\uFF0C\u6444\u50CF\u5934\u7684 V4L2 device \u6CE8\u518C\u5931\u8D25\uFF0C\u6B64\u65F6 DVP \u7684\u6CE8\u518C\u6D41\u7A0B\u4E5F\u56E0\u6B64\u4E0D\u5B8C\u6574\uFF0C\u5728 Sysfs \u4E2D\u4F1A\u627E\u4E0D\u5230 /dev/video0 \u4E0D\u5B58\u5728\u3002 \u539F\u56E0\u5206\u6790 \u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u6444\u50CF\u5934\u9700\u8981\u901A\u8FC7 I2C \u6765\u8BBF\u95EE\uFF0C\u6240\u4EE5\u8981\u786E\u4FDD I2C \u548C\u6444\u50CF\u5934\u4E24\u4E2A\u6A21\u5757\u662F\u5426\u6253\u5F00\u3002 \u6444\u50CF\u5934\u7684\u6253\u5F00\u65B9\u6CD5\uFF1A \u914D\u7F6E OV5640 \u6444\u50CF\u5934 I2C \u7684\u6253\u5F00\u65B9\u6CD5\uFF0C\u53C2\u8003 I2C \u6A21\u5757\u7684\u4F7F\u7528\u8BF4\u660E\u3002...","topics/sdk/dvp/dvp_interface.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@ioctl \u63A5\u53E3 \u7528\u6237\u6001\u901A\u8FC7 /dev/videoX \u8282\u70B9\u7684 ioctl() \u63A5\u53E3\u4E0E\u5185\u6838\u6001 V4L2 \u6846\u67B6\u3001DVP \u9A71\u52A8\u8FDB\u884C\u4EA4\u4E92\u3002\u4E3B\u8981\u529F\u80FD\u6709\uFF1A \u83B7\u53D6\u3001\u8BBE\u7F6E\u683C\u5F0F \u7533\u8BF7\u3001\u91CA\u653E Buf QBuf\u3001DQBuf \u5BFC\u51FA dma-buf \u6587\u4EF6\u63CF\u8FF0\u7B26 \u542F\u52A8\u3001\u505C\u6B62 Stream \u5B9A\u4E49\u5728 include/uapi/linux/videodev2.h \uFF1A # define VIDIOC_QUERYCAP _IOR(...","topics/sdk/dvp/dvp_key_procedure.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B DVP \u9A71\u52A8\u7684\u521D\u59CB\u5316\u8FC7\u7A0B\u603B\u4F53\u5206\u4E3A\u4E24\u5927\u90E8\u5206\uFF1A \u9636\u6BB5\u4E00\uFF1A\u7531 probe() \u63A5\u53E3\u5B8C\u6210\u8D44\u6E90\u7533\u8BF7\u3001\u6CE8\u518C subdev\u3001\u6CE8\u518C buf\u3001\u6CE8\u518C notifier \u7B49\u64CD\u4F5C\u3002 \u9636\u6BB5\u4E8C\uFF1A\u7531 notifier \u7684 complete() \u63A5\u53E3\u5B8C\u6210\uFF0C\u9700\u8981\u7B49 Sensor \u6267\u884C\u5B8C\u521D\u59CB\u5316\uFF08\u5176 probe() \u63A5\u53E3\uFF09\u540E\u624D\u80FD\u6267\u884C\uFF0C\u5B8C\u6210\u7684\u64CD\u4F5C\u6709\uFF1A\u6CE8\u518C device\u3001\u6CE8\u518C device\u3001\u914D\u7F6E link \u7B49\u3002 Probe...","topics/sdk/dvp/dvp_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \u786C\u4EF6 \u5F00\u53D1\u677F\uFF0C\u6216\u8005 D211 \u7684 FPGA \u677F \u53EF\u8F6C\u63A5\u6444\u50CF\u5934\u7684\u5B50\u677F \u6444\u50CF\u5934\uFF0C\u5982 OV5640 \u8F6F\u4EF6 PC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 DVP \u6A21\u5757\u7684\u6D4B\u8BD5 demo\uFF1Atest_dvp \u8F6F\u4EF6\u914D\u7F6E \u914D\u7F6E OV5640 \u6444\u50CF\u5934 \u6D4B\u8BD5\u4E2D\u9700\u8981\u7528\u5230\u6444\u50CF\u5934\uFF0C\u4EE5 OV5640 \u4E3A\u4F8B\uFF0C\u5728 Luban \u7684\u6839\u76EE\u5F55\u4E0B\u901A\u8FC7 make kernel-menuconfig \uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A...","topics/sdk/dvp/dvp_user_guide.html@@@DVP \u4F7F\u7528\u6307\u5357@@@Digital Video Port (DVP) \u6A21\u5757\u662F\u4E00\u4E2A\u8D1F\u8D23\u4ECE Sensor \uFF08\u4F20\u611F\u5668\uFF09\u4E2D\u83B7\u53D6\u6570\u636E\uFF0C\u7ECF\u8FC7\u683C\u5F0F\u8F6C\u6362\u6216\u8005\u7F29\u653E\u540E\u8F93\u51FA\u5230\u5185\u5B58 (DRAM) \u4E2D\u7684\u786C\u4EF6\u7EC4\u4EF6\u3002DVP \u6A21\u5757\u5E94\u7528\u4E8E\u5D4C\u5165\u5F0F\u7CFB\u7EDF\u548C\u591A\u5A92\u4F53\u8BBE\u5907\u4E2D\uFF0C\u7528\u4E8E\u5904\u7406\u6765\u81EA\u6444\u50CF\u5934\u7684\u89C6\u9891\u6570\u636E\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E CMA Contiguous Memory Allocator \u8FDE\u7EED\u5185\u5B58\u5206\u914D\u5668 DVP Digital Video...","topics/sdk/efuse/efuse-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u76F8\u5173\u6A21\u5757 \u6E90\u7801\u8DEF\u5F84 NVMEM subsystem source/linux-5.10/drivers/nvmem/core Driver source/linux-5.10/drivers/nvmem/artinchip-sid.c \u6A21\u5757\u67B6\u6784 eFuse \u5728\u5185\u6838\u4E2D\u901A\u8FC7 NVMEM \u5C42\u5BF9\u63A5\u5176\u4ED6\u5404\u6A21\u5757\u3002NVMEM \u5728\u5185\u6838\u4E2D\u88AB\u865A\u62DF\u4E3A\u4E00\u4E2A\u603B\u7EBF\u4E0A\uFF0C\u53EF\u4EE5\u6302\u8F7D\u5404\u79CD NVMEM \u8BBE\u5907\u3002 \u56FE 1 . NVMEM...","topics/sdk/efuse/efuse_config.html@@@eFuse \u914D\u7F6E@@@\u901A\u5E38 eFuse \u4FE1\u606F\u7684\u8BFB\u5199\u542F\u52A8\u7A0B\u5E8F\u3001\u751F\u4EA7\u8FC7\u7A0B\u6BD4\u8F83\u76F8\u5173\uFF0C\u5185\u6838\u4EE5\u53CA\u7528\u6237\u6001\u7A0B\u5E8F\u4E0D\u9700\u8981\u5173\u5FC3 eFuse \u7684\u5185\u5BB9\u3002 \u4F46\u7531\u4E8E eFuse \u4E2D\u4E5F\u53EF\u4EE5\u4FDD\u7559\u4E00\u4E9B\u4EA7\u54C1\u76F8\u5173\u7684\u4FE1\u606F\uFF0C\u56E0\u6B64\u4E5F\u53EF\u4EE5\u901A\u8FC7\u5185\u6838\u76F8\u5173\u9A71\u52A8\u8BFB\u53D6 eFuse\u3002 \u5185\u6838\u914D\u7F6E \u901A\u8FC7\u5185\u6838\u914D\u7F6E\u4F7F\u80FD eFuse \u76F8\u5173\u7684\u5185\u6838\u9A71\u52A8\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4...","topics/sdk/efuse/efuse_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u901A\u8FC7\u5185\u6838\u914D\u7F6E\u4F7F\u80FD eFuse \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u7684\u914D\u7F6E\u754C\u9762\u4E2D\uFF0C\u914D\u7F6E\u4E0B\u5217\u9009\u9879\uFF1A Linux Kernel hacking ArtInChip Debug [*] SID(eFuse) driver debug \u6253\u5F00...","topics/sdk/efuse/efuse_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@eFuse \u5728\u7528\u6237\u7A7A\u95F4\u4EC5\u53EF\u8BFB\u53D6\uFF0C\u4E0D\u53EF\u5199\u3002 \u8BFB\u53D6 eFuse \u5185\u5BB9\u53EF\u901A\u8FC7\u4E0B\u5217\u547D\u4EE4\u8FDB\u884C\uFF1A hexdump /sys/bus/nvmem/devices/aic-efuse0/nvmem...","topics/sdk/efuse/efuse_user_guide.html@@@eFuse \u4F7F\u7528\u6307\u5357@@@\u82AF\u7247\u7535\u8DEF\u901A\u5E38\u662F\u751F\u4EA7\u65F6\u7269\u7406\u56FA\u5316\u7684\u7535\u8DEF\uFF0C\u751F\u4EA7\u5B8C\u6210\u4E4B\u540E\u4E0D\u53EF\u6539\u53D8\u3002\u5B9E\u9645\u5E94\u7528\u4E2D\u6709\u4E00\u4E9B\u91CD\u8981\u4FE1\u606F\uFF0C\u9700\u8981\u56FA\u5316\u5728\u82AF\u7247\u4E4B\u4E2D\uFF0C \u4F7F\u5F97\u4E0A\u7535\u5373\u53EF\u8BFB\u53D6\u4F7F\u7528\uFF0C\u6BD4\u5982\u4E00\u4E9B\u786C\u4EF6\u7684\u6027\u80FD\u53C2\u6570\u4FE1\u606F\u3002\u4F46\u662F\u8FD9\u4E9B\u53C2\u6570\u53EF\u80FD\u4E0E\u82AF\u7247\u7684\u751F\u4EA7\u5DE5\u827A\u3001\u6240\u7528\u7684\u6750\u6599\u7B49\u6709\u5173\u7CFB\uFF0C \u65E0\u6CD5\u5728\u8BBE\u8BA1\u65F6\u786E\u5B9A\uFF0C\u56E0\u6B64\u9700\u8981\u6709\u4E00\u79CD\u5B58\u50A8\u6280\u672F\uFF0C\u5373\u53EF\u4EE5\u56FA\u5316\u4FE1\u606F\uFF0C\u53C8\u80FD\u591F\u5728\u751F\u4EA7\u4E4B\u540E\u8FDB\u884C\u4FEE\u6539\u3002 eFuse \u5C31\u662F\u4E00\u79CD\u5141\u8BB8\u82AF\u7247\u4E0A\u7684\u7535\u8DEF\u5728\u8FD0\u884C\u65F6\u8FDB\u884C\u4FEE\u6539\u7684\u6280\u672F\u3002\u5B83\u7C7B\u4F3C...","topics/sdk/env/compile.html@@@\u56FA\u4EF6\u7F16\u8BD1@@@\u672C\u8282\u4ECB\u7ECD\u4E86\u7F16\u8BD1\u56FA\u4EF6\u7684\u5E38\u89C4\u6D41\u7A0B\u3002\u5728\u5F00\u59CB\u7F16\u8BD1\u56FA\u4EF6\u4E4B\u524D\uFF0C\u786E\u4FDD\u7F16\u8BD1\u73AF\u5883\u5DF2\u7ECF\u642D\u5EFA\u5B8C\u6210\u3002\u5173\u4E8E\u64CD\u4F5C\u7CFB\u7EDF\u548C\u4F9D\u8D56\u7684\u8BE6\u7EC6\u5B89\u88C5\u8BF4\u660E\uFF0C\u53EF\u67E5\u770B Ubuntu \u548C VMWare \u5B89\u88C5 \u3002 \u9879\u76EE\u914D\u7F6E\u4E0E\u7F16\u8BD1 \u9009\u62E9\u4EE5\u4E0B\u4EFB\u610F\u4E00\u79CD\u7F16\u8BD1\u548C\u914D\u7F6E\u547D\u4EE4\u65B9\u5F0F\uFF0C\u5BF9\u9879\u76EE\u8FDB\u884C\u914D\u7F6E\u548C\u7F16\u8BD1\uFF1A \u5E38\u89C4 make \u547D\u4EE4 \uFF0C\u4F8B\u5982\uFF1A make list make d211_demo128_nand_defconfig make OneStep \u5FEB\u6377\u547D\u4EE4 \uFF0C\u4F8B\u5982\uFF1A...","topics/sdk/env/sdk-compile.html@@@SDK \u7F16\u8BD1@@@\u4ECB\u7ECD\u4E0D\u540C\u7F16\u8BD1\u73AF\u5883\u4E0B SDK \u7684\u8BE6\u7EC6\u7F16\u8BD1\u6D41\u7A0B\u3002...","topics/sdk/env/sourcecode.html@@@\u51C6\u5907\u4EE3\u7801@@@Luban SDK \u7684\u4EE3\u7801\u6258\u7BA1\u4E8E Gitee \u670D\u52A1\u5668\u4E2D\uFF0C\u4E3A\u5F00\u6E90\u4EE3\u7801\u3002\u672C\u8282\u63CF\u8FF0\u4E86\u5982\u4F55\u4ECE\u5BF9\u5E94\u7684\u4ED3\u5E93\u5730\u5740\u4E2D\u4E0B\u8F7D\u6E90\u4EE3\u7801\u3002 Git \u63A8\u8350\u901A\u8FC7 Git \u7528\u6237\u7AEF\u4E0B\u8F7D\u4EE3\u7801\uFF0C\u53EF\u4EE5\u5B9E\u65F6\u5173\u6CE8\u670D\u52A1\u5668\u8865\u4E01\u548C\u7248\u672C\u7684\u53D1\u5E03\uFF1A git clone https: //gitee.com/artinchip/d211.git HTTP \u901A\u8FC7\u7F51\u7EDC\u4E0B\u8F7D\u7684\u65B9\u5F0F\u53EF\u76F4\u63A5\u4E0B\u8F7D\u538B\u7F29\u5305\uFF0C\u8BE6\u7EC6\u6B65\u9AA4\u5982\u4E0B\uFF1A \u5728 Gitee \u4E0A\u6253\u5F00 Luban \u4ED3\u5E93\uFF0C\u5730\u5740\u4E3A...","topics/sdk/env/ubuntu2004.html@@@Ubuntu@@@Luban SDK \u7684\u5F00\u53D1\u53EF\u4EE5\u5728 Linux \u7CFB\u7EDF\u4E2D\u8FDB\u884C\uFF0C Luban SDK \u76EE\u524D\u81EA\u52A8\u652F\u6301\u7684 Linux \u53D1\u884C\u7248\u4E3A\uFF1A Ubuntu 18.04\u300120.04\u300122.04 CentOS 7.x\u30018.x ArtInChip \u63A8\u8350\u7684 Linux \u53D1\u884C\u7248\u4E3A Ubuntu 20.04 LTS\uFF08Long Term Support\uFF09\u7248\u672C\uFF0C\u672C\u8282\u4EE5\u6B64\u7248\u672C\u5C55\u793A Ubuntu...","topics/sdk/env/vmware-config-vm.html@@@\u914D\u7F6E\u865A\u62DF\u673A@@@Ubuntu \u7CFB\u7EDF\u5B89\u88C5\u5B8C\u6210\u540E\uFF0C\u9700\u8981\u6267\u884C\u672C\u8282\u63CF\u8FF0\u7684\u914D\u7F6E\u6D41\u7A0B\u3002 \u5728\u5B8C\u6210\u914D\u7F6E\u6D41\u7A0B\u540E\uFF0C\u6253\u5F00\u7684\u7CFB\u7EDF\u624D\u662F\u62E5\u6709\u5B8C\u6574\u529F\u80FD\u7684 Ubuntu20.04 \u7CFB\u7EDF\u3002\u5173\u4E8E\u5982\u4F55\u51C6\u5907 Luban \u7684\u7F16\u8BD1\u73AF\u5883\uFF0C\u53EF\u53C2\u8003 Ubuntu \u3002 VMWare Tools VMWare Tools \u662F VMWare \u63D0\u4F9B\u7684\u4E00\u4E2A\u5DE5\u5177\u5305\uFF0C\u5FC5\u987B\u5B89\u88C5\u3002 \u9664\u4E86\u81EA\u5E26\u7684\u5DE5\u5177\u5916\uFF0CVMWare Tools \u8FD8\u53EF\u4EE5\u5E2E\u52A9\u8BBE\u7F6E\u5171\u4EAB\u548C\u7A97\u53E3\u5927\u5C0F\uFF0C\u5177\u4F53\u5B89\u88C5\u6D41\u7A0B\u5982\u4E0B\u6240\u793A\uFF1A...","topics/sdk/env/vmware-install-ubuntu.html@@@\u5B89\u88C5 Ubuntu@@@\u672C\u7AE0\u8282\u4ECB\u7ECD\u5728\u865A\u62DF\u673A\u4E0A\u5B89\u88C5 Ubuntu \u7684\u65B9\u6CD5\uFF0C\u4EE5 Ubuntu20.04 \u7248\u672C\u4E3A\u4F8B\u3002\u5982\u4F7F\u7528\u5176\u4ED6\u7248\u672C\uFF0C\u5B89\u88C5\u65B9\u5F0F\u53EF\u80FD\u4F1A\u6709\u5DEE\u5F02\u3002 \u5168\u65B0\u5B89\u88C5 \u8BBE\u7F6E Ubuntu \u6587\u4EF6\u8DEF\u5F84\uFF1A \u6253\u5F00\u7684 VMWare \u9009\u62E9 \u6211\u7684\u8BA1\u7B97\u673A \u4E2D\u7684 Luban \u865A\u62DF\u673A \u5728 \u8BBE\u5907 \u4E2D\u70B9\u51FB CD/DVD \u3002 \u9009\u4E2D\u4F7F\u7528 ISO \u6620\u50CF\u6587\u4EF6\u3002 \u901A\u8FC7 \u6D4F\u89C8 \u9009\u4E2D Ubuntu-20.04.3-desktop-amd64.iso \u3002...","topics/sdk/env/vmware.html@@@VMWare \u5B89\u88C5@@@\u5982\u9700\u5728\u865A\u62DF\u673A\u4E0A\u8FDB\u884C Luban \u7684\u5F00\u53D1\u5DE5\u4F5C\uFF0C\u53EF\u4EE5\u53C2\u8003\u672C\u8282\u7684\u5B89\u88C5\u8BF4\u660E\u3002...","topics/sdk/env/wmware-create-vm.html@@@\u521B\u5EFA\u865A\u62DF\u673A@@@\u81EA\u5B9A\u4E49\u5B89\u88C5 \u5728\u65B0\u5EFA\u865A\u62DF\u673A\u7684\u5411\u5BFC\u9875\u9009\u62E9 \u81EA\u5B9A\u4E49\u5B89\u88C5 \uFF0C\u5E76\u5B8C\u6210 VMWare \u548C\u5E73\u53F0\u5173\u8054\u7684\u5B9A\u5236\u8BBE\u7F6E\u3002 \u624B\u52A8\u5B89\u88C5\u64CD\u4F5C\u7CFB\u7EDF \u5728\u64CD\u4F5C\u7CFB\u7EDF\u5B89\u88C5\u754C\u9762\u9009\u62E9 \u7A0D\u540E\u5B89\u88C5\u64CD\u4F5C\u7CFB\u7EDF \u3002 VMWare \u5728\u81EA\u52A8\u5B89\u88C5\u64CD\u4F5C\u7CFB\u7EDF\u65F6\u4F1A\u987A\u5E26\u5B89\u88C5\u81EA\u5E26\u7684 VMware tools\uFF0C \u4F46\u8BE5 tools \u4EE5 iso \u65B9\u5F0F\u5B58\u5728\uFF0C\u9700\u8981\u865A\u62DF\u5149\u9A71\u65B9\u5F0F\u6302\u8F7D\u51FA\u6765\u624D\u80FD\u5B89\u88C5\u3002\u8BE5\u6302\u8F7D\u4EFB\u52A1\u53EA\u80FD\u5728\u7CFB\u7EDF\u542F\u52A8\u540E\u624B\u52A8\u6267\u884C\uFF0C\u6240\u4EE5\u81EA\u52A8\u5B89\u88C5\u5F80\u5F80\u4F1A\u5361\u5728 VMWare tools...","topics/sdk/file-system/file-system-division.html@@@\u914D\u7F6E\u7CFB\u7EDF\u5206\u533A@@@image_cfg.json \u662F SDK/target/ chip / board \u76EE\u5F55\u4E0B\u63CF\u8FF0\u5982\u4F55\u751F\u6210\u70E7\u5F55\u955C\u50CF\u7684\u6587\u4EF6\u3002\u5728 image_cfg.json \u6587\u4EF6\u4E2D\uFF0C\u53EF\u4EE5\u5B8C\u6210\u76EE\u6807\u5B58\u50A8\u4ECB\u8D28\u7684\u5206\u533A\u8BBE\u7F6E\uFF0C\u8FDB\u884C\u589E\u5220\u6539\u67E5\u64CD\u4F5C\u3002 \u914D\u7F6E\u5B58\u50A8\u4ECB\u8D28\u5206\u533A \u6839\u636E\u4E0D\u540C\u7684\u5B58\u50A8\u4ECB\u8D28\uFF0C\u6267\u884C\u4E0D\u540C\u7684\u5206\u533A\u914D\u7F6E\uFF0C\u8BE6\u60C5\u5982\u4E0B\uFF1A eMMC "mmc" : { // Media type "size" : "8G" , // Size of...","topics/sdk/file-system/file-system-division_modification.html@@@\u4FEE\u6539\u5206\u533A@@@Luban \u7CFB\u7EDF\u91CC\uFF0C\u5B58\u50A8\u5927\u5C0F\u6D89\u53CA\u4EE5\u4E0B\u6982\u5FF5\uFF0C\u5982\u9700\u4FEE\u6539\u5B58\u50A8\u5927\u5C0F\uFF0C\u5219\u9700\u8981\u4FEE\u6539\u5B58\u50A8\u4ECB\u8D28\u4E0A\u7684\u7269\u7406\u5206\u533A\u5927\u5C0F\u548C\u6253\u5305\u7684\u6587\u4EF6\u7CFB\u7EDF\u955C\u50CF\u7684\u5927\u5C0F\u3002 \u8B66\u544A\uFF1A \u539F\u5219\u4E0A\uFF0C\u955C\u50CF\u5927\u5C0F\u5FC5\u987B\u7B49\u4E8E\u5206\u533A\u5927\u5C0F\u3002 \u4FEE\u6539\u5B58\u50A8\u4ECB\u8D28\u4E0A\u7684\u5206\u533A\u5927\u5C0F \u5728 image_cfg.json \u6587\u4EF6\u4E2D\u914D\u7F6E\u5206\u533A\u5927\u5C0F\u3002\u4EE5 RootFS \u4E3A\u4F8B\uFF0C\u5C06\u5206\u533A\u4FEE\u6539\u4E3A 64 MB\u3002 "mmc" : { // Media type "size" : "8G" , // Size of...","topics/sdk/file-system/file-system-images.html@@@\u9009\u62E9\u7CFB\u7EDF\u955C\u50CF@@@SDK \u76EE\u524D\u652F\u6301\u751F\u6210\u6700\u591A\u4E09\u4E2A\u4E0D\u540C\u7684\u81EA\u5B9A\u4E49\u6587\u4EF6\u7CFB\u7EDF\u955C\u50CF\uFF0C\u8BE6\u7EC6\u7684\u914D\u7F6E\u6B65\u9AA4\u5982\u4E0B\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u8FDB\u5165 menuconfig \u7684\u914D\u7F6E\u754C\u9762\uFF1A make menuconfig \u8FDB\u5165\u955C\u50CF\u7CFB\u7EDF\u914D\u7F6E\u754C\u9762\uFF0C\u6839\u636E\u9700\u8981\u52FE\u9009\u5BF9\u5E94\u7684\u955C\u50CF\u6587\u4EF6\uFF1A Filesystem images ---> [*] UserFS 1 ---> [ ] UserFS 2 ---> [ ] UserFS 3 ---> \u8868 1...","topics/sdk/file-system/file-system-rootfs.html@@@RootFS \u548C Overlay@@@\u4F7F\u7528 Buildroot \u53EF\u4EE5\u5C06\u9700\u8981\u4F7F\u7528\u7684\u5DE5\u5177\u76F4\u63A5\u7F16\u8BD1\u548C\u5B89\u88C5\u5230 RootFS\uFF0C \u5982\u679C\u5E0C\u671B\u5C06\u975E\u4F9D\u8D56 Buildroot \u72EC\u7ACB\u7F16\u8BD1\u7684\u7A0B\u5E8F\u548C\u6587\u4EF6\u653E\u5230 RootFS \u4E2D\u65F6\uFF0C\u53EF\u4F7F\u7528 SDK \u63D0\u4F9B\u7684 RootFS Overlay \u673A\u5236\u6765\u5B9E\u73B0\u3002 RootFS Overlay \u673A\u5236 RootFS Overlay \u673A\u5236\u662F\u6307\u5728\u5236\u4F5C RootFS \u955C\u50CF\u8FC7\u7A0B\u4E2D\uFF0C\u4F7F\u7528\u5BA2\u5236\u5316\u7684 RootFS \u76EE\u5F55\u5185\u5BB9\u8986\u76D6...","topics/sdk/file-system/file-system-user-guide.html@@@\u6587\u4EF6\u7CFB\u7EDF\u4F7F\u7528\u6307\u5357@@@...","topics/sdk/file-system/lb_usage_autoboot.html@@@\u5F00\u673A\u542F\u52A8@@@\u5728 Luban SDK \u4E2D\uFF0C\u901A\u8FC7\u4EE5\u4E0B\u591A\u79CD\u65B9\u5F0F\u53EF\u4EE5\u4E3A\u9879\u76EE\u5B89\u88C5\u5F00\u673A\u521D\u59CB\u5316\u811A\u672C\uFF1A init.d \u811A\u672C \uFF1A\u5982\u679C\u521D\u59CB\u5316\u811A\u672C\u4E0E\u7EC4\u4EF6\u5305\u76F8\u5173\u3002 RootFS Overlay \uFF1A\u5982\u679C\u521D\u59CB\u5316\u811A\u672C\u4E0E\u5177\u4F53\u7684\u7EC4\u4EF6\u5305\u6CA1\u6709\u76F4\u63A5\u5173\u7CFB\u3002 initscripts \uFF1A\u4E0D\u5EFA\u8BAE\u5C06\u8FC7\u591A\u7684\u811A\u672C\u5B58\u653E\u5728 initscripts \u5305\u4E2D\u8FDB\u884C\u5B89\u88C5\u3002 \u63D0\u793A\uFF1A \u767B\u5F55\u4E4B\u524D linuxrc \u4F1A\u6267\u884C\u5F00\u673A\u811A\u672C\uFF0C\u6267\u884C\u7684\u5185\u5BB9\u548C\u987A\u5E8F\u53EF\u8BE6\u7EC6\u53C2\u8003...","topics/sdk/file-system/lb_usage_autoboot_2.html@@@\u5F00\u673A\u542F\u52A8@@@\u5728 Luban SDK \u4E2D\uFF0C\u901A\u8FC7\u4EE5\u4E0B\u591A\u79CD\u65B9\u5F0F\u53EF\u4EE5\u4E3A\u9879\u76EE\u5B89\u88C5\u5F00\u673A\u521D\u59CB\u5316\u811A\u672C\uFF1A init.d \u811A\u672C \uFF1A\u5982\u679C\u521D\u59CB\u5316\u811A\u672C\u4E0E\u7EC4\u4EF6\u5305\u76F8\u5173\u3002 RootFS Overlay \uFF1A\u5982\u679C\u521D\u59CB\u5316\u811A\u672C\u4E0E\u5177\u4F53\u7684\u7EC4\u4EF6\u5305\u6CA1\u6709\u76F4\u63A5\u5173\u7CFB\u3002 initscripts \uFF1A\u4E0D\u5EFA\u8BAE\u5C06\u8FC7\u591A\u7684\u811A\u672C\u5B58\u653E\u5728 initscripts \u5305\u4E2D\u8FDB\u884C\u5B89\u88C5\u3002 \u63D0\u793A\uFF1A \u767B\u5F55\u4E4B\u524D linuxrc \u4F1A\u6267\u884C\u5F00\u673A\u811A\u672C\uFF0C\u6267\u884C\u7684\u5185\u5BB9\u548C\u987A\u5E8F\u53EF\u8BE6\u7EC6\u53C2\u8003...","topics/sdk/ge/ge_blit.html@@@\u4F4D\u5757\u642C\u79FB@@@\u4F4D\u5757\u642C\u79FB\u53EF\u4EE5\u5206\u4E24\u79CD\u60C5\u51B5\uFF1A \u539F\u56FE\u7684\u77E9\u5F62\u533A\u57DF\u642C\u79FB\u5230\u76EE\u6807\u56FE\u7684\u77E9\u5F62\u533A\u57DF\u4E2D\u4E0D\u8FDB\u884C\u7F29\u653E \u56FE 1 . \u4E0D\u8FDB\u884C\u7F29\u653E \u539F\u56FE\u7684\u77E9\u5F62\u533A\u57DF\u642C\u79FB\u5230\u76EE\u6807\u56FE\u7684\u77E9\u5F62\u533A\u57DF\u4E2D\u540C\u65F6\u8FDB\u884C\u653E\u5927\u6216\u8005\u7F29\u5C0F \u56FE 2 . \u8FDB\u884C\u7F29\u653E \u5728\u8FDB\u884C\u4F4D\u5757\u642C\u79FB\u7684\u540C\u65F6\u53EF\u4EE5\u8FDB\u884C blending \u548C key\uFF0C\u540C\u65F6\u4E5F\u652F\u6301 90/180/270 \u5EA6\u65CB\u8F6C\u548C\u955C\u50CF\u3002...","topics/sdk/ge/ge_cmdq_mode.html@@@\u547D\u4EE4\u961F\u5217\u6A21\u5F0F@@@\u547D\u4EE4\u961F\u5217\u6A21\u5F0F\uFF0C\u5373 CMD queue \u6A21\u5F0F\u3002GE \u7684\u5B8C\u6574\u529F\u80FD\u9700\u8981\u4F9D\u8D56 MPP \u4E2D\u95F4\u4EF6\uFF0C \u5728 MPP \u4E2D\u95F4\u4EF6\u4E2D\u4F1A\u628A\u7528\u6237\u8BBE\u7F6E\u7684\u53C2\u6570\u4FE1\u606F\u8F6C\u6362\u6210\u786C\u4EF6\u53EF\u4EE5\u8BC6\u522B\u7684\u547D\u4EE4\u961F\u5217\u4FE1\u606F\u3002 \u5728 CMD queue \u6A21\u5F0F\u4E0B\uFF0CGE \u9A71\u52A8\u5185\u90E8\u4EE5\u4E0B\u5217\u547D\u4EE4\u961F\u5217\u65B9\u5F0F\u6267\u884C\uFF0C GE \u9A71\u52A8\u53EA\u8D1F\u8D23\u63A5\u6536\u5E76\u6267\u884C\u547D\u4EE4\u961F\u5217\uFF1A Task\uFF1AGE \u53EF\u4EE5\u6267\u884C\u7684\u6700\u5C0F\u4EFB\u52A1\u5355\u5143\uFF0C\u6BD4\u5982\u4E00\u6B21 blit \u64CD\u4F5C\u6216\u4E00\u6B21\u77E9\u5F62\u586B\u5145\u3002...","topics/sdk/ge/ge_compare_mode.html@@@\u975E\u547D\u4EE4\u961F\u5217\u548C\u547D\u4EE4\u961F\u5217\u5BF9\u6BD4@@@CMD queue \u4E0E normal \u6A21\u5F0F\u9A71\u52A8\u7684\u533A\u522B\u5982\u4E0B\uFF1A \u5728 CMD queue \u6A21\u5F0F\u4E0B\uFF0C\u589E\u52A0\u4E86 write \u63A5\u53E3\u3002\u547D\u4EE4\u961F\u5217\u901A\u8FC7 write \u63A5\u53E3\uFF0C\u4EE5 batch \u4E3A\u5355\u4F4D\u53D1\u9001\u7ED9\u9A71\u52A8\u3002 \u4E00\u4E2A batch \u4E2D\u53EF\u4EE5\u5305\u542B\u591A\u4E2A task \u7684\u547D\u4EE4\u3002 write \u64CD\u4F5C\u662F\u5F02\u6B65\u7684\uFF0C\u76F8\u5E94\u7684\u547D\u4EE4\u53EA\u8981\u5199\u5165\u9A71\u52A8\u4E2D\u7684 cmd queue buffer \u5373\u8FD4\u56DE\uFF0C\u4E0D\u7528\u7B49\u5F85\u786C\u4EF6\u6267\u884C\u5B8C\u5F53\u524D batch...","topics/sdk/ge/ge_config.html@@@GE \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E GE \u9A71\u52A8\u4F9D\u8D56 BUF\u3001CMA\uFF0C\u9700\u8981\u63D0\u524D\u6253\u5F00\u3002 \u6253\u5F00 CMA \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Memory Management options [*] Contiguous Memory Allocator \u6839\u636E\u5177\u4F53\u9700\u6C42\uFF0C\u914D\u7F6E...","topics/sdk/ge/ge_data_structure.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@GE \u6A21\u5757\u6570\u636E\u7ED3\u6784\u5982\u4E0B\uFF1A enum ge_pd_rules Porter/Duff alpha \u6DF7\u5408\u89C4\u5219\u679A\u4E3E /* * enum ge_pd_mode - graphics engine Porter/Duff alpha blending rules * * pixel = (source * fs + destination * fd) * sa = source alpha * da =...","topics/sdk/ge/ge_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6253\u5F00 GE \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A Linux Kernel hacking ArtInChip Debug [*] GE driver debug \u6253\u5F00 DEBUG \u9009\u9879\u540E\uFF1A \u9A71\u52A8\u4EE5 -O0 \u7F16\u8BD1\u3002 pr_dbg() \u548C...","topics/sdk/ge/ge_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@GE \u6E90\u4EE3\u7801\u5728\u5185\u6838\u76EE\u5F55 linux-5.10/drivers/video/artinchip \u4E0B\uFF0C\u76EE\u5F55\u7ED3\u6784\u5982\u4E0B drivers/video/artinchip/ge/ \u251C\u2500\u2500 ge_normal.c // normal \u6A21\u5F0F\u9A71\u52A8 \u251C\u2500\u2500 ge_hw.c // normal \u6A21\u5F0F\u5BF9\u786C\u4EF6\u64CD\u4F5C\u7684\u5C01\u88C5 \u251C\u2500\u2500 ge_hw.h // normal \u6A21\u5F0F\u5BF9\u786C\u4EF6\u64CD\u4F5C\u5C01\u88C5\u7684 API \u251C\u2500\u2500 ge_cmdq.c...","topics/sdk/ge/ge_interface.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u7528\u6237\u6001\u901A\u8FC7 /dev/ge \u8282\u70B9 \u6253\u5F00 GE \u9A71\u52A8\u3002 IOC_GE_VERSION \u63A5\u53E3\u8BED\u6CD5\uFF1A int ioctl( int fd, unsigned long cmd, unsinged int *pversion); \u8868 1 . IOC_GE_VERSION \u529F\u80FD\u8BF4\u660E \u83B7\u53D6 GE \u7248\u672C \u53C2\u6570 cmd\uFF1AIOC_GE_VERSION pversion: \u6307\u5411 32 bits \u65E0\u7B26\u53F7\u7248\u672C\u53F7\u6307\u9488...","topics/sdk/ge/ge_mpp_api.html@@@MPP \u5BF9 GE \u63A5\u53E3\u7684\u5C01\u88C5@@@\u7531\u4E8E\u9A71\u52A8\u652F\u6301\u975E\u547D\u4EE4\u961F\u5217\u548C\u547D\u4EE4\u961F\u5217\u4E24\u79CD\u6A21\u5F0F\uFF0C\u5728\u63D0\u4F9B\u7684\u7528\u6237\u6001 MPP \u63A5\u53E3\u4E2D\uFF0C\u5BF9\u8C03\u7528\u9A71\u52A8\u7684\u63A5\u53E3\u8FDB\u884C\u4E86\u5C01\u88C5\uFF0C\u4FDD\u6301\u4E86\u7EDF\u4E00\u7684\u8C03\u7528 API\uFF0C \u5EFA\u8BAE\u7528\u6237\u7EDF\u4E00\u4F7F\u7528 MPP \u4E2D\u95F4\u5C42 API\u3002\u5728\u547D\u4EE4\u961F\u5217\u6A21\u5F0F\u4E0B\uFF0Ctask \u4F1A\u5148\u7F13\u5B58\u5728\u7528\u6237\u6001\u7684 cmd buffer \u4E2D\uFF0C\u5F53\u8C03\u7528 mpp_ge_emit \u540E\uFF0C \u4F1A\u901A\u8FC7 write \u63A5\u53E3\u628A\u547D\u4EE4\u5199\u5165\u5185\u6838\u7684 ring buffer\u3002 \u56FE 1 . \u5E94\u7528\u8C03\u7528 MPP \u6846\u67B6 \u8868 1...","topics/sdk/ge/ge_normal_mode.html@@@\u975E\u547D\u4EE4\u961F\u5217\u6A21\u5F0F@@@\u975E\u547D\u4EE4\u961F\u5217\u6A21\u5F0F\uFF0C\u5373 normal \u6A21\u5F0F\u3002 GE normal \u6A21\u5F0F\u7684\u63A7\u5236\u6D41\u7A0B\u5982\u4E0B\u6240\u793A\uFF1A \u5F53\u7528\u6237\u6001\u901A\u8FC7 open \u51FD\u6570\u6253\u5F00 /dev/ge \u8BBE\u5907\u8282\u70B9\uFF0C\u4F1A\u8C03\u7528\u5230\u9A71\u52A8\u4E2D\u7684 open\u3002 \u5F53\u7528\u6237\u901A\u8FC7 close \u5173\u95ED\u9A71\u52A8\u65F6\uFF0C\u4F1A\u8C03\u7528\u5230\u9A71\u52A8\u4E2D\u7684 release\u3002 \u5728 open \u4E2D\u4E3B\u8981\u662F\u5B9E\u73B0\u4E86\u6A21\u5757 clock \u7684\u6253\u5F00\u64CD\u4F5C\uFF0C \u5728 release \u4E2D\u5B9E\u73B0\u4E86\u6A21\u5757 clock \u7684\u5173\u95ED\u64CD\u4F5C\u3002 \u5F53\u7528\u6237\u6001\u6709\u591A\u4E2A\u7528\u6237\u6253\u5F00 GE...","topics/sdk/ge/ge_rotate.html@@@\u4EFB\u610F\u89D2\u5EA6\u65CB\u8F6C@@@\u8FDB\u884C\u4EFB\u610F\u89D2\u5EA6\u65CB\u8F6C\u7684\u65F6\u5019\u53EF\u4EE5\u8FDB\u884C blending\uFF0C\u5E76\u4E14\u53EF\u4EE5\u6307\u5B9A\u539F\u56FE\u548C\u76EE\u6807\u56FE\u7684\u65CB\u8F6C\u4E2D\u5FC3\uFF0C\u4EFB\u610F\u89D2\u5EA6\u65CB\u8F6C\u539F\u56FE\u548C\u76EE\u6807\u56FE\u90FD\u53EA\u652F\u6301 RGB \u683C\u5F0F\u3002 \u5176\u4E2D\u65CB\u8F6C\u89D2\u5EA6\u4F20\u7ED9\u9A71\u52A8\u7684\u662F\u65CB\u8F6C\u89D2\u5EA6\u7684 sin \u548C cos \u503C\uFF0C\u4E3A 2.12 \u5B9A\u70B9\u6570\uFF0C\u5176\u4E2D\u5C0F\u6570\u90E8\u5206 12bits \uFF0C\u5219\u5E94\u7528\u7A0B\u5E8F\u8BA1\u7B97 sin \u548C cos \u503C\u7684\u65B9\u6CD5\u5982\u4E0B\uFF1A #include <stdio.h> #include <math.h> # define PI...","topics/sdk/ge/ge_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u4F4D\u5757\u642C\u79FB \u6D4B\u8BD5\u547D\u4EE4: ge_bitblt \u6E90\u7801\u76EE\u5F55: source/artinchip/aic-mpp/mpp_tes/ge_bitblt.c \u8272\u5757\u586B\u5145 \u6D4B\u8BD5\u547D\u4EE4: ge_fillrect \u6E90\u7801\u76EE\u5F55: source/artinchip/aic-mpp/mpp_tes/ge_fillrect.c \u56FE\u5F62\u65CB\u8F6C \u6D4B\u8BD5\u547D\u4EE4: ge_rotate \u6E90\u7801\u76EE\u5F55...","topics/sdk/ge/ge_user_guide.html@@@GE \u4F7F\u7528\u6307\u5357@@@Graphics Engine (GE) \u662F\u7528\u6765\u8FDB\u884C 2D \u56FE\u5F62\u52A0\u901F\u7684\u786C\u4EF6\u6A21\u5757\u3002\u4E3B\u8981\u5305\u62EC\u683C\u5F0F\u8F6C\u6362\u3001\u65CB\u8F6C\u3001\u955C\u50CF\u3001 \u7F29\u653E\u3001Alpha \u6DF7\u5408\u3001Color Key\u3001\u4F4D\u5757\u642C\u79FB\u3001Dither \u7B49\u529F\u80FD\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E GE Graphics Engine 2D \u56FE\u5F62\u52A0\u901F\u5F15\u64CE blit bit block transfer \u4F4D\u5757\u642C\u79FB MPP Media Process...","topics/sdk/gpai/gpai_config.html@@@GPAI \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u914D\u7F6E IIO \u5728 SDK \u6839\u76EE\u5F55\u4E0B\u6267\u884C make menuconfig \uFF0C\u8FDB\u5165 menuconfig \u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A ArtInChip Luban SDK Configuration Linux kernel Advance setting Linux Kernel Tools <*>iio \u914D\u7F6E GPAI \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel...","topics/sdk/gpai/gpai_data_structure.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@struct aic_gpai_data\uFF1A\u8BB0\u5F55\u5404\u4E2A\u901A\u9053\u7684\u6570\u636E\u4FE1\u606F struct aic_gpai_data { int num_bits; const struct iio_chan_spec *channels; int num_channels; u32 fifo_depth[AIC_GPAI_MAX_CH]; }; struct aic_gpai_ch\uFF1A\u8BB0\u5F55\u5404\u4E2A\u901A\u9053\u7684\u914D\u7F6E\u4FE1\u606F struct...","topics/sdk/gpai/gpai_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF0C\u6253\u5F00 GPAI \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A Linux Kernel hacking Artinchip Debug [*] GPAI driver debug \u6253\u5F00 DEBUG \u9009\u9879\u540E\uFF1A \u9A71\u52A8\u4EE5 -O0 \u7F16\u8BD1\u3002...","topics/sdk/gpai/gpai_demo.html@@@GPAI Demo@@@\u6B64 Demo \u662F gpai \u547D\u4EE4\u7684\u90E8\u5206\u4EE3\u7801\uFF08\u8BE6\u89C1 drv_gpai.c \uFF09\uFF0C\u53EF\u4EE5\u4F5C\u4E3A GPAI \u8BBE\u5907\u7684\u4F7F\u7528\u53C2\u8003\uFF1A u32 ch = 0 ; struct rt_adc_device *dev = NULL; dev = ( struct rt_adc_device *)rt_device_find( "gpai" ); if (!dev) { LOG_E( "Failed to open %s...","topics/sdk/gpai/gpai_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E\uFF1A drivers/iio/adc/artinchip_adc.c \u6A21\u5757\u67B6\u6784 IIO \u5DE5\u4E1A I/O\uFF0C\u662F Linux \u5185\u6838\u4E2D\u4E13\u7528\u4E8E\u5904\u7406\u6A21\u6570\u8F6C\u6362\u5668\uFF08ADC\uFF09\u548C\u6570\u6A21\u8F6C\u6362\u5668\uFF08DAC\uFF09\u7684\u5B50\u7CFB\u7EDF\uFF0C\u6700\u521D\u521B\u5EFA\u4E8E 2009 \u5E74\uFF0C\u63D0\u4F9B\u4E86\u7EDF\u4E00\u7684\u6846\u67B6\u6765\u8BBF\u95EE\u548C\u63A7\u5236\u5404\u79CD\u7C7B\u578B\u7684\u4F20\u611F\u5668\uFF0C\u5E76\u4E14\u4E3A\u7528\u6237\u6001\u63D0\u4F9B\u4E86\u6807\u51C6\u7684\u63A5\u53E3\u3002 \u76EE\u524D IIO...","topics/sdk/gpai/gpai_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@GPAI \u521D\u59CB\u5316\u5931\u8D25 \u5728 GPAI \u6A21\u5757\u521D\u59CB\u5316\u65F6\u62A5\u9519\uFF0C\u4E00\u822C\u662F GPIO \u7533\u8BF7\u5931\u8D25\u3002 \u539F\u56E0\u5206\u6790 \u5728 DTS \u4E2D\u68C0\u67E5\u6253\u5F00\u4E86\u54EA\u51E0\u4E2A GPAI \u901A\u9053\uFF0C\u5BF9\u5E94\u7684 GPAI \u5F15\u7528\u662F\u5426\u6B63\u786E\u3002\u8BE6\u89C1 Board \u914D\u7F6E \u3002 \u5728\u68C0\u67E5\u8BE5 GPIO \u662F\u5426\u548C\u5176\u4ED6\u8BBE\u5907\u6709\u51B2\u7A81\uFF0Cluban \u5728\u7F16\u8BD1\u56FA\u4EF6\u7684\u65F6\u5019\u6709 pinmux \u51B2\u7A81\u68C0\u67E5\uFF0C\u8BF7\u786E\u8BA4\u65E0\u4EFB\u4F55\u51B2\u7A81\u3002...","topics/sdk/gpai/gpai_interface.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_gpai_read_raw \u51FD\u6570\u539F\u578B static int aic_gpai_read_raw(struct iio_dev *iodev,struct iio_chan_spec const *chan,int *val, int *val2, long mask) \u529F\u80FD\u8BF4\u660E \u8BFB\u53D6\u4E00\u4E2A ADC \u901A\u9053\u7684\u5F53\u524D\u6570\u636E \u53C2\u6570\u5B9A\u4E49 iodev - \u6307\u5411\u4E00\u4E2A iio \u8BBE\u5907 chan...","topics/sdk/gpai/gpai_key_procedure.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B GPAI \u6A21\u5757\u5B8C\u5168\u9075\u5FAA driver \u7684\u901A\u7528\u521D\u59CB\u5316\u6D41\u7A0B\uFF0C\u7533\u8BF7 regs \u8D44\u6E90\u3001clk\u3001reset\uFF0C\u8FD8\u9700\u8981\u6CE8\u518C\u4E00\u4E2A iio \u8BBE\u5907\uFF0C\u4F7F\u7528 iio \u5B50\u7CFB\u7EDF\u63D0\u4F9B\u7684\u6CE8\u518C\u63A5\u53E3 iio_device_register()\uFF1A # define iio_device_register(indio_dev) \\ __iio_device_register((indio_dev), THIS_MODULE)...","topics/sdk/gpai/gpai_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883\uFF1A \u786C\u4EF6\uFF1A\u5F00\u53D1\u677F\uFF0C\u6216 D211 \u7684 FPGA \u677F \u8F6F\u4EF6\uFF1APC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 ADC \u8BFB\u53D6\u6D4B\u8BD5 ADC \u6570\u636E\u7684\u8BFB\u53D6\uFF0C\u53EA\u9700\u8981\u666E\u901A\u7684 cat \u547D\u4EE4\u5373\u53EF\uFF0C\u6BCF\u6B21\u53EF\u8BFB\u53D6\u67D0\u4E00\u4E2A\u901A\u9053\u4E2D\u7684\u5F53\u524D\u6570\u636E\u3002\u8BE6\u89C1 Syfs \u8282\u70B9\u8C03\u8BD5 \u3002...","topics/sdk/gpai/gpai_user_guide.html@@@GPAI \u4F7F\u7528\u6307\u5357@@@GPAI \u4E3B\u8981\u529F\u80FD\u662F\u5C06\u5916\u90E8\u7684\u6A21\u62DF\u4FE1\u53F7\u8F6C\u6210\u6570\u5B57\u4FE1\u53F7\uFF0C\u7136\u540E\u4E0A\u62A5\u7ED9 CPU\u3002GPAI \u9700\u8981\u4F9D\u8D56 ADCIM \u6A21\u5757\uFF08\u7EDF\u4E00\u7BA1\u7406\u786C\u4EF6\u901A\u8DEF\u548C\u5904\u7406\u4FE1\u53F7\u6821\u51C6\u7B49\uFF09\uFF0C\u5176\u5173\u7CFB\u5982\u56FE\uFF1A \u56FE 1 . GPAI \u76F8\u5173\u6A21\u5757\u7684\u786C\u4EF6\u6846\u56FE \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E ADC Analog Digital Converter \u6A21\u62DF\u6570\u5B57\u8F6C\u6362\u5668 ADCIM ADC Interface Management \u6A21\u6570\u8F6C\u6362\u7BA1\u7406\u6A21\u5757...","topics/sdk/gstreamer/gstreamer-architecture.html@@@\u6A21\u5757\u67B6\u6784@@@...","topics/sdk/gstreamer/gstreamer-common_issues.html@@@\u5E38\u89C1\u95EE\u9898@@@...","topics/sdk/gstreamer/gstreamer-configuration.html@@@Gstreamer \u914D\u7F6E@@@\u6309\u7167\u4EE5\u4E0B\u6B65\u9AA4\u5B8C\u6210 Gstreamer \u63D2\u4EF6\u914D\u7F6E\u6D41\u7A0B\uFF1A \u914D\u7F6E AIC \u63D2\u4EF6 Gstreamer \u5728 ArtInChip \u82AF\u7247\u5E73\u53F0\u7684\u786C\u4EF6\u52A0\u901F\u529F\u80FD\u4F9D\u8D56 ArtInchip \u7684 Gstreamer \u63D2\u4EF6\uFF0C\u8BF7\u5728 Gstreamer \u7F16\u8BD1\u524D\u8FDB\u884C\u914D\u7F6E\u3002 ArtInChip packages ---> [*] aic-mpp [*] gst1-plugins-aic \u914D\u7F6E\u7B2C\u4E09\u65B9\u63D2\u4EF6 Gstreamer...","topics/sdk/gstreamer/gstreamer-debug_guide.html@@@\u8C03\u8BD5\u6307\u5357@@@...","topics/sdk/gstreamer/gstreamer-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u7801\u8BF4\u660E \u672C\u6A21\u5757\u6E90\u4EE3\u7801\u5728\u5185\u6838\u76EE\u5F55 source/artinchip/gst1-plugins-aic \u4E0B\uFF0C\u76EE\u5F55\u7ED3\u6784\u5982\u4E0B\uFF1A source/artinchip/gst1-plugins-aic \u251C\u2500\u2500 gstaicfb.c // fb_sink \u63D2\u4EF6 \u251C\u2500\u2500 gstaicfb.h \u251C\u2500\u2500 gstfbsink.c \u251C\u2500\u2500 gstfbsink.h \u251C\u2500\u2500 gstmppallocator.c //...","topics/sdk/gstreamer/gstreamer-test_guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@Gstreamer \u81EA\u5E26\u4E24\u4E2A\u6D4B\u8BD5\u7528\u4F8B\uFF1A gst-inspect-1.0\uFF1A\u7528\u4E8E\u67E5\u8BE2 Gstreamer \u652F\u6301\u7684\u63D2\u4EF6\u3002 gst-inspect- 1.0 autodetect: autoaudiosrc: Auto audio source autodetect: autoaudiosink: Auto audio sink autodetect: autovideosrc: Auto video...","topics/sdk/gstreamer/gstreamer-user-guide.html@@@Gstreamer \u4F7F\u7528\u6307\u5357@@@Gstreamer \u662F\u4E00\u4E2A\u5F00\u6E90\u7684\u591A\u5A92\u4F53\u6846\u67B6\uFF0C\u5B98\u65B9\u7F51\u5740\uFF1A https://gstreamer.freedesktop.org \u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E VE Video Engine \u89C6\u9891\u52A0\u901F\u5F15\u64CE DE Display Engine \u663E\u793A\u5F15\u64CE MPP Media Process Platform \u901A\u7528\u591A\u5A92\u4F53\u5904\u7406\u8F6F\u4EF6\u5E73\u53F0 \u56FE 1 . Gstreamer \u6846\u67B6 Gstreamer...","topics/sdk/i2c/i2c_config.html@@@I2C \u914D\u7F6E@@@I2C \u5305\u62EC\u4EE5\u4E0B\u914D\u7F6E\u5185\u5BB9\uFF1A \u5185\u6838\u914D\u7F6E master \u9A71\u52A8\u4F7F\u80FD Device Drivers I2C support---> <*> I2C support <*> I2C device interface I2C Hardware Bus support---> <*> ArtInChip I2C support slave \u9A71\u52A8\u4F7F\u80FD Device Drivers I2C support--->...","topics/sdk/i2c/i2c_data_struct.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@\u7BA1\u7406 I2C \u63A7\u5236\u5668\u8D44\u6E90\u7684\u9876\u5C42\u7ED3\u6784\u4F53\uFF1A struct aic_i2c_dev { struct device *dev; void __iomem *base; struct i2c_adapter adap; struct completion cmd_complete; struct clk *clk; struct reset_control *rst; int irq; enum...","topics/sdk/i2c/i2c_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@I2C \u901A\u4FE1\u8C03\u8BD5 \u5728\u4F7F\u80FD C \u7684\u9A71\u52A8\u540E\uFF0C\u53EF\u4EE5\u901A\u8FC7 tools \u4E2D\u7684 i2cdetect \u5DE5\u5177\uFF0C\u5FEB\u901F\u68C0\u6D4B C \u901A\u4FE1\u529F\u80FD\u662F\u5426\u6B63\u5E38\u3002\u4F7F\u80FD\u9A71\u52A8\u540E\uFF0C\u4F1A\u521B\u5EFA\u51FA\u76F8\u5E94\u7684 C \u9002\u914D\u5668\uFF0C\u4F46\u662F C \u901A\u4FE1\u529F\u80FD\u662F\u5426\u6B63\u5E38\u4ECD\u662F\u4E0D\u786E\u5B9A\u7684\uFF0C\u53EF\u901A\u8FC7\u5982\u4E0B\u547D\u4EE4\u8FDB\u884C\u6D4B\u8BD5\uFF1A i2cdetect -y -r 0 \u6B64\u547D\u4EE4\u7528\u6765\u6D4B\u8BD5 C \u603B\u7EBF 0 \u4E0A\u7684\u5730\u5740\u5206\u5E03\u60C5\u51B5\u3002\u5982\u679C\u901A\u4FE1\u6B63\u5E38\uFF0C\u5373\u4F7F\u603B\u7EBF\u4E0A\u6CA1\u6709\u6302\u63A5\u4EFB\u4F55 C...","topics/sdk/i2c/i2c_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E\uFF1A linux-5.10/drivers/i2c/busses/ I2C \u7684\u9A71\u52A8\u6587\u4EF6\u5982\u4E0B\uFF1A \u6587\u4EF6 \u8BF4\u660E i2c-artinchip.h aic I2C \u516C\u7528\u5934\u6587\u4EF6\uFF0CI2C \u6A21\u5757\u7684\u5BC4\u5B58\u5668\u5B9A\u4E49\uFF0C\u7ED3\u6784\u4F53\u5B9A\u4E49\u7B49 i2c-artinchip-master.c I2C \u4F5C\u4E3A master \u65F6\u7684\u9A71\u52A8\u6587\u4EF6 i2c-artinchip-slave.c I2C \u4F5C\u4E3A slave \u65F6\u7684\u9A71\u52A8\u6587\u4EF6...","topics/sdk/i2c/i2c_interface.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . i2c_handle_tx_abort \u51FD\u6570\u539F\u578B int i2c_handle_tx_abort(struct aic_i2c_dev *i2c_dev) \u529F\u80FD\u8BF4\u660E \u6253\u5370 c \u53D1\u751F abort \u7684\u539F\u56E0\uFF0C\u5E76\u8FD4\u56DE\u76F8\u5E94\u7684 error \u503C \u53C2\u6570\u5B9A\u4E49 i2c_dev\uFF1A\u6307\u5411\u81EA\u5B9A\u4E49\u7684 dev \u7ED3\u6784\u4F53 \u8FD4\u56DE\u503C \u6839\u636E\u4E0D\u540C\u7684 abort \u539F\u56E0\uFF0C\u8FD4\u56DE\u4E0D\u540C\u7684 error \u503C \u6CE8\u610F\u4E8B\u9879 - \u8868 2...","topics/sdk/i2c/i2c_key_procedure.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B I2C \u6A21\u5757\u9A71\u52A8\u7684\u521D\u59CB\u5316\u6D41\u7A0B\u5982\u4E0B\uFF1A \u4F20\u8F93\u6D41\u7A0B \u5728 master \u9A71\u52A8\u4E2D\uFF0C\u6570\u636E\u7684\u4F20\u8F93\u7531 xfer \u53D1\u8D77\uFF0C\u53EF\u4EE5\u5B8C\u6210\u591A\u4E2A msg \u7684\u4F20\u8F93\u3002\u4F20\u8F93\u6D41\u7A0B\u5982\u4E0B\uFF1A I2C \u6A21\u5757\u603B\u7EBF\u4FE1\u53F7 \u5728 I2C \u603B\u7EBF\u7684\u6570\u636E\u4F20\u8F93\u8FC7\u7A0B\uFF0C\u7531 start/restart/stop \u4F5C\u4E3A\u603B\u7EBF\u7684\u63A7\u5236\u4FE1\u53F7\u3002\u4E86\u89E3 I2C \u6A21\u5757\u4E2D start/restart/stop \u4FE1\u53F7\u7684\u751F\u6210\u65B9\u5F0F\uFF0C\u6709\u52A9\u4E8E\u4E86\u89E3\u9A71\u52A8\u7684\u6E90\u7801\u5B9E\u73B0\u3002 master...","topics/sdk/i2c/i2c_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \u786C\u4EF6 \u6D4B\u8BD5\u677F\uFF1A\u5E26\u6709\u4E24\u4E2A C \u63A5\u53E3\u7684\u6D4B\u8BD5\u677F PC\uFF1A\u7528\u4E8E\u548C\u6D4B\u8BD5\u677F\u4EA4\u4E92 \u4E32\u53E3\u7EBF\uFF1A\u8FDE\u63A5\u6D4B\u8BD5\u677F\u7684\u8C03\u8BD5\u4E32\u53E3 \u8F6F\u4EF6 PC \u7AEF\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6 i2c-tools \u7B2C\u4E09\u65B9\u8F6F\u4EF6\u5305 \u6D4B\u8BD5\u914D\u7F6E \u5C06\u6D4B\u8BD5\u677F\u7684\u4E24\u4E2A C\uFF0C\u4E00\u4E2A\u914D\u7F6E\u4E3A master\uFF0C\u4E00\u4E2A\u914D\u7F6E\u4E3A slave\u3002\u4E24\u4E2A C \u63A5\u53E3\u5BF9\u63A5\u3002 \u7F16\u8BD1\u7B2C\u4E09\u65B9\u6D4B\u8BD5\u5DE5\u5177 tools\uFF0C\u5229\u7528 tools \u63D0\u4F9B\u7684\u5DE5\u5177\u8FDB\u884C\u6D4B\u8BD5\u3002 i2c-tools \u6D4B\u8BD5\uFF1A i2cdetect...","topics/sdk/i2c/i2c_user_guide.html@@@I2C \u4F7F\u7528\u6307\u5357@@@I2C \u6A21\u5757\u662F\u4E00\u79CD\u7528\u4E8E\u8FDE\u63A5 CPU \u4E3B\u673A\u4E0E I 2 C \u603B\u7EBF\u4E4B\u95F4\u7684\u63A5\u53E3\uFF0C\u5305\u62EC\u4E00\u6839\u4E32\u884C\u6570\u636E\u7EBF (SDA) \u548C\u4E00\u6839\u4E32\u884C\u65F6\u949F\u7EBF (SCL)\uFF0C\u5206\u522B\u7528\u4E8E\u4F20\u8F93\u6570\u636E\u548C\u65F6\u949F\u4FE1\u53F7\uFF0C\u662F\u5B9E\u73B0 I2C \u901A\u4FE1\u7684\u57FA\u7840\u3002\u5728 I 2 C \u603B\u7EBF\u4E0A\uFF0C\u6BCF\u4E2A\u8BBE\u5907\u90FD\u6709\u4E00\u4E2A\u552F\u4E00\u7684\u5730\u5740\u3002\u5F53\u4E3B\u8BBE\u5907 (master) \u5E0C\u671B\u4E0E\u4ECE\u8BBE\u5907 (slave) \u901A\u4FE1\u65F6\uFF0C\u4F1A\u901A\u8FC7\u53D1\u9001\u4ECE\u8BBE\u5907 (slave)...","topics/sdk/i2s/i2s_arch.html@@@I2S \u67B6\u6784\u8BBE\u8BA1@@@\u5185\u6838\u4E2D\u97F3\u9891\u91C7\u7528 ALSA \u9A71\u52A8\u6846\u67B6\uFF0C\u8BE5\u6846\u67B6\u7BA1\u7406\u6240\u6709\u4E0E\u97F3\u9891\u76F8\u5173\u7684\u8F6F\u4EF6\u4E0E\u786C\u4EF6\uFF0CI2S \u7684\u9A71\u52A8\u8BBE\u8BA1\u9700\u8981\u9075\u5FAA\u8BE5\u6846\u67B6\u7684\u57FA\u672C\u8981\u6C42\u3002ALSA \u97F3\u9891\u6846\u67B6\u5C06\u5E95\u5C42\u7684\u786C\u4EF6\u9A71\u52A8\u5206\u4E3A\u4E09\u4E2A\u90E8\u5206\uFF1Amachine\u3001pltform \u4E0E codec\u3002\u4E09\u8005\u7684\u5173\u7CFB\u5982\u4E0B\u56FE\u6240\u793A\uFF1A ALSA \u6846\u67B6\u5C06\u5E95\u5C42\u5212\u5206\u4E3A\u4E09\u90E8\u5206\u540E\uFF0C\u4F7F\u5F97 platform \u548C codec \u7684\u9A71\u52A8\u5B9E\u73B0\u53D8\u5F97\u66F4\u52A0\u7B80\u5355\uFF0C\u4E8C\u8005\u53EA\u4E13\u6CE8\u4E8E\u5B9E\u73B0\u81EA\u5DF1\u7684\u529F\u80FD\u4EE3\u7801\uFF0C\u7531 machine \u9A71\u52A8\u6765\u5B9E\u73B0...","topics/sdk/i2s/i2s_config_guide.html@@@I2S \u914D\u7F6E@@@I2S \u5305\u62EC\u4EE5\u4E0B\u914D\u7F6E\u5185\u5BB9\uFF1A \u5185\u6838\u914D\u7F6E \u6309\u7167 ALSA \u7684\u6846\u67B6\u8BBE\u8BA1\uFF0CI2S \u7684\u6570\u636E\u4F20\u8F93\u4F7F\u7528 DMA \u65B9\u5F0F\uFF0C\u9700\u8981 engine \u7684\u652F\u6301\uFF0C\u6240\u4EE5\u5728 menuconfig \u4E2D \u9700\u8981\u6253\u5F00 engine \u7684\u9A71\u52A8\u652F\u6301\u3002 Device Drivers---> [*] DMA Engine support---> <*> ArtInChip SoCs DMA support \u5728 menuconfig \u4E2D\u6253\u5F00 ALSA...","topics/sdk/i2s/i2s_data_struct.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@aic_i2s struct aic_i2s { struct clk *clk; struct reset_control *rst; struct regmap *regmap; struct snd_dmaengine_dai_dma_data playback_dma_data; struct snd_dmaengine_dai_dma_data capture_dma_data...","topics/sdk/i2s/i2s_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E\uFF1A linux-5.10/sound/soc/artinchip/aic-i2s.c...","topics/sdk/i2s/i2s_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@\u6267\u884C amixer \u65F6\u62A5\u9519\uFF0C\u663E\u793A\u627E\u4E0D\u5230 conf \u914D\u7F6E\u6587\u4EF6 \u8BE5\u95EE\u9898\u7684\u539F\u56E0\u662F\u627E\u4E0D\u5230 ALSA \u7684\u8DEF\u5F84\uFF0C\u53EF\u4EE5\u901A\u8FC7\u4EE5\u4E0B\u547D\u4EE4\u89E3\u51B3\uFF1A exportALSA_CONFIG_DIR=/usr/share/alsa/...","topics/sdk/i2s/i2s_interface.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_i2s_set_sysclk \u51FD\u6570\u539F\u578B static int aic_i2s_set_sysclk(struct snd_soc_dai *dai, int clk_id, unsigned int freq, int dir) \u529F\u80FD\u8BF4\u660E \u8BBE\u7F6E S \u6A21\u5757\u8F93\u51FA\u7684 mclk \u65F6\u949F\u9891\u7387 \u53C2\u6570\u5B9A\u4E49 dai\uFF1A\u6307\u5411 dai \u7684\u6307\u9488 | clk_id\uFF1A\u8981\u8BBE\u7F6E\u7684\u65F6\u949F id |...","topics/sdk/i2s/i2s_key_procedure.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u64CD\u4F5C\u51FD\u6570\u96C6\u5B9E\u73B0 \u5728 S \u7684\u9A71\u52A8\u8BBE\u8BA1\u4E2D\uFF0Csnd_soc_dai_ops \u662F\u4E00\u4E2A\u975E\u5E38\u91CD\u8981\u7684\u7ED3\u6784\u4F53\uFF0C\u5B83\u662F dai \u7684\u64CD\u4F5C\u51FD\u6570\u96C6\uFF0C\u6240\u6709\u5BF9 S \u63A5\u53E3\u7684\u8BBE\u7F6E\u90FD\u662F\u901A\u8FC7\u6B64\u7ED3\u6784\u4F53\u5B8C\u6210\u3002\u6240\u4EE5\uFF0CI2S \u9A71\u52A8\u4E2D\u4E00\u9879\u975E\u5E38\u91CD\u8981\u7684\u90E8\u5206\u5C31\u662F\u5B9E\u73B0\u6B64\u7ED3\u6784\u4F53\u4E2D\u7684\u51FD\u6570\u63A5\u53E3\u3002snd_soc_dai_ops \u51FD\u6570\u96C6\u53EF\u4EE5\u5206\u4E3A\u5982\u4E0B\u51E0\u4E2A\u90E8\u5206\uFF1A cpu_dai \u65F6\u949F\u914D\u7F6E\u51FD\u6570\uFF0C\u901A\u5E38\u7531 machine \u9A71\u52A8\u8C03\u7528 set_sysclk\uFF1A\u8BBE\u7F6E dai...","topics/sdk/i2s/i2s_test_guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \u786C\u4EF6 \u6D4B\u8BD5\u677F\uFF1A\u5E26\u6709\u7B2C\u4E09\u65B9 codec \u82AF\u7247\u7684\u6D4B\u8BD5\u677F PC\uFF1A\u7528\u4E8E\u548C\u6D4B\u8BD5\u677F\u4EA4\u4E92 \u4E32\u53E3\u7EBF\uFF1A\u8FDE\u63A5\u6D4B\u8BD5\u677F\u7684\u8C03\u8BD5\u4E32\u53E3 \u8F6F\u4EF6 PC \u7AEF\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6 alsa-lib \u548C alsa-utils \u7B2C\u4E09\u65B9\u8F6F\u4EF6\u5305 \u7B2C\u4E09\u65B9 codec \u9A71\u52A8 \u521B\u5EFA\u58F0\u5361\u7684 machine \u9A71\u52A8 \u521B\u5EFA\u58F0\u5361 machine \u9A71\u52A8 \u58F0\u5361\u7684\u9A71\u52A8\u5206\u4E3A\u4E09\u90E8\u5206\uFF1Aplatform \u9A71\u52A8\u3001codec \u9A71\u52A8\u3001machine...","topics/sdk/i2s/i2s_user_guide.html@@@I2S \u4F7F\u7528\u6307\u5357@@@Inter-IC Sound (I2S) \u662F\u4E00\u79CD\u5E38\u89C1\u7684\u97F3\u9891\u63A5\u53E3\uFF0C\u4E3B\u8981\u7528\u4E8E\u97F3\u9891\u6570\u636E\u7684\u4F20\u8F93\u3002\u5E38\u89C1\u7684\u5E94\u7528\u573A\u666F\u662F SoC \u548C\u97F3\u9891 codec \u901A\u8FC7 I2S \u63A5\u53E3\u5B9E\u73B0\u97F3\u9891\u7684\u64AD\u653E\u4E0E\u5F55\u97F3\u3002\u7531\u4E8E\u97F3\u9891\u6570\u636E\u91CF\u8F83\u5927\uFF0CSoC \u4E00\u822C\u901A\u8FC7 DMA \u5B9E\u73B0\u97F3\u9891\u6570\u636E\u5728\u5185\u5B58\u548C I2S \u63A5\u53E3\u4E4B\u95F4\u7684\u4F20\u8F93\uFF0C\u6240\u4EE5\u9700\u8981 DMA \u9A71\u52A8\u7684\u652F\u6301\u3002 \u652F\u6301 I2S \u6807\u51C6\u534F\u8BAE \u652F\u6301 I2S\u3001\u5DE6\u5BF9\u9F50\u3001\u53F3\u5BF9\u9F50\u3001PCM\uFF08\u957F\u5E27/ \u77ED\u5E27\uFF09\u3001TDM \u683C\u5F0F \u652F\u6301\u4E3B/...","topics/sdk/keyadc/device-keyboards-user-guide.html@@@\u6309\u952E\u77E9\u9635@@@\u6B64\u7AE0\u8282\u4ECB\u7ECD\u6309\u952E\u77E9\u9635\u7684\u4F7F\u7528\u65B9\u6CD5\u4EE5\u53CA\u76F8\u5173\u914D\u7F6E\u3002...","topics/sdk/linux/burn-image-partition-table.html@@@\u5206\u533A\u8868\u63CF\u8FF0@@@image_cfg.json \u6587\u4EF6\u7684\u5F00\u5934\u63CF\u8FF0\u7684\u662F\u5F53\u524D\u8981\u70E7\u5F55\u7684\u76EE\u6807\u5B58\u50A8\u8BBE\u5907\uFF0C\u4EE5\u53CA\u5728\u8BBE\u5907\u4E0A\u7684\u5206\u533A\u914D\u7F6E\uFF0C\u4EE5 spi-nand \u4E3A\u4F8B\uFF1A "spi-nand" : { // Device, The name should be the same with string in image:info:media:type "size" : "128m" , // Size of SPI NAND...","topics/sdk/linux/burn-image-partition-table_2.html@@@\u5206\u533A\u8868\u63CF\u8FF0@@@image_cfg.json \u6587\u4EF6\u7684\u5F00\u5934\u63CF\u8FF0\u7684\u662F\u5F53\u524D\u8981\u70E7\u5F55\u7684\u76EE\u6807\u5B58\u50A8\u8BBE\u5907\uFF0C\u4EE5\u53CA\u5728\u8BBE\u5907\u4E0A\u7684\u5206\u533A\u914D\u7F6E\uFF0C\u4EE5 spi-nand \u4E3A\u4F8B\uFF1A "spi-nand" : { // Device, The name should be the same with string in image:info:media:type "size" : "128m" , // Size of SPI NAND...","topics/sdk/linux/chapter_linux.html@@@Linux@@@...","topics/sdk/mac/mac-key-procedure.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B |-->aicmac_platform_get_resources |-->kzalloc aicma_resources |-->platform_get_irq_byname |-->devm_platform_ioremap_resource |-->aicmac_platform_get_config |-->aicmac_platform_init_data...","topics/sdk/mac/mac_config.html@@@\u53C2\u6570\u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u914D\u7F6E\u7F51\u7EDC\u529F\u80FD \u5982\u9700\u5728\u5185\u6838\u4E2D\u4F7F\u7528\u4EE5\u592A\u7F51\u529F\u80FD\uFF0C\u5219\u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\u6253\u5F00\u548C\u914D\u7F6E\u7F51\u7EDC\u76F8\u5173\u529F\u80FD\uFF0C\u5982\u4E0B\u6240\u793A\uFF1A [*] Networking support Networking options <*> Packet...","topics/sdk/mac/mac_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF0C\u5C06 log \u7B49\u7EA7\u8BBE\u7F6E\u4E3A\u6700\u9AD8 7\uFF1A Kernel hacking printk and dmesg options ( 8 ) Default console loglevel ( 1 - 15 ) ( 7 )...","topics/sdk/mac/mac_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@Ethernet \u7684\u6E90\u7801\u6D89\u53CA\u4EE5\u4E0B\u76EE\u5F55\uFF1A MAC \u9A71\u52A8\uFF1A MAC \u7684\u4E3B\u9A71\u52A8\u4EE3\u7801 drivers/net/ethernet/artinchip PHY \u9A71\u52A8\uFF1A\u4F7F\u7528\u5230\u7684 mdio\uFF0Cphy \u7B49\u6A21\u5757\u7684\u9A71\u52A8 drivers/net/phy SysConfig\uFF1A\u7CFB\u7EDF\u65F6\u949F\u9009\u62E9\uFF0Cdelay \u8BBE\u7F6E\u7B49 drivers/misc/artinchip-syscfg.c \u6587\u4EF6\u547D\u540D\u8BF4\u660E...","topics/sdk/mac/mac_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@MAC \u8BBE\u5907\u65E0\u6CD5\u53D1\u73B0 \u5982\u679C\u4F7F\u7528 \u201Cifconfig -a\u201D \u65E0\u6CD5\u53D1\u73B0 MAC \u8BBE\u5907\uFF0C\u5219\u4E3B\u8981\u662F MAC \u9A71\u52A8\u521D\u59CB\u5316\u5F02\u5E38\uFF0C\u53EF\u4EE5\u5982\u4E0B\u987A\u5E8F\u6392\u67E5: \u9A71\u52A8\u6A21\u5757\u662F\u5426\u7F16\u8BD1\u548C\u52A0\u8F7D dts \u4E2D \u8BBE\u5907\u662F\u5426\u6253\u5F00 \u521D\u59CB\u5316\u8FC7\u7A0B\u4E2D\u662F\u5426\u6709\u9519\u8BEF\u8F93\u51FA GPIO \u7AEF\u53E3\u7684\u529F\u80FD\u914D\u7F6E\u662F\u5426\u6B63\u786E MAC \u65E0\u6CD5\u53D1\u73B0 PHY MAC \u65E0\u6CD5\u53D1\u73B0 PHY \u4E00\u822C\u662F MAC \u548C PHY \u7684\u901A\u4FE1\u5F02\u5E38\u5BFC\u81F4\uFF0CPHY \u7684\u9A71\u52A8\u4E00\u822C\u662F\u6B21\u8981\u7684\uFF0C\u56E0\u4E3A\u901A\u7528 PHY...","topics/sdk/mac/mac_func_param.html@@@\u529F\u80FD\u53C2\u6570\u63CF\u8FF0@@@\u529F\u80FD\u53C2\u6570\u4E3B\u8981\u9488\u5BF9\u67D0\u4E00\u4E2A\u4F7F\u7528\u65B9\u6848\u800C\u5B9A\uFF0C\u56E0\u6B64\u968F\u7740\u65B9\u6848\u7684\u4E0D\u540C\uFF0C\u53C2\u6570\u5F88\u53EF\u80FD\u4E0D\u540C\uFF0C\u8FD9\u4E9B\u53C2\u6570\u4E3B\u8981\u5728\u6587\u4EF6 target/d211/xxx/board.dts \u4E2D\uFF0C\u529F\u80FD\u53C2\u6570\u7684\u8BBE\u7F6E\u5FC5\u987B\u548C\u786C\u4EF6\u539F\u7406\u56FE\u76F8\u5339\u914D\u3002 GMAC \u529F\u80FD\u53C2\u6570\u63CF\u8FF0 &gmac0 { pinctrl-names = "default" ; pinctrl- 0 = <&gmac0_ 1000 m_pins>; phy-handle =...","topics/sdk/mac/mac_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u51C6\u5907\u5DE5\u4F5C \u7269\u6599 \u4EA4\u6362\u673A\uFF1A\u6700\u597D\u662F\u5343\u5146\u4EA4\u6362\u673A\uFF0C\u56E0\u4E3A\u5343\u5146\u4EA4\u6362\u673A\u517C\u5BB9\u767E\u5146\uFF0C\u4F46\u767E\u5146\u4E0D\u517C\u5BB9\u5343\u5146 \u6D4B\u8BD5\u677F\uFF1A\u9700\u8981\u786E\u5B9A\u6D4B\u8BD5\u677F\u7684 PHY \u7AEF\u53E3\u7684\u901F\u5EA6\uFF0C\u5343\u5146\u8FD8\u662F\u767E\u5146 \u7F51\u7EBF\uFF1A\u53EF\u4EE5\u8FDB\u884C\u8DEF\u7531\u5668\u8FDE\u63A5\u7684\u7F51\u7EBF \u8F6F\u4EF6\uFF1A\u786E\u4FDD SDK \u5305\u542B\u5982\u4E0B\u6D4B\u8BD5\u9700\u8981\u7684\u7F51\u7EDC\u8F6F\u4EF6 \u7F51\u7EDC\u8BBE\u5907\u76F8\u5173\u8F6F\u4EF6 \u4E3B\u8981\u5728 bosybox \u4E2D\uFF0C\u5982 ifconfig \u7B49 \u7F51\u901F\u6D4B\u8BD5\u8F6F\u4EF6 \u4E3B\u8981\u662F iperf3 \u6216\u8005 netperf \uFF0C\u63A8\u8350 iperf3 \uFF0C\u53EF\u76F4\u89C2\u89C2\u5BDF\u7F51\u901F\u53D8\u5316...","topics/sdk/mac/mac_user_guide.html@@@MAC \u4F7F\u7528\u6307\u5357@@@\u4EE5\u592A\u7F51\uFF08Ethernet\uFF09\u662F\u4E00\u79CD\u8BA1\u7B97\u673A\u5C40\u57DF\u7F51\u7EC4\u7F51\u6280\u672F\uFF0C\u57FA\u4E8E IEEE802.3 \u6807\u51C6\uFF0C\u5B83\u89C4\u5B9A\u4E86\u5305\u62EC\u7269\u7406\u5C42\u7684\u8FDE\u7EBF\uFF08RJ45\uFF09\uFF0C\u7535\u6C14\u4FE1\u53F7\uFF08PHY\uFF09\u548C\u5A92\u4F53\u8BBF\u95EE\u5C42\uFF08MAC\uFF09\u534F\u8BAE\u7B49\uFF0C \u4EE5\u592A\u7F51\u7684\u7279\u5F81\u662F\u6709\u7EBF\u7F51\u7EDC\uFF0C\u7F51\u7EDC\u4E2D\u7684\u5404\u7EC8\u7AEF\u5FC5\u987B\u901A\u8FC7\u7F51\u7EBF\u8FDB\u884C\u8FDE\u63A5\uFF0C\u4EE5\u592A\u7F51\u6A21\u5757\u53EF\u4EE5\u7B80\u5355\u7684\u7406\u89E3\u4E3A MAC \u901A\u8FC7 MII \u603B\u7EBF\u63A7\u5236 PHY \u5171\u540C\u5B8C\u6210\u7EC8\u7AEF\u4E4B\u95F4\u6570\u636E\u4EA4\u6362\u7684\u4E00\u79CD\u8BBE\u5907\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E MAC...","topics/sdk/mpp/mpp-decode.html@@@MPP Decoder \u8BBE\u8BA1\u53CA\u63A5\u53E3\u8BF4\u660E@@@MPP Decoder \u7531\u4E09\u4E2A\u4E3B\u8981\u6A21\u5757\u7EC4\u6210\uFF1A \u89E3\u7801\u6A21\u5757\uFF08H264\u3001JPEG\u3001PNG \u7B49\uFF09\uFF1A\u8D1F\u8D23\u5C06\u7801\u6D41\u6570\u636E\u89E3\u7801\u6210\u89C6\u9891\u56FE\u50CF \u8F93\u5165\u7801\u6D41\u6570\u636E\u7BA1\u7406\u6A21\u5757\uFF08 Packet manager \uFF09\uFF1A\u8D1F\u8D23\u89C6\u9891\u3001\u56FE\u7247\u7801\u6D41\u6570\u636E\u548C buffer \u7684\u7BA1\u7406 \u663E\u793A\u5E27\u7BA1\u7406\u6A21\u5757\uFF08 Frame manager \uFF09\uFF1A\u8D1F\u8D23\u89E3\u7801\u56FE\u50CF buffer \u7684\u7BA1\u7406 Packet \u7BA1\u7406\u673A\u5236 Packet manager \u8D1F\u8D23\u7BA1\u7406\u7801\u6D41\u6570\u636E\u548C...","topics/sdk/mpp/mpp-heap_interface_intro.html@@@MPP Heap \u63A5\u53E3\u8BF4\u660E@@@Mpp Heap \u8D1F\u8D23\u7BA1\u7406 mpp \u4E2D\u95F4\u4EF6\u72EC\u5360\u7684 CMA \u5185\u5B58\uFF0C\u5E76\u5728 mpp \u4E2D\u95F4\u4EF6\u9700\u8981\u7269\u7406\u5185\u5B58\u65F6\uFF0C\u5C06\u5185\u5B58\u9875\u9762\u5BFC\u51FA\u4E3A DMA-BUF\u3002 mpp heap \u7279\u70B9 \u89E3\u51B3\u5185\u5B58\u788E\u7247\u5316 CMA \u5185\u5B58\u5141\u8BB8\u591A\u5A92\u4F53\u6A21\u5757\u548C\u7CFB\u7EDF\u590D\u7528\uFF0C\u5728\u8FD9\u79CD\u60C5\u51B5\u4E0B\uFF0C\u5185\u5B58\u788E\u7247\u5316\u7684\u60C5\u51B5\u4E0D\u53EF\u907F\u514D\uFF08\u90E8\u5206\u5185\u5B58\u9875\u9762\u53EF\u80FD\u4F1A\u88AB\u7CFB\u7EDF pin \u4F4F\uFF0C\u65E0\u6CD5\u8FC1\u79FB\uFF09\u3002\u800C mpp heap \u7BA1\u7406\u7684\u5185\u5B58\u80FD\u786E\u4FDD\u53EA\u88AB mpp \u4E2D\u95F4\u4EF6\u4F7F\u7528\uFF0C\u907F\u514D\u4E86\u5185\u5B58\u9875\u9762\u88AB pin...","topics/sdk/mpp/mpp_config.html@@@MPP \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E MPP \u4F9D\u8D56 VE \u9A71\u52A8\uFF0CMPP Heap \u5185\u5B58\u7BA1\u7406\u6846\u67B6\uFF0C\u8BF7\u5728 MPP \u7F16\u8BD1\u524D\u8FDB\u884C\u914D\u7F6E\u3002 MPP Heap ArtInChip \u5E73\u53F0\u4F7F\u7528 DMA-BUF \u6765\u5B9E\u73B0\u591A\u5A92\u4F53\u6A21\u5757\u95F4\u7684 buffer \u5171\u4EAB\u3002\u5BF9\u4E8E DMA-BUF\uFF0CKernel \u63D0\u4F9B System Heap \u548C CMA Heap \u4E24\u4E2A exporter\u3002 \u524D\u8005\u76F4\u63A5\u7533\u8BF7\u533F\u540D\u9875\u9762\uFF0C\u540E\u8005\u5219\u5728 CMA \u5185\u5B58\u4E2D\u7533\u8BF7\u9875\u9762\u3002 \u867D\u7136\u901A\u8FC7\u8FD9\u4E24\u4E2A...","topics/sdk/mpp/mpp_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@MPP \u8C03\u8BD5 MPP \u8C03\u8BD5 log \u7B49\u7EA7\u5206\u4E3A ERROR, WARNING, INFO, DEBUG, VERBOSE\u3002\u901A\u8FC7 LOGL_DEFAULT \u5B9A\u4E49 MPP \u5168\u5C40\u7684 log \u7B49\u7EA7\u3002 \u9ED8\u8BA4 log \u7B49\u7EA7\u4E3A INFO\u3002 \u6E90\u6587\u4EF6\u8DEF\u5F84\uFF1A aic-mpp/base/log.h enum log_level { LOGL_ERROR = 0 , LOGL_WARNING, LOGL_INFO...","topics/sdk/mpp/mpp_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u5728 Luban \u7684\u6839\u76EE\u5F55\u4E0B\u901A\u8FC7 make linux-menuconfig \u6253\u5F00 aic-mpp\uFF0C\u5E76\u8FDB\u884C\u7F16\u8BD1\u3002 ArtInChip packages ---> [*] aic-mpp \u6E90\u6587\u4EF6\u76EE\u5F55\uFF1A tree . \u251C\u2500\u2500 base // \u516C\u5171\u6A21\u5757\uFF1A\u5305\u62EC\u5185\u5B58\u5206\u914D\u548C\u94FE\u8868\u7B49\u57FA\u7840\u529F\u80FD \u2502 \u251C\u2500\u2500 memory \u251C\u2500\u2500 ge // 2D \u56FE\u5F62\u52A0\u901F\u6A21\u5757 \u251C\u2500\u2500 ve // \u7F16\u89E3\u7801\u5668\u6A21\u5757 | \u251C\u2500\u2500...","topics/sdk/mpp/mpp_encoder_design.html@@@MPP Encoder \u8BBE\u8BA1\u53CA\u63A5\u53E3\u8BF4\u660E@@@MPP Encoder \u76EE\u524D\u53EA\u652F\u6301 JPEG \u56FE\u7247\u7F16\u7801\u3002\u63A5\u53E3\u8BBE\u8BA1\u5982\u4E0B\uFF1A \u8868 1 . mpp_encode_jpeg \u51FD\u6570\u539F\u578B int mpp_encode_jpeg(struct mpp_frame* frame, int quality, int dma_buf_fd, int buf_len, int* len) \u529F\u80FD\u8BF4\u660E \u7F16\u7801\u4E00\u5E27 JPEG \u56FE\u7247 \u53C2\u6570\u5B9A\u4E49 frame: \u5F85\u7F16\u7801\u7684\u539F\u59CB YUV...","topics/sdk/mpp/mpp_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@VE \u9A71\u52A8\u672A\u52A0\u8F7D \u73B0\u8C61 \u5728 /dev \u8DEF\u5F84\u4E0B\uFF0C\u672A\u53D1\u73B0\u5B57\u7B26\u8BBE\u5907 /dev/aic_ve \u3002 \u539F\u56E0\u5206\u6790 \u786E\u8BA4\u5185\u6838\u4E2D\u662F\u5426\u52A0\u8F7D VE \u9A71\u52A8\u3002 \u89E3\u7801\u540E\u56FE\u50CF\u82B1\u5C4F \u73B0\u8C61 \u89E3\u7801\u540E\u7684\u56FE\u50CF\u51FA\u73B0\u82B1\u5C4F\u73B0\u8C61\u3002 \u539F\u56E0\u5206\u6790 \u9010\u6B65\u6392\u9664\u4EE5\u4E0B\u539F\u56E0\uFF1A \u662F\u5426\u6E90\u6587\u4EF6\u672C\u8EAB\u6709\u6570\u636E\u9519\u8BEF\uFF0C\u53EF\u4F7F\u7528 PC \u7AEF\u89C6\u9891\u64AD\u653E\u8F6F\u4EF6\u6216\u56FE\u50CF\u6D4F\u89C8\u5668\u67E5\u770B\uFF0C\u662F\u5426\u6709\u82B1\u5C4F\u73B0\u8C61; \u901A\u8FC7\u4FDD\u5B58\u89E3\u7801\u5E27\u6570\u636E\uFF0C\u5728 PC \u7AEF\u67E5\u770B\u56FE\u50CF\u662F\u5426\u6709\u82B1\u5C4F\u73B0\u8C61\uFF0C\u5982\u679C PC...","topics/sdk/mpp/mpp_ge_design.html@@@MPP GE \u8BBE\u8BA1\u53CA\u63A5\u53E3\u8BF4\u660E@@@MPP GE \u63A5\u53E3\u8BF4\u660E\u8BF7\u53C2\u8003 MPP \u5BF9 GE \u63A5\u53E3\u7684\u5C01\u88C5 \u3002...","topics/sdk/mpp/mpp_player_config.html@@@MPP \u64AD\u653E\u5668\u914D\u7F6E@@@\u5728 Luban \u6839\u76EE\u5F55\u4E0B\u6267\u884C make linux-menuconfig \uFF0C\u6309\u5982\u4E0B\u65B9\u5F0F\u914D\u7F6E\uFF1A ArtInChip Packages---> aic-mpp---> [*] enable middle ware \u64AD\u653E\u5668\u9ED8\u8BA4\u53EA\u652F\u6301 MP3 \u97F3\u9891\uFF0C\u5982\u679C\u9700\u8981\u652F\u6301 AAC \u97F3\u9891\uFF0C\u6309\u5982\u4E0B\u65B9\u5F0F\u914D\u7F6E\uFF1A ArtInChip Packages---> aic-mpp---> [*] enable middle...","topics/sdk/mpp/mpp_player_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@Player \u8C03\u8BD5 Player \u548C MPP \u4F7F\u7528\u76F8\u540C\u7684 log \u51FD\u6570\uFF0C\u6253\u5F00 Player \u8C03\u8BD5\uFF0C\u540C\u65F6\u4E5F\u4F1A\u6253\u5F00 MPP \u7684\u8C03\u8BD5\u3002MPP \u8C03\u8BD5 log \u7B49\u7EA7\u5206\u4E3A ERROR, WARNING, INFO, DEBUG, VERBOSE\u3002\u901A\u8FC7 LOGL_DEFAULT \u5B9A\u4E49 MPP \u5168\u5C40\u7684 log \u7B49\u7EA7\u3002 \u9ED8\u8BA4 log \u7B49\u7EA7\u4E3A ERROR\u3002 \u6E90\u6587\u4EF6\u8DEF\u5F84\uFF1A...","topics/sdk/mpp/mpp_player_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u672C\u6A21\u5757\u6E90\u7801\u4F4D\u4E8E source/artinchip/aic-mpp/middle_media \uFF0C\u76EE\u5F55\u7ED3\u6784\u5982\u4E0B aic-mpp |--middle-media |-base | |-inlcude | | |-aic_message.h //\u5B9A\u4E49\u516C\u5171\u6D88\u606F\u63A5\u53E3 | | |-aic_parser.h //\u5B9A\u4E49 parser \u63A5\u53E3 | | |-aic_stream.h //\u5B9A\u4E49 stream \u63A5\u53E3 | |...","topics/sdk/mpp/mpp_player_interface.html@@@MPP Player \u63A5\u53E3\u8BBE\u8BA1@@@\u63A5\u53E3\u8BBE\u8BA1 \u72B6\u6001\u673A\u8BBE\u8BA1 \u72B6\u6001\u673A\u8BF4\u660E: IDLE \u95F2\u7F6E\u72B6\u6001,\u521A\u521B\u5EFA\u5B8C player \u5904\u4E8E\u6B64\u72B6\u6001,\u6B64\u72B6\u6001\u53EA\u80FD\u901A\u8FC7 aic_player_set_uri \u8F6C\u6362\u4E3A INITIALIZED INITIALIZED \u521D\u59CB\u5316\u5B8C\u6210\u72B6\u6001,\u548C IDLE \u72B6\u6001\u76F8\u6BD4,\u4EC5\u4EC5\u662F\u591A\u4E86\u5A92\u4F53\u6570\u636E\u6E90\u7684\u4FE1\u606F PREPARING \u5728 INITIALIZED \u72B6\u6001\u8C03\u7528\u5F02\u6B65 aic_player_prepare_async...","topics/sdk/mpp/mpp_player_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u7528\u4F8B player_demo \u4E3B\u8981\u529F\u80FD\u662F\u64AD\u653E MP4 \u548C MP3 \u6587\u4EF6\u3002\u4EE5 player_demo \u4E3A\u4F8B\uFF0C\u8BE6\u7EC6\u6D4B\u8BD5\u6D41\u7A0B\u5982\u4E0B\u6240\u793A\uFF1A \u51C6\u5907\u6D4B\u8BD5\u6587\u4EF6\uFF0C\u786E\u4FDD\u6D4B\u8BD5\u6587\u4EF6\u6EE1\u8DB3\u64AD\u653E\u5668\u652F\u6301\u7684\u6587\u4EF6\u683C\u5F0F\u8981\u6C42\uFF0C\u5373 MP4 \u5C01\u88C5\uFF0C\u89C6\u9891 H264 \u7F16\u7801\uFF0C\u97F3\u9891 MP3/AAC \u7F16\u7801\u3002 \u5982\u679C\u89C6\u9891\u683C\u5F0F\u4E0D\u7B26\u5408\u8981\u6C42\uFF0C\u9700\u8981\u4F7F\u7528 ffmpeg \uFF08\u5B98\u7F51\u5730\u5740\uFF1A http://ffmpeg.org/ \uFF09\u8FDB\u884C\u8F6C\u7801\u3002 \u8F6C\u7801\u547D\u4EE4\uFF1A \u89C6\u9891\u662F...","topics/sdk/mpp/mpp_player_user_guide.html@@@MPP \u64AD\u653E\u5668\u4F7F\u7528\u6307\u5357@@@MPP \u64AD\u653E\u5668\u65E8\u5728\u5411\u7528\u6237\u63D0\u4F9B\u7B80\u5355\u6613\u7528\u7684 API\uFF0C\u5E2E\u52A9\u7528\u6237\u5FEB\u901F\u5B9E\u73B0\u7B80\u6613\u64AD\u653E\u5668\u7684\u529F\u80FD\u3002 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E OpenMAX Open Media Accceleration \u5F00\u653E\u591A\u5A92\u4F53\u52A0\u901F\u5C42 OMX_DemuxerComponent OpenMAX Demuxer Component \u89E3\u5C01\u88C5\u7EC4\u4EF6 OMX_VdecComponent OpenMAX VIdeo Decoder Component...","topics/sdk/mpp/mpp_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u8FD0\u884C\u6D4B\u8BD5\u7528\u4F8B mpp_test \uFF1A\u6D4B\u8BD5 mpp_decoder \u63A5\u53E3\uFF0C\u89E3\u7801\u89C6\u9891\u6216\u56FE\u7247\u6587\u4EF6\u5E76\u901A\u8FC7 display \u63A5\u53E3\u663E\u793A\u5728\u5C4F\u5E55\u4E0A\u3002 \u76EE\u524D\u652F\u6301 h264, jpg\uFF0Cpng \u7684\u89E3\u7801\u548C\u663E\u793A\uFF0C\u4F7F\u7528\u65B9\u5F0F\u5982\u4E0B\uFF1A mpp_test -h Usage: mpp_test [options]: -i input stream file name -t directory of test files -d...","topics/sdk/mpp/mpp_user_guide.html@@@MPP \u4F7F\u7528\u6307\u5357@@@Media Process Platform (MPP) \u662F ArtInChip \u81EA\u4E3B\u7814\u53D1\u7684\u901A\u7528\u591A\u5A92\u4F53\u5904\u7406\u8F6F\u4EF6\u5E73\u53F0\uFF0C\u9002\u7528\u4E8E ArtInChip \u82AF\u7247\u7CFB\u5217\u3002\u652F\u6301\u5728 Linux \u5E73\u53F0\u4E0A\u8FD0\u884C\uFF0C \u5C4F\u853D\u4E86 ArtInChip \u4E0D\u540C\u82AF\u7247\u5E73\u53F0\u591A\u79CD\u591A\u5A92\u4F53\u786C\u4EF6\u6A21\u5757\uFF08VE\u3001GE \u7B49\uFF09\u7248\u672C\u7684\u5DEE\u5F02\uFF0C\u4E3A\u4F7F\u7528\u8005\u63D0\u4F9B\u7B80\u5355\u6613\u7528\u7684\u591A\u5A92\u4F53\u5904\u7406 API\uFF0C\u652F\u6301\u591A\u79CD\u591A\u5A92\u4F53\u89E3\u51B3\u65B9\u6848\u3002 \u76EE\u524D\u652F\u6301\u786C\u4EF6\u6A21\u5757\u5305\u62EC\uFF1A VE\uFF1A\u89C6\u9891\u3001\u56FE\u7247\u7F16\u89E3\u7801\u529F\u80FD...","topics/sdk/ota/ota_design.html@@@Luban OTA \u5347\u7EA7\u5305\u5236\u4F5C\u8FC7\u7A0B@@@OTA \u5347\u7EA7\u5305\u5305\u542B\u4E0B\u5217\u6587\u4EF6\uFF1A OTA \u5347\u7EA7\u5305\u914D\u7F6E\u6587\u4EF6\uFF1Asw-images.cfg OTA \u7B56\u7565\u63CF\u8FF0\u6587\u4EF6: sw-description OTA \u5347\u7EA7\u5305\u751F\u6210\u5DE5\u5177 swupdate_pack_swu OTA \u5347\u7EA7\u5305\u914D\u7F6E\u6587\u4EF6\uFF1A sw-images.cfg Luban \u63D0\u4F9B sw-images.cfg \u6587\u4EF6 \uFF0C\u7528\u4E8E\u6307\u793A\u4F1A\u88AB\u6253\u5305\u8FDB OTA \u5347\u7EA7\u5305\u7684\u6587\u4EF6\u3002 sw-images.cfg \u6587\u4EF6\u8DEF\u5F84\u4E3A...","topics/sdk/ota/ota_emmc_config_guide.html@@@eMMC OTA \u53C2\u6570\u914D\u7F6E@@@eMMC OTA \u4E3B\u8981\u6D89\u53CA\u4EE5\u4E0B\u53C2\u6570\u914D\u7F6E\uFF0C\u4EE5 d211_demo \u7684\u914D\u7F6E\u6D41\u7A0B\u4E3A\u4F8B\uFF1A \u4E3B\u7CFB\u7EDF \uFF1A\u914D\u7F6E\u6587\u4EF6 d211_demo_defconfig \u3002 1. target/d211/demo/image_cfg.json //\u5206\u533A\u914D\u7F6E\u548C\u70E7\u5F55 2. target/d211/common/env.txt //U-Boot \u73AF\u5883\u53D8\u91CF 3...","topics/sdk/ota/ota_emmc_test_guide.html@@@eMMC \u5E73\u53F0\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \u786C\u4EF6 \u5F00\u53D1\u677F \u8F6F\u4EF6 PC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 HTTP \u6216 FTP \u670D\u52A1\u5668\uFF0C\u7F51\u7EDC\u5347\u7EA7\u65B9\u5F0F\u9700\u8981\u4F7F\u7528 FTP \u670D\u52A1\u5668\u7A97\u53E3\u5982\u4E0B\u6240\u793A\uFF1A \u6CE8\uFF1A \u7F16\u8BD1\u4E24\u4EFD\u4EFD OTA \u5347\u7EA7\u5305\uFF08Kernel \u548C RootFS \u4E0D\u540C\uFF09\uFF0C\u6D4B\u8BD5\u5347\u7EA7\u662F\u5426\u6210\u529F\u3002 \u7F16\u8BD1 OTA \u5347\u7EA7\u5305 \u6267\u884C lunch d211_demo \u547D\u4EE4\u8FDB\u5165\u4E3B\u7CFB\u7EDF\uFF0C\u6267\u884C m \u547D\u4EE4\u7F16\u8BD1\u6574\u4E2A\u4E3B\u7CFB\u7EDF\uFF0C\u83B7\u5F97 Luban \u955C\u50CF OTA...","topics/sdk/ota/ota_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@\u5347\u7EA7\u8FC7\u7A0B\u4E2D\u65AD\u7535\uFF0C\u5982\u4F55\u7EE7\u7EED\u5347\u7EA7 \u73B0\u8C61 \u4E3B\u7CFB\u7EDF\u5347\u7EA7\u7A0B\u5E8F\u8FC7\u7A0B\u4E2D\u65AD\u7535\uFF0C\u8BBE\u5907\u91CD\u542F\u540E\u672A\u7EE7\u7EED\u8FDB\u884C\u5347\u7EA7\u3002Recovery \u7CFB\u7EDF\u5347\u7EA7\u7A0B\u5E8F\u8FC7\u7A0B\u4E2D\u65AD\u7535\uFF0C\u8BBE\u5907\u91CD\u542F\u540E\u80FD\u7EE7\u7EED\u8FDB\u884C\u5347\u7EA7\u3002 \u539F\u56E0\u5206\u6790 Recovery \u7CFB\u7EDF\u5347\u7EA7\u7A0B\u5E8F\u8FC7\u7A0B\u4E2D\u65AD\u7535\uFF0C\u8BBE\u5907\u91CD\u542F\u540E\u80FD\u7EE7\u7EED\u8FDB\u884C\u5347\u7EA7\uFF0C\u8FD9\u662F\u56E0\u4E3A\u5F53\u7528\u6237\u6267\u884C\u5347\u7EA7\u811A\u672C\u547D\u4EE4\u540E\uFF0C\u5347\u7EA7\u8FC7\u7A0B\u4FE1\u606F\u4F1A\u88AB\u66F4\u65B0\u4FDD\u5B58\u5728\u73AF\u5883\u53D8\u91CF\u91CC\u3002 Recovery \u7CFB\u7EDF\u5347\u7EA7\u4E3B\u7CFB\u7EDF\u7A0B\u5E8F\u8FC7\u7A0B\u4E2D\u65AD\u7535\uFF0C\u7A0B\u5E8F\u9ED8\u8BA4\u6267\u884C...","topics/sdk/ota/ota_guide.html@@@OTA \u65B9\u6848@@@OTA \u65B9\u6848\u6709\u52A9\u4E8E\u4E3A\u7528\u6237\u53CA\u65F6\u66F4\u65B0\u7CFB\u7EDF\u548C\u5E94\u7528\u7A0B\u5E8F\u3002...","topics/sdk/ota/ota_introduction_lb.html@@@\u6A21\u5757\u4ECB\u7ECD@@@OTA \u662F\u4E00\u79CD\u901A\u8FC7\u7F51\u7EDC\u4ECE\u670D\u52A1\u5668\u4E0A\u4E0B\u8F7D\u66F4\u65B0\u6587\u4EF6\uFF0C\u5BF9\u672C\u5730\u7CFB\u7EDF\u6216\u8005\u6587\u4EF6\u8FDB\u884C\u5347\u7EA7\u7684\u5347\u7EA7\u65B9\u5F0F\uFF0C\u4FBF\u4E8E\u4E3A\u7528\u6237\u53CA\u65F6\u66F4\u65B0\u7CFB\u7EDF\u548C\u5E94\u7528\u7A0B\u5E8F\u3002 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E OTA Over The Air \u8FDC\u7A0B\u5347\u7EA7 Luban OTA \u65B9\u6848\u4ECB\u7ECD Luban OTA \u7CFB\u7EDF\u65B9\u6848\u5177\u6709\u5982\u4E0B\u7279\u70B9\uFF1A \u57FA\u4E8E SWUpdate \u5E73\u53F0\u5B9E\u73B0\uFF0C\u4F7F\u7528 Recovery \u7CFB\u7EDF\u65B9\u6848\u3002 \u7A0B\u5E8F kernel \u548C Rootfs \u79F0\u4E3A\u4E3B\u7CFB\u7EDF\u3002...","topics/sdk/ota/ota_spinand_config_guide.html@@@SPINAND OTA \u53C2\u6570\u914D\u7F6E@@@SPINAND OTA \u4E3B\u8981\u6D89\u53CA\u4EE5\u4E0B\u53C2\u6570\u914D\u7F6E\uFF0C\u4EE5 d211_demo128_nand \u7684\u914D\u7F6E\u6D41\u7A0B\u4E3A\u4F8B\uFF1A \u4E3B\u7CFB\u7EDF \uFF1A\u914D\u7F6E\u6587\u4EF6 d211_demo128_nand_defconfig \u3002 1. target/ d21x /demo128_nand/image_cfg.json //\u5206\u533A\u914D\u7F6E\u548C\u70E7\u5F55 2. target/ d21x /common/env.txt //U-Boot \u73AF\u5883\u53D8\u91CF 3...","topics/sdk/ota/ota_spinand_test_guide.html@@@SPI NAND \u5E73\u53F0\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \u786C\u4EF6 \u5F00\u53D1\u677F\uFF08\u672C\u6587\u4EE5 d211_demo128_nand \u4E3A\u4F8B\uFF09 \u8F6F\u4EF6 PC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6, \u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 HTTP \u6216 FTP \u670D\u52A1\u5668, \u7F51\u7EDC\u5347\u7EA7\u65B9\u5F0F\u9700\u8981\u4F7F\u7528 FTP \u670D\u52A1\u5668\u7A97\u53E3\u5982\u4E0B\u6240\u793A\uFF1A \u6CE8\uFF1A \u7F16\u8BD1\u4E24\u4EFD OTA \u5347\u7EA7\u5305\uFF08Kernel \u548C RootFS \u4E0D\u540C\uFF09\uFF0C\u6D4B\u8BD5\u5347\u7EA7\u662F\u5426\u6210\u529F\u3002 \u7F16\u8BD1 OTA \u5347\u7EA7\u5305 \u6267\u884C lunch d211_demo128_nand...","topics/sdk/pbus/pbus-common_issues.html@@@\u5E38\u89C1\u95EE\u9898@@@FPGA \u73AF\u5883\u4E2D\u65E0\u6CD5\u5B9E\u6D4B PBus \u7684\u529F\u80FD\uFF0C\u6682\u65E0\u95EE\u9898\u8BB0\u5F55\u3002...","topics/sdk/pbus/pbus-configuration.html@@@PBUS \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers Misc devices [*] PBUS driver for ArtInChip SoC DTS \u53C2\u6570\u914D\u7F6E PBUS \u81EA\u5B9A\u4E49\u53C2\u6570 PBUS \u9A71\u52A8\u652F\u6301\u4ECE DTS...","topics/sdk/pbus/pbus-debug_guide.html@@@\u8C03\u8BD5\u6307\u5357@@@\u5728 PBUS \u9A71\u52A8\u521D\u59CB\u5316\u6210\u529F\u540E\uFF0C\u4F1A\u5728 Sysfs \u4E2D\u6CE8\u518C\u751F\u6210\u4E00\u4E2A status \u8282\u70B9\uFF0C\u5176\u4E2D\u6253\u5370\u4E86\u5F53\u524D\u7684 PBus \u63A7\u5236\u5668\u7684\u914D\u7F6E\u53CA\u72B6\u6001\u4FE1\u606F\uFF1A # cat /sys/devices/platform/soc/ 107f 0000.pbus/status In PBUS V1. 00 : Bus clk: Div 1 , Out enable0, Pol 0 POL: CS 0 , Addr valid...","topics/sdk/pbus/pbus-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E\uFF1A drivers/misc/artinchip-pbus.c \u6A21\u5757\u67B6\u6784 PBus \u5BF9\u7528\u6237\u6765\u8BF4\uFF0C\u53EA\u9700\u8981\u80FD\u591F\u8BBE\u7F6E\u4E00\u4E9B\u4FE1\u53F7\u53C2\u6570\u5373\u53EF\uFF0C\u6240\u4EE5\u5C06\u5176\u5F52\u5165 Linux \u5185\u6838\u4E2D\u7684 Misc \u8BBE\u5907\u3002 \u4E0D\u9700\u8981\u8FD0\u884C\u65F6\u4FEE\u6539\u53C2\u6570\uFF0C\u6240\u4EE5\u4E5F\u4E0D\u9700\u8981\u5355\u72EC\u521B\u5EFA\u8BBE\u5907\u8282\u70B9\uFF0CPBus \u9A71\u52A8\u4F1A\u7528 DTS \u65B9\u5F0F\u6765\u89E3\u6790\u548C\u8BBE\u7F6E\u4FE1\u53F7\u53C2\u6570\u3002 \u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1 PBus \u6A21\u5757\u9075\u5FAA driver \u7684\u901A\u7528\u521D\u59CB\u5316\u6D41\u7A0B\uFF0C\u7533\u8BF7 regs...","topics/sdk/pbus/pbus-test_guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883\uFF1A \u786C\u4EF6\uFF1A\u5F00\u53D1\u677F\uFF0C\u6216 D211 \u7684 FPGA \u677F \u8F6F\u4EF6\uFF1APC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 \u901A\u8FC7 PBus \u9A71\u52A8\u5728 Sysfs \u6CE8\u518C\u7684 status \u8282\u70B9\uFF0C\u53EF\u4EE5\u67E5\u770B\u5F53\u524D PBus \u63A7\u5236\u7684\u914D\u7F6E\u53C2\u6570\u3002\u8BE6\u89C1 \u8C03\u8BD5\u6307\u5357 \u3002 TODO\uFF1AFPGA \u73AF\u5883\u4E2D\u65E0\u6CD5\u5B9E\u6D4B PBus \u7684\u529F\u80FD\uFF0C\u6682\u65E0\u529F\u80FD\u6D4B\u8BD5\u7684\u8BB0\u5F55\u3002...","topics/sdk/pbus/pbus-user-guide.html@@@PBUS \u4F7F\u7528\u6307\u5357@@@Parallel Bus (PBUS) \u6A21\u5757\u529F\u80FD\u4E3B\u8981\u5B9E\u73B0\u4E86\u4E00\u7EC4\u5916\u90E8\u5E76\u884C\u603B\u7EBF\uFF0C\u53EF\u4E0E\u5916\u90E8 FPGA \u548C SRAM \u7B49\u5143\u5668\u4EF6\u5B9E\u73B0\u8FDE\u63A5\u548C\u9AD8\u6548\u901A\u4FE1\uFF0C\u63D0\u9AD8\u7CFB\u7EDF\u7684\u7075\u6D3B\u6027\u548C\u6269\u5C55\u6027\u3002\u6B64\u5916\uFF0CPBUS \u6A21\u5757\u652F\u6301 AHB \u603B\u7EBF\u8BBF\u95EE\u914D\u7F6E\u5BC4\u5B58\u5668\u548C\u5916\u90E8\u8BBE\u5907\uFF0C\u4ECE\u800C\u6709\u6548\u7BA1\u7406\u548C\u63A7\u5236\u4E0E\u4E4B\u76F8\u8FDE\u7684\u5916\u90E8\u8BBE\u5907\uFF0C\u786E\u4FDD\u6570\u636E\u7684\u987A\u7545\u4F20\u8F93\u3002\u901A\u8FC7\u5408\u7406\u7684\u5BC4\u5B58\u5668\u914D\u7F6E\u548C\u4F7F\u7528\u7EA6\u5B9A\u7684\u6620\u5C04\u5730\u5740\u7A7A\u95F4\uFF0CPBUS \u6A21\u5757\u53EF\u63D0\u4F9B\u66F4\u591A\u7684\u64CD\u4F5C\u7075\u6D3B\u6027\u5E76\u63D0\u9AD8\u7CFB\u7EDF\u6027\u80FD\u3002 \u8868 1...","topics/sdk/peripheral/peripheral-intro.html@@@\u5916\u8BBE\u79FB\u690D@@@\u89E6\u6478\u5C4F\u3001\u663E\u793A\u5668\u3001WIFI \u6A21\u5757\u3001\u6309\u952E\u7B49\u5916\u8BBE\u7684\u4ECB\u7ECD\u548C\u4F7F\u7528\u8BF4\u660E\u3002...","topics/sdk/peripheral/peripheral-screen_debug_configuration.html@@@\u663E\u793A\u5C4F@@@Panel \u7C7B\u578B\u8BE6\u7EC6\u4ECB\u7ECD\uFF0C\u4EE5\u53CA\u53C2\u6570\u548C\u529F\u80FD\u914D\u7F6E\u63CF\u8FF0\u3002...","topics/sdk/peripheral/touch-screen-debug-guide.html@@@\u89E6\u6478\u5C4F@@@RTP \u548C CTP \u8C03\u8BD5\u793A\u4F8B\u6D41\u7A0B\u3002...","topics/sdk/pinctrl/pinctrl-architecture.html@@@\u6A21\u5757\u67B6\u6784@@@pinctrl \u9A71\u52A8 pinctrl \u5B50\u7CFB\u7EDF\u5BF9 controller \u8FDB\u884C\u4E86\u8F6F\u4EF6\u62BD\u8C61\uFF0C\u5E76\u7531 controller \u6240\u5B9E\u73B0\u7684\u64CD\u4F5C\u51FD\u6570\u96C6\u6765\u7BA1\u7406\u5404\u4E2A pin \u811A\u7684\u5C5E\u6027\u548C\u590D\u7528\u3002\u5B50\u7CFB\u7EDF\u4E2D\u4E3B\u8981\u7684\u6570\u636E\u7ED3\u6784\u5173\u7CFB\u5982\u4E0B\u56FE\uFF1A \u5176\u76F8\u5E94\u7684\u8F6F\u4EF6\u57FA\u672C\u6846\u67B6\u4E3A\uFF1A pinctrl \u5B50\u7CFB\u7EDF\u7684\u5E95\u5C42\u9A71\u52A8\u5B9E\u73B0\uFF0C\u4E3B\u8981\u5206\u4E3A\u4E09\u90E8\u5206\uFF1A struct pinconf_ops \u51FD\u6570\u96C6\u5B9E\u73B0\uFF0C\u4E3B\u8981\u7528\u6765\u8BBE\u7F6E pin \u811A\u7684\u7535\u6C14\u53C2\u6570\uFF0C\u5982\u4E0A\u4E0B\u62C9\uFF0C\u9A71\u52A8\u80FD\u529B\u7B49\u3002...","topics/sdk/pinctrl/pinctrl-common_issues.html@@@\u5E38\u89C1\u95EE\u9898@@@...","topics/sdk/pinctrl/pinctrl-configuration.html@@@PINCTRL \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers Pin controllers---> [*] ArtInChip pin controller version1 device driver DTS \u914D\u7F6E \u5728...","topics/sdk/pinctrl/pinctrl-data_structure_design.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@aic_desc_function struct aic_desc_function { const unsigned char num; //pin \u811A\u529F\u80FD\u6240\u5BF9\u5E94\u7684\uFF0C\u6700\u7EC8\u5199\u5165\u5BC4\u5B58\u5668\u7684\u7D22\u5F15\u503C const char *name; //pin \u811A\u5BF9\u5E94\u7684\u529F\u80FD\u7684\u540D\u5B57 }; aic_desc_pin struct aic_desc_pin { struct pinctrl_pin_desc pin...","topics/sdk/pinctrl/pinctrl-debug_guide.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 PINCTRL \u6A21\u5757\u7684\u9A71\u52A8\u6709\u4E00\u4E9B dbg \u8C03\u8BD5\u4FE1\u606F\uFF0C\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u662F\u6CA1\u6709\u6253\u5F00\u7684\uFF0C\u5F53\u9700\u8981\u8DDF\u8E2A\u8C03\u8BD5\u65F6\uFF0C\u53EF\u901A\u8FC7\u4EE5\u4E0B\u6B65\u9AA4\u6253\u5F00\u8FD9\u4E9B\u8C03\u8BD5\u4FE1\u606F\u3002 \u8C03\u6574 log \u7B49\u7EA7 \u5728 Luban \u6839\u76EE\u5F55\u4E0B\u6267\u884C make kernel-menuconfig\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\uFF0C\u8C03\u6574\u5185\u6838\u7684 log \u7B49\u7EA7\u3002 Kernel hacking---> printk and dmesg options---> ( 8 )...","topics/sdk/pinctrl/pinctrl-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@PINCTRL \u6A21\u5757\u7684\u5E95\u5C42\u9A71\u52A8\u4F4D\u4E8E linux-5.10/drivers/pinctrl/artinchip/ \u9A71\u52A8\u6587\u4EF6\u5982\u4E0B\uFF1A \u6587\u4EF6 \u8BF4\u660E pinctrl-aic.h pinctrl \u516C\u7528\u5934\u6587\u4EF6\uFF0C\u4E00\u4E9B\u7ED3\u6784\u4F53\u548C\u5B8F\u5B9A\u4E49 pinctrl-aic.c pinctrl \u9A71\u52A8\u7684\u6838\u5FC3\u6587\u4EF6\uFF0C\u5B9E\u73B0\u4E86 gpio/pinctrl/irq \u7684\u9A71\u52A8 pinctrl-aic-v1.c pinctrl v1.0 \u7684 pin...","topics/sdk/pinctrl/pinctrl-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_pconf_group_get \u51FD\u6570\u539F\u578B static int aic_pconf_group_get(struct pinctrl_dev *pctldev, unsigned group, unsigned long *config) \u529F\u80FD\u8BF4\u660E \u4ECE controller \u7684 groups \u6570\u7EC4\u4E2D\uFF0C\u83B7\u53D6\u7D22\u5F15\u503C\u4E3A group \u7684\u914D\u7F6E\u53C2\u6570 \u53C2\u6570\u5B9A\u4E49 pctldev\uFF1Apin...","topics/sdk/pinctrl/pinctrl-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@pin \u811A\u529F\u80FD\u5B9A\u4E49 \u5728 pinctrl \u5B50\u7CFB\u7EDF\u4E2D\uFF0C\u6709 function \u548C group \u7684\u6982\u5FF5\u3002function \u662F\u6307\u67D0\u4E2A\u5177\u4F53\u7684\u529F\u80FD\uFF0C\u5982 uart0\u3001spi1\u3001i2c2 \u7B49\u3002soc \u7684\u51E0\u4E2A pin \u811A\u53EF\u4EE5\u6784\u6210\u4E00\u4E2A group\uFF0C\u5F62\u6210\u7279\u5B9A\u7684\u529F\u80FD\uFF0C\u5982 PA0 \u548C PA1 \u53EF\u4EE5\u7EC4\u6210 uart0\u3002\u4E00\u4E2A function \u5F80\u5F80\u5305\u542B\u4E00\u4E2A\u6216\u591A\u4E2A group\uFF0C\u4F8B\u5982\uFF0Cuart0 \u8FD9\u4E2A function \u53EF\u4EE5\u7531 PA0...","topics/sdk/pinctrl/pinctrl-test_guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@...","topics/sdk/pinctrl/pinctrl-user-guide.html@@@PINCTRL \u4F7F\u7528\u6307\u5357@@@PINCTRL \u6A21\u5757\uFF0C\u8D1F\u8D23\u7BA1\u7406 SOC \u4E2D\u5404\u4E2A pin \u7684\u72B6\u6001\uFF0C\u5982\u9A71\u52A8\u80FD\u529B\uFF0C\u5185\u90E8\u662F\u5426\u6709\u4E0A\u4E0B\u62C9\uFF0Cgpio \u7684\u8F93\u5165\u8F93\u51FA\uFF0C\u4EE5\u53CA\u662F\u5426\u529F\u80FD\u590D\u7528\u7B49\u3002\u901A\u8FC7 PINCTRL \u6A21\u5757\uFF0C\u5C06 SOC \u7684 pin \u811A\u4E2A\u6570\uFF0C\u5404\u4E2A pin \u811A\u53EF\u5B9E\u73B0\u7684\u529F\u80FD\u7B49\u4FE1\u606F\u7EDF\u4E00\u6CE8\u518C\u5230\u5185\u6838\u4E2D\uFF0C\u65B9\u4FBF\u7CFB\u7EDF\u8FDB\u884C\u7EDF\u4E00\u7BA1\u7406\u3002 \u5728 linux \u5185\u6838\u4E2D\uFF0Cpin \u7684\u529F\u80FD\u590D\u7528\u7531 pinctrl \u5B50\u7CFB\u7EDF\u5B9E\u73B0\uFF0Cgpio \u7684\u8F93\u5165\u3001\u8F93\u51FA\u3001\u4E2D\u65AD\u529F\u80FD\u7531 gpio...","topics/sdk/psadc/psadc-architecture.html@@@\u6A21\u5757\u67B6\u6784@@@IIO \u5DE5\u4E1A I/O\uFF0C\u662F Linux \u5185\u6838\u4E2D\u4E13\u7528\u4E8E\u5904\u7406\u6A21\u6570\u8F6C\u6362\u5668\uFF08ADC\uFF09\u548C\u6570\u6A21\u8F6C\u6362\u5668\uFF08DAC\uFF09\u7684\u5B50\u7CFB\u7EDF\uFF0C\u6700\u521D\u521B\u5EFA\u4E8E 2009 \u5E74\uFF0C\u63D0\u4F9B\u4E86\u7EDF\u4E00\u7684\u6846\u67B6\u6765\u8BBF\u95EE\u548C\u63A7\u5236\u5404\u79CD\u7C7B\u578B\u7684\u4F20\u611F\u5668\uFF0C\u5E76\u4E14\u4E3A\u7528\u6237\u6001\u63D0\u4F9B\u4E86\u6807\u51C6\u7684\u63A5\u53E3\u3002 \u76EE\u524D IIO \u652F\u6301\u7684\u8BBE\u5907\u7C7B\u578B\u5305\u62EC\uFF1AADC/DAC\u3001\u52A0\u901F\u5EA6\u8BA1\u3001\u78C1\u529B\u8BA1\u3001\u9640\u87BA\u4EEA\u3001\u7535\u6D41/\u7535\u538B\u6D4B\u91CF\u82AF\u7247\u3001\u538B\u529B\u4F20\u611F\u5668\u3001\u6E29\u5EA6\u4F20\u611F\u5668\u3001\u6E7F\u5EA6\u4F20\u611F\u5668\u3001\u5149\u4F20\u611F\u5668\u3001\u538B\u529B\u4F20\u611F\u5668\u7B49\u3002 \u6574\u4E2A IIO...","topics/sdk/psadc/psadc-common_issues.html@@@\u5E38\u89C1\u95EE\u9898@@@PSADC \u521D\u59CB\u5316\u5931\u8D25 \u73B0\u8C61 \u5728 PSADC \u6A21\u5757\u521D\u59CB\u5316\u65F6\u62A5\u9519\uFF0C\u4E00\u822C\u662F GPIO \u7533\u8BF7\u5931\u8D25\u3002 \u539F\u56E0\u5206\u6790 \u9996\u5148\u5728 DTS \u4E2D\u68C0\u67E5\u6253\u5F00\u4E86\u54EA\u51E0\u4E2A PSADC \u901A\u9053\uFF0C\u5BF9\u5E94\u7684 PSADC \u5F15\u7528\u662F\u5426\u6B63\u786E\uFF0C\u8BE6\u89C1 Board \u914D\u7F6E \u7136\u540E\u5728\u68C0\u67E5\u8BE5 GPIO \u662F\u5426\u548C\u5176\u4ED6\u8BBE\u5907\u6709\u51B2\u7A81\uFF0Cluban \u5728\u7F16\u8BD1\u56FA\u4EF6\u7684\u65F6\u5019\u6709 pinmux \u51B2\u7A81\u68C0\u67E5\uFF0C\u8BF7\u786E\u8BA4\u65E0\u4EFB\u4F55\u51B2\u7A81\u3002 \u7535\u538B\u8BFB\u53D6\u6CA1\u53D8\u5316 \u73B0\u8C61 \u5F53\u6539\u53D8\u8F93\u5165\u7535\u538B\u65F6\uFF0C\u7535\u538B\u8BFB\u53D6\u6CA1\u53D8\u5316...","topics/sdk/psadc/psadc-data_structure_design.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@aic_psadc_data \u8BB0\u5F55\u5404\u4E2A\u901A\u9053\u7684\u6570\u636E\u4FE1\u606F\uFF1A struct aic_psadc_data { int num_bits; const struct iio_chan_spec *channels; int num_channels; u32 fifo_depth[AIC_PSADC_MAX_CH]; }; struct aic_psadc_dev \u7BA1\u7406 PSADC \u63A7\u5236\u5668\u7684\u8BBE\u5907\u8D44\u6E90\uFF1A...","topics/sdk/psadc/psadc-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E drivers/iio/adc/artinchip_psadc.c...","topics/sdk/psadc/psadc-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_psadc_read_raw \u51FD\u6570\u539F\u578B static int aic_psadc_read_raw(struct iio_dev *iodev, struct iio_chan_spec const *chan, int *val, int *val2, long mask) \u529F\u80FD\u8BF4\u660E \u8BFB\u53D6\u4E00\u4E2A ADC \u901A\u9053\u7684\u5F53\u524D\u6570\u636E \u53C2\u6570\u5B9A\u4E49 iodev - \u6307\u5411\u4E00\u4E2A iio \u8BBE\u5907 chan...","topics/sdk/psadc/psadc-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B PSADC \u6A21\u5757\u5B8C\u5168\u9075\u5FAA driver \u7684\u901A\u7528\u521D\u59CB\u5316\u6D41\u7A0B\uFF0C\u7533\u8BF7 regs \u8D44\u6E90\u3001clk\u3001reset\uFF0C\u8FD8\u9700\u8981\u6CE8\u518C\u4E00\u4E2A iio \u8BBE\u5907\uFF0C\u4F7F\u7528 iio \u5B50\u7CFB\u7EDF\u63D0\u4F9B\u7684\u6CE8\u518C\u63A5\u53E3 iio_device_register()\uFF1A # define iio_device_register(indio_dev) \\ __iio_device_register((indio_dev)...","topics/sdk/psadc/psadc-test_guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \uFF1A \u786C\u4EF6\uFF1A\u5F00\u53D1\u677F \uFF0C\u6216 D211 \u7684 FPGA \u677F \u8F6F\u4EF6\uFF1A PC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 ADC \u6570\u636E\u7684\u8BFB\u53D6\uFF0C\u53EA\u9700\u8981\u666E\u901A\u7684 cat \u547D\u4EE4\u5373\u53EF\uFF0C\u6BCF\u6B21 cat \u53EF\u8BFB\u53D6\u67D0\u4E00\u4E2A\u901A\u9053\u4E2D\u7684\u5F53\u524D\u6570\u636E\u3002\u8BE6\u89C1 Sysfs \u8282\u70B9 \u3002...","topics/sdk/psadc/psadc_config.html@@@PSADC \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u914D\u7F6E IIO \u5728 SDK \u6839\u76EE\u5F55\u4E0B\u6267\u884C make menuconfig \uFF0C\u8FDB\u5165 menuconfig \u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A ArtInChip Luban SDK Configuration Linux kernel Advance setting Linux Kernel Tools <*>iio \u914D\u7F6E PSADC \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel...","topics/sdk/psadc/psadc_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF0C\u6253\u5F00 PSADC \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A Linux Kernel hacking Artinchip Debug [*] PSADC driver debug \u6253\u5F00 DEBUG \u9009\u9879\u540E\uFF1A \u9A71\u52A8\u4EE5 -O0...","topics/sdk/psadc/psadc_user_guide.html@@@PSADC \u4F7F\u7528\u6307\u5357@@@PSADC \u4E3B\u8981\u529F\u80FD\u662F\u5C06\u5916\u90E8\u7684\u6A21\u62DF\u4FE1\u53F7\u8F6C\u6210\u6570\u5B57\u4FE1\u53F7\uFF0C\u7136\u540E\u4E0A\u62A5\u7ED9 CPU\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E ADC Analog Digital Converter \u6A21\u62DF\u6570\u5B57\u8F6C\u6362\u5668 ADCIM ADC Interface Management \u6A21\u6570\u8F6C\u6362\u7BA1\u7406\u6A21\u5757 PSADC PWM System ADC PWM \u63A7\u5236\u5B50\u7CFB\u7EDF\u54CD\u5E94\u6A21\u5757 \u6A21\u5757\u7279\u6027 PSADC \u786C\u4EF6\u6846\u56FE\u5982\u4E0B\uFF1A \u56FE 1...","topics/sdk/pwm/pwm_config.html@@@PWM \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers ---> [*] Pulse-Width Modulation (PWM) Support ---> <*> ArtInChip PWM support <*>...","topics/sdk/pwm/pwm_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6253\u5F00 PWM \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A Linux Kernel hacking Artinchip Debug [*] PWM driver debug \u6253\u5F00 DEBUG \u9009\u9879\u540E\uFF1A \u9A71\u52A8\u4EE5 -O0 \u7F16\u8BD1\u3002...","topics/sdk/pwm/pwm_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E\uFF1A drivers/pwm/pwm-artinchip.c drivers/pwm/epwm-artinchip.c EPWM \u9A71\u52A8\u8BBE\u8BA1\u4E0E PWM \u9A71\u52A8\u76F8\u540C\uFF0C\u672C\u8282\u4EC5\u4EE5 PWM \u9A71\u52A8\u4E3A\u4F8B\uFF0C\u8BE6\u7EC6\u63CF\u8FF0 PWM \u7684\u8BBE\u8BA1\u601D\u8DEF\u3002 \u6A21\u5757\u67B6\u6784 Linux \u63D0\u4F9B\u4E86\u4E00\u4E2A PWM \u5B50\u7CFB\u7EDF\uFF0C\u4F7F\u5F97\u5728\u7528\u6237\u7A7A\u95F4\u53EF\u4EE5\u901A\u8FC7 sysfs \u8282\u70B9\u6765\u63A7\u5236 Backlight \u80CC\u5149\u3002 \u6574\u4E2A\u8F6F\u4EF6\u6846\u67B6\u5982\u4E0B\u56FE\uFF1A \u56FE 1 . Linux...","topics/sdk/pwm/pwm_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@\u6BCF\u4E2A PWM \u63A7\u5236\u5668\u7684\u4E24\u8DEF\u8F93\u51FA\u4FE1\u53F7\u6709\u4EC0\u4E48\u5173\u7CFB\uFF1F \u6BCF\u4E2A\u63A7\u5236\u5668\u53EF\u4EE5\u63A7\u5236\u4E24\u8DEF\u8F93\u51FA PWM \u4FE1\u53F7\uFF0C\u8FD9\u4E24\u8DEF\u4FE1\u53F7\u4ECE\u8BBE\u8BA1\u4E0A\u6709\u4E09\u4E2A\u7EA6\u675F\u6761\u4EF6\uFF1A \u5171\u7528\u540C\u4E00\u4E2A time-base \u4FE1\u53F7 \uFF0C \u5373 DTS \u53C2\u6570 tb-clk-rate \uFF0C\u8BE6\u89C1 PWM \u81EA\u5B9A\u4E49\u53C2\u6570 \u3002 \u5171\u7528\u540C\u4E00\u4E2A PWM \u4FE1\u53F7\u9891\u7387 \u914D\u7F6E\u53C2\u6570\u3002 \u5171\u7528\u540C\u4E00\u4E2A \u5360\u7A7A\u6BD4 \u914D\u7F6E\u53C2\u6570\u3002 \u4E0A\u8FF0 \u201CPWM \u4FE1\u53F7\u9891\u7387\u201D \u548C \u201C\u5360\u7A7A\u6BD4\u201D \u7531 PWM \u7684 \u8C03\u7528\u8005\u8FD0\u884C\u65F6\u914D\u7F6E \u3002...","topics/sdk/pwm/pwm_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883\uFF1A \u786C\u4EF6 \u5F00\u53D1\u677F\uFF0C\u6216 D211 \u7684 FPGA \u677F \u793A\u6CE2\u5668\uFF0C\u7528\u4E8E\u89C2\u5BDF\u8F93\u51FA PWM \u4FE1\u53F7\u7684\u6CE2\u5F62 \u8F6F\u4EF6\uFF1APC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 \u8F6F\u4EF6\u914D\u7F6E \u80CC\u5149\u6D4B\u8BD5\u4E2D\uFF0C\u9700\u8981\u4F9D\u8D56 Backlight \u7684\u529F\u80FD\uFF1A \u5728\u5185\u6838\u4E2D\u6253\u5F00 Backlight \u6A21\u5757\uFF0C\u8BE6\u89C1 \u5185\u6838\u914D\u7F6E \u3002 \u5728 DTS \u4E2D\u914D\u7F6E Backlight \u548C PWMx \u901A\u9053\u7684\u5173\u8054\uFF0C\u8BE6\u89C1 \u80CC\u5149\u63A7\u5236\u914D\u7F6E \u3002 \u80CC\u5149\u6D4B\u8BD5 \u5229\u7528...","topics/sdk/pwm/pwm_user_guide.html@@@PWM \u4F7F\u7528\u6307\u5357@@@\u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED/\u7F29\u7565\u8BED \u5B9A\u4E49\u53CA\u8BF4\u660E PWM Pulse-Width Modulation\uFF0C\u8109\u51B2\u5BBD\u5EA6\u63A7\u5236\uFF0C\u7B80\u79F0\u8109\u5BBD\u8C03\u5236 EPWM Enhanced Pulse-Width Modulation, \u589E\u5F3A\u578B\u8109\u51B2\u5BBD\u5EA6\u63A7\u5236\uFF08 Luban \u4E2D EPWM \u529F\u80FD\u4E0E PWM \u76F8\u540C\uFF0C\u5982\u65E0\u7279\u6B8A\u8BF4\u660E\uFF0C\u4E24\u8005\u901A\u7528\uFF09 TBC Time Base Counter\uFF0C\u65F6\u57FA\u8BA1\u6570\u5668\uFF0C\u7528\u4E8E\u4EA7\u751F\u952F\u9F7F\u6CE2 \u5360\u7A7A\u6BD4 PWM...","topics/sdk/rtc/rtc-common-issues.html@@@\u5E38\u89C1\u95EE\u9898@@@RTC \u65F6\u95F4\u4E22\u5931 \u73B0\u8C61 \u91CD\u542F\u540E\uFF0CRTC \u65F6\u95F4\u53D8\u6210 1970-01-01 00:00:00\u3002 \u539F\u56E0\u5206\u6790 RTC \u9700\u8981\u6301\u7EED\u7684\u4F9B\u7535\uFF0C\u624D\u80FD\u4FDD\u6301\u4F4F\u914D\u7F6E\u7684\u65F6\u95F4\u4FE1\u606F\u3002\u53EF\u4EE5\u6309\u7167\u4EE5\u4E0B\u6D41\u7A0B\u9010\u4E2A\u6392\u67E5\u539F\u56E0\uFF1A \u786E\u8BA4\u7535\u6E90\u7EBF\u662F\u5426\u6709\u65AD\u5F00\u8FC7\u3002 \u786E\u8BA4\u662F\u5426\u5B89\u88C5\u6709\u7535\u6C60\u3002 \u5982\u6709\u5B89\u88C5\u7535\u6C60\uFF0C\u786E\u8BA4\u7535\u6C60\u7684\u7535\u91CF\u662F\u5426\u5145\u8DB3\u3002 RTC \u65F6\u95F4\u6709\u8BEF\u5DEE \u73B0\u8C61 RTC \u6A21\u5757\u7684\u8BBE\u8BA1\u7CBE\u5EA6\u662F 2 \u79D2 / 3 \u5929\uFF0C\u5373\u5728\u957F\u65F6\u95F4\u8FD0\u884C\u540E\uFF0C\u5982\u679C\u8BEF\u5DEE\u8D85\u8FC7\u8FD9\u4E2A\u8303\u56F4\uFF0C\u8BF4\u660E RTC...","topics/sdk/rtc/rtc-config-guide.html@@@RTC \u914D\u7F6E@@@\u672C\u8282\u4ECB\u7ECD RTC \u7684\u53C2\u6570\u914D\u7F6E\u3002 \u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\u6253\u5F00 RTC \u9A71\u52A8\uFF1A Linux Device Drivers [*] Real Time Clock [*] ArtInChip Soc RTC \u914D\u7F6E DTS \u53C2\u6570 RTC...","topics/sdk/rtc/rtc-data-structure.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@RTC \u6570\u636E\u7C7B\u578B\u53CA\u5176\u7ED3\u6784\u63CF\u8FF0\u5982\u4E0B\uFF1A struct aic_rtc_dev\uFF1A\u8BB0\u5F55 RTC \u63A7\u5236\u5668\u7684\u914D\u7F6E\u4FE1\u606F\uFF1A struct aic_rtc_dev { void __iomem *base; struct rtc_device *rtc_dev; struct attribute_group attrs; struct clk *clk; u32 clk_rate; u32 clk_drv...","topics/sdk/rtc/rtc-debug-guide.html@@@\u8C03\u8BD5\u6307\u5357@@@\u672C\u8282\u4ECB\u7ECD RTC \u8C03\u8BD5\u6D41\u7A0B\u3002 \u6253\u5F00\u8C03\u8BD5\u5F00\u5173 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF0C\u6253\u5F00\u8C03\u8BD5\u5F00\u5173\uFF1A Linux Kernel hacking ArtInChip Debug [*] RTC driver debug \u6253\u5F00 DEBUG \u9009\u9879\u540E\uFF1A \u9A71\u52A8\u4EE5 -O0...","topics/sdk/rtc/rtc-demo.html@@@Demo@@@\u672C\u6B21 Demo \u662F\u901A\u8FC7 ioctl \u63A5\u53E3\u6765\u8BBF\u95EE\u8BBE\u5907\u8282\u70B9 /dev/rtc0 \uFF1A #include "base.h" #include <sys/time.h> #include <linux/rtc.h> /* Global macro and variables */ # define ALARM_MAX_DELAY ( 60 * 60 ) # define ALARM_MIN_DELAY 1...","topics/sdk/rtc/rtc-design-intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u7801\u8BF4\u660E \u6E90\u4EE3\u7801\u4F4D\u4E8E\uFF1A RTC V1.0: drivers/rtc/artinchip-rtc.c RTC V0.1: drivers/rtc/artinchip-rtc-v0.1.c \u6A21\u5757\u67B6\u6784 Linux \u63D0\u4F9B\u4E86\u4E00\u4E2A RTC \u5B50\u7CFB\u7EDF\uFF0C\u7B80\u79F0 RTC Core\uFF0C\u4F7F\u5F97\u5728\u7528\u6237\u7A7A\u95F4\u53EF\u4EE5\u901A\u8FC7 /dev/watchdogX \u6765\u8BBF\u95EE RTC \u63A7\u5236\u5668\u3002\u4E3A\u4E86\u66F4\u65B9\u4FBF\u67E5\u770B\u786C\u4EF6\u72B6\u6001\u548C\u53C2\u6570\u8BBE\u7F6E\uFF0C\u672C\u9A71\u52A8\u53E6\u5916\u6269\u5C55\u4E86\u51E0\u4E2A...","topics/sdk/rtc/rtc-interface-design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u4EE5\u4E0B\u63A5\u53E3\u662F Linux RTC \u5B50\u7CFB\u7EDF\u9700\u8981\u7684\u6807\u51C6\u63A5\u53E3\u3002 \u5916\u90E8\u63A5\u53E3 Linux \u5BF9\u7528\u6237\u6001\u63D0\u4F9B\u4E86\u4E00\u7EC4 RTC \u7684 ioctl \u63A5\u53E3\uFF0C\u7528\u6237\u6001\u53EF\u4EE5\u901A\u8FC7\u8BBE\u5907\u8282\u70B9/dev/rtc0 \u6765\u8BBF\u95EE\uFF1A\uFF08\u8BE6\u89C1 include/upai/linux/rtc.h\uFF09 # define RTC_AIE_ON _IO( 'p' , 0x01 ) /* Alarm int. enable on */ # define...","topics/sdk/rtc/rtc-key-procedure.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B RTC \u9A71\u52A8\u7684\u521D\u59CB\u5316\u8FC7\u7A0B\u89C1 aic_rtc_probe() \u51FD\u6570\uFF0C\u9664\u4E86\u666E\u901A platform \u8BBE\u5907\u7684\u5904\u7406\u8FC7\u7A0B\uFF08\u7533\u8BF7 regs \u8D44\u6E90\u3001clk\u3001reset\uFF09\u5916\uFF0C\u9700\u8981\u8C03\u7528 RTC \u5B50\u7CFB\u7EDF\u7684\u63A5\u53E3 rtc_register_device() \u6765\u6CE8\u518C RTC \u8BBE\u5907\u3002 # define rtc_register_device(device)...","topics/sdk/rtc/rtc-test-guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@RTC \u6D4B\u8BD5\u6240\u9700\u7684\u6D4B\u8BD5\u73AF\u5883\u5982\u4E0B\uFF1A \u786C\u4EF6 \uFF1A\u5F00\u53D1\u677F\u4E0A\u5B89\u88C5\u6709\u7535\u6C60\uFF0C\u7528\u4E8E\u7ED9 RTC \u4F9B\u7535 \u8F6F\u4EF6 \uFF1A PC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 Linux \u5185\u6838\u539F\u751F\u7684 rtctest \u5DE5\u5177 \u914D\u7F6E\u8F6F\u4EF6 \u5728 Luban \u7684\u6839\u76EE\u5F55\u4E0B\u901A\u8FC7 make menuconfig \u6253\u5F00 rtctest \uFF1A Linux kernel Advance setting Linux Kernel Tools [*]...","topics/sdk/rtc/rtc-user-guide.html@@@RTC \u4F7F\u7528\u6307\u5357@@@Real Time Clock (RTC) \u6A21\u5757\u7528\u4E8E\u65E5\u671F\u65F6\u95F4\u7684\u4FDD\u5B58\u548C\u66F4\u65B0\uFF0C\u5728\u65E0\u7F51\u7EDC\u4E0B\u4E3A\u7CFB\u7EDF\u63D0\u4F9B\u4E00\u4EFD\u6709\u6548\u7684\u65E5\u671F\u548C\u65F6\u95F4\u3002\u901A\u8FC7\u5907\u7528\u7535\u6C60\u4F9B\u7535\uFF0C\u5728\u65AD\u7535\u573A\u666F\u4E0B\u4E5F\u53EF\u4EE5\u4E00\u76F4\u8BA1\u6570\u548C\u4FDD\u5B58\u65F6\u95F4\uFF0C\u540C\u65F6\u8FD8\u6709\u95F9\u949F\u5524\u9192\u7684\u529F\u80FD\u3002 \u4EE5\u79D2\u4E3A\u5355\u4F4D\uFF0C\u6700\u5927\u652F\u6301 100 \u5E74\u8DE8\u5EA6 \u7CBE\u5EA6\u53D6\u51B3\u4E8E\u6676\u632F\u7CBE\u5EA6\u3002RTC V1.0 \u652F\u6301\u6821\u51C6\uFF0C\u6821\u51C6\u8303\u56F4 \u00B1 975 ppm\uFF08\u6BCF\u767E\u4E07\u6B21\u8BA1\u6570\u7684\u8BEF\u5DEE\uFF09 \u652F\u6301\u4E00\u8DEF\u95F9\u949F\u8BBE\u7F6E\uFF08\u53EF\u901A\u8FC7\u8F6F\u4EF6\u6765\u6269\u5C55\u6210\u591A\u8DEF\u95F9\u949F\uFF09\uFF0C\u95F9\u949F\u7CBE\u786E\u5230\u79D2...","topics/sdk/rtp/rtp-data_structure_design.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@struct aic_rtp_dev \u7BA1\u7406 RTP \u63A7\u5236\u5668\u7684\u8BBE\u5907\u8D44\u6E90\u3002 struct aic_rtp_dev { struct platform_device *pdev; struct attribute_group attrs; struct clk *clk; struct reset_control *rst; struct device *dev; struct input_dev...","topics/sdk/rtp/rtp-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u4EE5\u4E0B\u63A5\u53E3\u662F Input \u5B50\u7CFB\u7EDF\u9700\u8981\u7684\u6807\u51C6\u63A5\u53E3\u3002 \u8868 1 . aic_rtp_open \u51FD\u6570\u539F\u578B static int aic_rtp_open(struct input_dev *dev) \u529F\u80FD\u8BF4\u660E \u6253\u5F00 RTP \u8BBE\u5907\uFF0C\u9A71\u52A8\u4F1A\u4F7F\u80FD RTP \u63A7\u5236\u5668 \u53C2\u6570\u5B9A\u4E49 dev - \u6307\u5411\u5F53\u524D\u7684 input \u8BBE\u5907 \u8FD4\u56DE\u503C 0\uFF0C\u6210\u529F\u3002 < 0\uFF0C\u5931\u8D25 \u6CE8\u610F\u4E8B\u9879 - \u8868 2 . aic_rtp_close \u51FD\u6570\u539F\u578B...","topics/sdk/rtp/rtp-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B RTP \u6A21\u5757\u5B8C\u5168\u9075\u5FAA driver \u7684\u901A\u7528\u521D\u59CB\u5316\u6D41\u7A0B\uFF0C\u7533\u8BF7 regs \u8D44\u6E90\u3001clk\u3001reset\uFF0C \u8FD8\u9700\u8981\u6CE8\u518C\u4E00\u4E2A input \u8BBE\u5907\uFF0C\u4F7F\u7528 input \u5B50\u7CFB\u7EDF\u63D0\u4F9B\u7684\u6CE8\u518C\u63A5\u53E3 input_register_device()\uFF1A int __must_check input_register_device( struct input_dev *); \u53C2\u6570 dev \u8BB0\u5F55\u4E86\u8BE5 input...","topics/sdk/rtp/rtp_config.html@@@RTP \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers Input device support [*] Touchscreens <*> ArtInChip resistive touchscreen...","topics/sdk/rtp/rtp_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF0C\u6253\u5F00 RTP \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A Linux Kernel hacking ArtInChip Debug [*] RTP driver debug \u6253\u5F00 DEBUG \u9009\u9879\u540E\uFF1A \u9A71\u52A8\u4EE5 -O0 \u7F16\u8BD1\u3002...","topics/sdk/rtp/rtp_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E linux-5.x/drivers/input/touchscreen/artinchip.c \u3002 RTP \u9A71\u52A8\u57FA\u4E8E Linux \u5185\u6838\u4E2D\u7684 input \u5B50\u7CFB\u7EDF\u5B9E\u73B0\uFF0C\u5176\u5173\u7CFB\u5982\u4E0B\u56FE\uFF1A \u56FE 1 . Linux Input \u5B50\u7CFB\u7EDF\u67B6\u6784\u56FE...","topics/sdk/rtp/rtp_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@\u8DF3\u70B9\u73B0\u8C61\u4E25\u91CD \u73B0\u8C61 \u5728\u5C4F\u5E55\u4E0A\u70B9\u51FB\u540E\uFF0C\u4F1A\u6709\u660E\u663E\u7684\u5750\u6807\u8DF3\u8DC3\uFF0C\u6216\u8005\u5750\u6807\u4E0D\u8DDF\u624B\u7684\u60C5\u51B5\u3002 \u539F\u56E0\u5206\u6790 \u9010\u4E2A\u6392\u9664\u4EE5\u4E0B\u539F\u56E0\uFF1A \u5C4F\u5E55\u7684 X_PLATE\u3001Y_PLATE \u53C2\u6570\u662F\u56E0\u5C4F\u800C\u5F02\u7684\uFF0C\u9700\u8981\u786E\u8BA4\u8FD9\u4E24\u4E2A\u53C2\u6570\u662F\u5426\u51C6\u786E\u3002 \u662F\u5426 \u901A\u8FC7 calibrate \u7A0B\u5E8F \u5BF9\u5750\u6807\u8FDB\u884C\u4E86\u6821\u51C6\uFF0C\u6821\u51C6\u5C3D\u91CF\u70B9\u5728\u6821\u51C6\u5341\u5B57\u4EA4\u70B9\u3002 \u662F\u5426\u8BBE\u7F6E\u4E86\u538B\u611F\u8FC7\u6EE4\u53C2\u6570 AIC_RTP_MAX_PRESSURE \uFF0C\u5C1D\u8BD5\u8C03\u4F4E\u8FD9\u4E2A\u53C2\u6570\uFF0C\u786E\u8BA4\u8DF3\u70B9\u6548\u679C\u662F\u5426\u6709\u6539\u5584\u3002...","topics/sdk/rtp/rtp_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \u786C\u4EF6 \u5E26\u89E6\u5C4F\u529F\u80FD\u7684\u5C4F\u5E55 \u5E26 RTP \u63A5\u53E3\u7684\u5F00\u53D1\u677F USB Type-C \u6570\u636E\u7EBF\uFF0C\u7528\u4E8E\u7ED9\u5F00\u53D1\u677F\u4F9B\u7535\u3001\u70E7\u5199 USB \u8F6C\u4E32\u53E3\u7684\u7EBF\uFF0C\u7528\u4E8E\u8FDE\u63A5\u5F00\u53D1\u677F\u7684\u8C03\u8BD5\u4E32\u53E3 \u624B\u5199\u7B14\uFF0C\u53EF\u4EE5\u66F4\u65B9\u4FBF\u7CBE\u51C6\u7684\u70B9\u51FB RTP \u8F6F\u4EF6 PC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 AiBurn \u70E7\u5199\u5DE5\u5177 tslib \u5F00\u6E90\u5E93\uFF0C\u7528\u4E8E\u7BA1\u7406 input \u8BBE\u5907\u548C\u4E8B\u4EF6\u3001\u4EE5\u53CA\u5750\u6807\u6821\u51C6\uFF0Cluban \u4E2D\u5DF2\u96C6\u6210 ts_draw...","topics/sdk/rtp/rtp_user_guide.html@@@RTP \u4F7F\u7528\u6307\u5357@@@\u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E ADC Analog Digital Converter \u6A21\u62DF\u6570\u5B57\u8F6C\u6362\u5668 ADCIM ADC Interface Management ADC \u63A5\u53E3\u7BA1\u7406\u6A21\u5757 RTP Resistance Touch Panel \u7535\u963B\u89E6\u6478\u5C4F \u6A21\u5757\u67B6\u6784 RTP \u9700\u8981\u4F9D\u8D56 ADCIM \u6A21\u5757\uFF08\u7EDF\u4E00\u7BA1\u7406\u786C\u4EF6\u901A\u8DEF\u548C\u5904\u7406\u4FE1\u53F7\u6821\u51C6\uFF09\uFF0C\u5176\u5173\u7CFB\u5982\u56FE\uFF1A \u56FE 1 . RTP \u548C ADCIM...","topics/sdk/rtp/rtp_working_logic.html@@@\u5DE5\u4F5C\u539F\u7406@@@\u786C\u4EF6\u7ED3\u6784\u539F\u7406 \u56FE 1 . RTP \u786C\u4EF6\u7ED3\u6784\u4FA7\u89C6\u56FE \u5982\u56FE\u6240\u793A\uFF0CRTP \u786C\u4EF6\u5206\u4E3A\u4E0B\u5217\u591A\u5C42\u7ED3\u6784\uFF1A \u8868\u9762\u786C\u56FE\u5C42\uFF1A\u624B\u6307\u89E6\u6478\u7684\u8868\u9762\u662F\u4E00\u4E2A\u786C\u6D82\u5C42\uFF0C\u7528\u4EE5\u4FDD\u62A4\u4E0B\u9762\u7684 PET \u5C42\u3002 PET \u5C42\uFF1A\u5F88\u8584\u3001\u6709\u5F39\u6027\uFF0C\u5F53\u8868\u9762\u88AB\u89E6\u6478\u65F6\u5B83\u4F1A\u5411\u4E0B\u5F2F\u66F2\uFF0C\u5E76\u4F7F\u5F97\u4E0B\u9762\u7684\u4E24\u5C42 ITO \u6D82\u5C42\u80FD\u591F\u76F8\u4E92\u63A5\u89E6\u5E76\u5728\u8BE5\u70B9\u8FDE\u901A\u7535\u8DEF\u3002 ITO \u9676\u74F7\u5C42\uFF1A\u4E24\u4E2A ITO \u5C42\u4E4B\u95F4\u662F\u7EA6\u5343\u5206\u4E4B\u4E00\u82F1\u5BF8\u539A\u7684\u4E00\u4E9B\u9694\u79BB\u652F\u70B9\u4F7F\u4E24\u5C42\u5206\u5F00\u3002...","topics/sdk/sdmc/sdmc-config.html@@@SDMC \u914D\u7F6E@@@\u672C\u8282\u4ECB\u7ECD\u4E86 SDMC \u7684\u53C2\u6570\u914D\u7F6E\u6D41\u7A0B\u3002 \u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers <*> MMC/SD/SDIO card support <*> MMC block device driver <*>...","topics/sdk/sdmc/sdmc-data_structure_design.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@SDMC \u6570\u636E\u7C7B\u578B\u53CA\u5176\u7ED3\u6784\u63CF\u8FF0\u5982\u4E0B\uFF1A enum artinchip_mmc_state \uFF1A\u5B9A\u4E49\u4E86 SDMC \u63A7\u5236\u5668\u7684\u72B6\u6001\u3002 enum artinchip_mmc_state { STATE_IDLE = 0 , STATE_SENDING_CMD, STATE_SENDING_DATA, STATE_DATA_BUSY, STATE_SENDING_STOP, STATE_DATA_ERROR...","topics/sdk/sdmc/sdmc-debug_guide.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF0C\u6253\u5F00 SDMC \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A Linux Kernel hacking ArtInChip Debug [*] SD&MMC Host Controller driver debug \u6253\u5F00...","topics/sdk/sdmc/sdmc-design-guide.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E drivers/mmc/host/ \uFF1A artinchip-mmc.c \uFF0CSDMC \u9A71\u52A8\u5B9E\u73B0 artinchip-mmc.h \uFF0CSDMC \u7684\u5BC4\u5B58\u5668\u3001\u6570\u636E\u7ED3\u6784\u5B9A\u4E49 Linux \u4E2D\u63D0\u4F9B\u4E86 MMC \u5B50\u7CFB\u7EDF\uFF0C\u8BE5\u5B50\u7CFB\u7EDF\u8D1F\u8D23\u62BD\u8C61\u4E00\u4E2A\u5757\u8BBE\u5907\u63D0\u4F9B\u7ED9\u901A\u7528\u5757\u5C42\u4F7F\u7528\uFF0C\u4ECE\u6574\u4E2A\u8F6F\u4EF6\u7684\u89D2\u5EA6\u6765\u770B\uFF0C\u67B6\u6784\u5982\u4E0B\uFF1A \u56FE 1 . Linux MMC \u5B50\u7CFB\u7EDF\u67B6\u6784\u56FE \u5176\u4E2D\uFF1A \u5BF9\u7528\u6237\u800C\u8A00\uFF0CMMC card...","topics/sdk/sdmc/sdmc-faq.html@@@\u5E38\u89C1\u95EE\u9898@@@MMC \u521D\u59CB\u5316\u5931\u8D25 \u73B0\u8C61 Linux \u542F\u52A8\u540E\uFF0C\u5728\u626B\u63CF mmc0 \u8BBE\u5907\u7684\u65F6\u5019\u62A5\u9519 whilst initialising MMC card \uFF0Clog \u5982\u4E0B mmc_host mmc1: Bus speed (slot 0 )= 204000000 Hz (slot req 300000 Hz, actual 300000 HZ div= 680 ) mmc_host mmc0: Bus speed...","topics/sdk/sdmc/sdmc-init-procedures.html@@@\u521D\u59CB\u5316\u6D41\u7A0B@@@MMC \u5B50\u7CFB\u7EDF\u7684\u521D\u59CB\u5316\u5305\u62EC MMC \u5757\u8BBE\u5907\u3001MMC \u5B50\u7CFB\u7EDF\u3001MMC \u63A7\u5236\u5668\u9A71\u52A8\u3001card \u8BBE\u5907\u7B49\u51E0\u6761\u7EBF\uFF0C\u521D\u59CB\u5316\u987A\u5E8F\uFF1A MMC \u6838\u5FC3\u521D\u59CB\u5316 MC \u63A7\u5236\u5668\u9A71\u52A8\u521D\u59CB\u5316\u5B8C\u6210\u540E\u624D\u4F1A\u5BF9 card \u8BBE\u5907\u8FDB\u884C\u521D\u59CB\u5316 MMC \u5757\u8BBE\u5907\u521D\u59CB\u5316\u6CA1\u6709\u4E25\u683C\u7684\u5148\u540E\u987A\u5E8F MMC \u5757\u8BBE\u5907\u9A71\u52A8\u521D\u59CB\u5316 MMC \u5728\u4F7F\u7528\u4E2D\uFF0C\u4F1A\u5C06\u5176\u62BD\u8C61\u6210\u4E00\u4E2A\u5757\u8BBE\u5907\u6302\u8F7D\u5230\u901A\u7528\u5757\u5C42\u5F53\u4E2D\uFF0C\u901A\u8FC7 module_init(mmc_blk_init)...","topics/sdk/sdmc/sdmc-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u4EE5\u4E0B\u63A5\u53E3\u7686\u4E3A MMC \u5B50\u7CFB\u7EDF\u6240\u9700\u8981\u7684\u6807\u51C6\u63A5\u53E3\uFF0C\u901A\u8FC7 mmc_host_ops \u6CE8\u518C\u5230 MMC \u5B50\u7CFB\u7EDF\u3002 static const struct mmc_host_ops artinchip_mmc_ops = { .request = artinchip_mmc_request, .pre_req = artinchip_mmc_pre_req, .post_req =...","topics/sdk/sdmc/sdmc-interrupt-processing-procedures.html@@@\u4E2D\u65AD\u5904\u7406\u6D41\u7A0B@@@\u5728\u89E6\u53D1\u4E2D\u65AD\u540E\uFF0C\u9700\u8981\u6839\u636E\u76EE\u524D\u7684\u4E2D\u65AD\u72B6\u6001\u8FDB\u884C\u5904\u7406\uFF0C\u5176\u4E2D\u4E3B\u8981\u4E3A\u9519\u8BEF\u5904\u7406\u548C\u4F20\u8F93\u5904\u7406\uFF0C\u8FD9\u4E9B\u5904\u7406\u4E3B\u8981\u5728 tasklet \u4E2D\uFF0C\u5E76\u4E14\u57FA\u4E8E\u4E00\u4E9B\u72B6\u6001\u53D8\u91CF\u6765\u63A7\u5236\u5904\u7406\u7684\u6D41\u7A0B\u3002 \u72B6\u6001\u53D8\u91CF\u3002\u5728\u6D41\u7A0B\u7684\u63A7\u5236\u4E0A\uFF0C\u4E3B\u8981\u901A\u8FC7\u51E0\u4E2A\u72B6\u6001\u53D8\u91CF\u6765\u63A7\u5236\uFF1A host-> state\uFF1A\u8868\u793A\u5F53\u524D\u7684\u64CD\u4F5C\u72B6\u6001\uFF0C\u4F8B\u5982\u53D1\u9001\u6570\u636E\uFF0C\u53D1\u9001 CMD \u7B49\u7B49 host->pending_events\uFF1A\u5F53\u524D\u4E2D\u65AD\u53D1\u751F\u7684\u72B6\u6001...","topics/sdk/sdmc/sdmc-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@...","topics/sdk/sdmc/sdmc-request-processing-procedures.html@@@\u8BF7\u6C42\u5904\u7406\u6D41\u7A0B@@@\u5BF9\u4E8E\u5E94\u7528\u7A0B\u5E8F\uFF0C\u901A\u8FC7\u8BFB\u5199\u7684\u63A5\u53E3\u8BBF\u95EE\u6587\u4EF6\u7CFB\u7EDF\uFF0C\u6587\u4EF6\u7CFB\u7EDF\u8BBF\u95EE\u5757\u8BBE\u5907\uFF0CMMC \u8BBE\u5907\u5728\u5185\u6838\u4E2D\u88AB\u6CE8\u518C\u4E3A\u4E00\u4E2A\u5757\u8BBE\u5907\uFF0C\u5F53\u8BFB\u5199\u7684\u64CD\u4F5C\u4F20\u5165\u5230 MMC \u5757\u8BBE\u5907\u540E\uFF0C\u901A\u8FC7 MMC \u5B50\u7CFB\u7EDF\u5904\u7406\u76F8\u5173\u64CD\u4F5C\uFF0C\u5BF9\u4E8E MMC \u5B50\u7CFB\u7EDF\u5176\u5904\u7406\u7686\u4EE5\u8BF7\u6C42\u7684\u65B9\u5F0F\u5B9E\u73B0\u3002 \u5757\u5C42\u4EE5\u4E0A\u7CFB\u7EDF\u8BFB\u5199\u8C03\u7528\u6D41\u7A0B \u5728\u5757\u5C42\u4EE5\u4E0A\uFF0C\u901A\u5E38\u662F\u7528\u6237\u7A7A\u95F4\u8C03\u7528\u8BFB\u5199\u63A5\u53E3\u8BBF\u95EE MMC \u8BBE\u5907\uFF0C\u4E3B\u8981\u6D41\u7A0B\u5982\u4E0B\uFF1A \u56FE 1 . \u901A\u7528\u5757\u8BBE\u5907\u7684\u8BBF\u95EE\u6D41\u7A0B \u5728\u7528\u6237\u7A7A\u95F4\uFF0C\u5E94\u7528\u7A0B\u5E8F\u8C03\u7528...","topics/sdk/sdmc/sdmc-test-guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u73AF\u5883 \u51C6\u5907 SDMC \u6D4B\u8BD5\u6240\u9700\u7684\u6D4B\u8BD5\u73AF\u5883\uFF0C\u5982\u4E0B\u6240\u793A\uFF1A \u786C\u4EF6 \uFF1A \u5F00\u53D1\u677F\uFF0C\u6216\u8005 FPGA \u677F\u5B50 \u677F\u5B50\u4E0A\u5FC5\u987B\u8981\u63A5\u6709 eMMC/SDCard \u8F6F\u4EF6 \uFF1A PC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 Linux \u5185\u6838\u539F\u751F\u7684 test \u5DE5\u5177\uFF0C\u7528\u4E8E Host \u9A71\u52A8\u7684\u529F\u80FD\u6D4B\u8BD5 Luban \u81EA\u5E26\u7684 iozone \u5DE5\u5177\uFF0C\u7528\u4E8E\u5757\u8BBE\u5907\u7684\u6027\u80FD\u6D4B\u8BD5 \u6309\u7167\u4E0B\u5217\u6B65\u9AA4\u6253\u5F00\u5BF9\u5E94\u7684\u6D4B\u8BD5\u5DE5\u5177\uFF1A mmc_test \u5728...","topics/sdk/sdmc/sdmc-user-guide.html@@@SDMC \u4F7F\u7528\u6307\u5357@@@\u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E SD Secure Digital Flash \u5B58\u50A8\u5361\u7684\u4E00\u79CD\u6807\u51C6\uFF0C\u5373\u5E38\u89C1\u7684 SD \u5361 SDCard Secure Digital Memory Card \u5B89\u5168\u6570\u7801\u5361\uFF0C\u540C\u201CSD \u5361\u201D MMC Multi Media Card \u591A\u5A92\u4F53\u5361 eMMC Embedded Multi Media Card \u5185\u5D4C\uFF08\u5728\u677F\u5361\u4E0A\uFF09\u5F0F\u591A\u5A92\u4F53\u5361 SDIO Secure...","topics/sdk/secure/burn-eFuse-with-upgcmd.html@@@\u70E7\u5199 eFuse@@@U-Boot \u4E2D\u70E7\u5F55 \u5728 U-Boot \u4E2D\u914D\u7F6E\u548C\u4F7F\u7528 eFuse \u9A71\u52A8\uFF0C\u53EF\u4EE5\u6309\u7167\u4EE5\u4E0B\u6B65\u9AA4\u8FDB\u884C\uFF1A \u4F7F\u80FD eFuse \u9A71\u52A8 \u786E\u4FDD\u5728 U-Boot \u7684\u914D\u7F6E\u6587\u4EF6\u4E2D\u4F7F\u80FD SPI_ENC \u76F8\u5173\u7684 U-Boot \u9A71\u52A8\u3002\u5728 SDK \u6839\u76EE\u5F55\u4E2D\uFF0C\u6267\u884C make uboot-menuconfig \u547D\u4EE4\u8FDB\u5165\u914D\u7F6E\u83DC\u5355\uFF0C\u6309\u7167\u5982\u4E0B\u64CD\u4F5C\u8FDB\u884C\u9009\u62E9\uFF1A make uboot-menuconfig Device Drivers --->...","topics/sdk/secure/chapter-secure.html@@@\u5B89\u5168\u65B9\u6848@@@...","topics/sdk/secure/firmware_encryption_for_luban.html@@@Linux \u56FA\u4EF6\u52A0\u5BC6\u4F7F\u7528\u8BF4\u660E@@@U-Boot \u914D\u7F6E \u8FDB\u5165 SDK \u9876\u5C42\u76EE\u5F55\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\u8FDB\u5165 U-boot \u914D\u7F6E\u754C\u9762\uFF1A make uboot-menuconfig \u5728 U-Boot \u7684\u914D\u7F6E\u754C\u9762\u4E2D\uFF0C\u4F7F\u80FD Cipher \u76F8\u5173\u7684 U-Boot \u9A71\u52A8\u914D\u7F6E\uFF1A Boot options ---> Boot images ---> [*] Enable ciphering data in a FIT uImages [*] Enable...","topics/sdk/secure/hw_authorization.html@@@\u786C\u4EF6\u6388\u6743\u8BA4\u8BC1@@@\u786C\u4EF6\u6388\u6743\u8BA4\u8BC1\u662F\u4E00\u79CD\u57FA\u4E8E\u8EAB\u4EFD\u8BA4\u8BC1\u539F\u7406\u4EE5\u53CA\u786C\u4EF6\u5B89\u5168\u5BC6\u94A5\u5B9E\u73B0\u7684\u5B89\u5168\u529F\u80FD\uFF0C\u53EF\u4EE5\u8BA9\u8F6F\u4EF6\u6216\u8005\u7B2C\u4E09\u65B9\u5408\u4F5C\u4F19\u4F34\u5BF9\u82AF\u7247\u7684\u5408\u6CD5\u6027\u8FDB\u884C\u8BA4\u8BC1\u3002 \u8EAB\u4EFD\u8BA4\u8BC1\u539F\u7406 \u4E0B\u56FE\u5C55\u793A\u4E86 RSA \u7684\u8BA4\u8BC1\u6D41\u7A0B\uFF1A \u82AF\u7247\u62E5\u6709\u4E00\u4E2A RSA \u79C1\u94A5\uFF1ARSA-PRIV \u8F6F\u4EF6\u62E5\u6709\u5BF9\u5E94\u7684 RSA \u516C\u94A5\uFF1ARSA-PUB \u8F6F\u4EF6\u6307\u5B9A\u4E00\u7B14\u6570\u636E\uFF1ANonce \u82AF\u7247\u901A\u8FC7\u79C1\u94A5\uFF1ARSA-PRIV \u5BF9 Nonce \u8FDB\u884C\u52A0\u5BC6\uFF0C\u5E76\u8FD4\u56DE\u52A0\u5BC6\u7ED3\u679C\u7ED9\u8F6F\u4EF6 \u8F6F\u4EF6\u901A\u8FC7\u516C\u94A5\uFF1ARSA-PUB...","topics/sdk/secure/spienc_function_d12x.html@@@\u9632\u6284\u677F-SPIENC-D12x@@@\u5E94\u7528\u573A\u666F \u672C\u65B9\u6848\u9488\u5BF9\u4E0B\u5217\u4F7F\u7528\u573A\u666F\uFF1A \u65B9\u6848\u5546\u63D0\u4F9B\u4E3B\u63A7\u82AF\u7247\u548C\u5F00\u53D1\u597D\u7684\u56FA\u4EF6\u7ED9\u7B2C\u4E09\u65B9\u751F\u4EA7\u5546 \u751F\u4EA7, \u65B9\u6848\u5546\u5BF9\u81EA\u5DF1\u7684\u56FA\u4EF6\u8FDB\u884C\u4FDD\u62A4 \u65B9\u6848\u5546\u5F00\u53D1\u4E86\u5305\u542B\u67D0\u4E00\u529F\u80FD\u7684\u56FA\u4EF6 \u751F\u4EA7\u5546\u4E0D\u8FDB\u884C\u5F00\u53D1\uFF0C\u800C\u4F7F\u7528\u65B9\u6848\u5546\u63D0\u4F9B\u7684\u56FA\u4EF6 \u65B9\u6848\u5546\u4E3A\u4E86\u4FDD\u62A4\u81EA\u5DF1\u7684\u56FA\u4EF6\uFF0C\u4F1A\u8981\u6C42\u81EA\u5DF1\u7684\u56FA\u4EF6\u53EA\u80FD\u5728\u65B9\u6848\u5546\u6388\u6743\u7684\u4E3B\u63A7\u82AF\u7247\u4E0A\u8FD0\u884C \u4ED6\u4EBA\u4E0D\u80FD\u901A\u8FC7\u62F7\u8D1D SPI NOR \u4E0A\u7684\u56FA\u4EF6\u5728\u4E0D\u7ECF \u65B9\u6848\u5546 \u6388\u6743\u7684\u4E3B\u63A7\u82AF\u7247\u4E0A\u8FD0\u884C \u65B9\u6848\u4ECB\u7ECD \u672C\u65B9\u6848\u901A\u8FC7\u4F7F\u7528 AIC \u4E3B\u63A7\u7684...","topics/sdk/spi/spi-data_struct.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@enum spi_mode_type { SINGLE_HALF_DUPLEX_RX, SINGLE_HALF_DUPLEX_TX, SINGLE_FULL_DUPLEX_RX_TX, DUAL_HALF_DUPLEX_RX, DUAL_HALF_DUPLEX_TX, QUAD_HALF_DUPLEX_RX, QUAD_HALF_DUPLEX_TX, MODE_TYPE_NULL, }...","topics/sdk/spi/spi-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B aic_spi_probe(); |-> irq = platform_get_irq(pdev, 0 ); |-> ctlr = spi_alloc_master(&pdev->dev, sizeof ( struct aic_spi)); |-> platform_set_drvdata(pdev, ctlr); |-> aicspi->dma_rx =...","topics/sdk/spi/spi_config.html@@@SPI \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u4F7F\u80FD SPI \u76F8\u5173\u7684\u5185\u6838\u9A71\u52A8\uFF0C\u53EF\u5728\u901A\u8FC7\u4E0B\u5217\u547D\u4EE4\u8FDB\u884C\u914D\u7F6E\uFF08\u5728 SDK \u9876\u5C42\u76EE\u5F55\u6267\u884C\uFF09: \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u7684\u914D\u7F6E\u754C\u9762\u4E2D\uFF0C\u8FDB\u884C\u4E0B\u5217\u7684\u9009\u62E9\uFF1A Device Drivers ---> [*] SPI support ---> <*> ArtInChip...","topics/sdk/spi/spi_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u4F7F\u80FD SPI \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u8FDB\u5165\u914D\u7F6E\u754C\u9762\uFF1A Linux Kernel hacking ArtInChip Debug [*] SPI driver debug \u6253\u5F00 DEBUG \u9009\u9879\u540E\uFF1A \u9A71\u52A8\u4EE5 -O0 \u7F16\u8BD1\u3002...","topics/sdk/spi/spi_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u8868 1 . \u6E90\u7801\u8BF4\u660E \u76F8\u5173\u6A21\u5757 \u6E90\u7801\u8DEF\u5F84 SPI subsystem source/linux-5.10/drivers/spi/ Driver source/linux-5.10/drivers/spi/ \u6A21\u5757\u67B6\u6784 \u56FE 1 . \u5185\u6838 SPI \u6846\u56FE \u7531\u4E8E\u4F7F\u7528 SPI \u7684\u5916\u8BBE\u8F83\u591A\uFF0C\u5185\u6838\u4E2D\u901A\u8FC7 SPI \u5B50\u7CFB\u7EDF\u6765\u652F\u6301\u5404\u79CD SPI \u5916\u8BBE\uFF0C\u6574\u4F53\u67B6\u6784\u5982\u4E0A\u56FE\u6240\u793A\uFF0C\u5305\u62EC\uFF1A ArtInChip SPI \u9A71\u52A8 SPI...","topics/sdk/spi/spi_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@\u5982\u4F55\u6DFB\u52A0\u65B0\u7684 SPI NAND \u8BBE\u5907 \u9A71\u52A8\u5C42\u6B21\u5173\u7CFB SPI NAND \u5C5E\u4E8E SPI \u7684\u4ECE\u8BBE\u5907\uFF0C\u5728\u5185\u6838\u4E2D\u76F8\u5173\u9A71\u52A8\u901A\u8FC7 SPI MEM \u5BF9\u63A5\u5230 SPI \u5B50\u7CFB\u7EDF\uFF0C\u5982 \u5185\u6838 SPI \u6846\u56FE \u6240\u793A\u3002 \u5728 SPI \u63A7\u5236\u5668\u521D\u59CB\u5316\u65F6\uFF0CSPI \u9A71\u52A8\u4F1A\u68C0\u67E5\u8BE5\u63A7\u5236\u5668\u4E0B\u662F\u5426\u6709\u6302\u8F7D\u7684 SPI NAND\uFF0C\u6709\u5219\u6DFB\u52A0\u5230 SPI BUS \u4E2D\u3002 aic_spi_probe(dev); |->...","topics/sdk/spi/spi_interface.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_spi_setup \u51FD\u6570\u539F\u578B int aic_spi_setup(struct spi_device *spi) \u529F\u80FD\u8BF4\u660E SPI \u8BBE\u5907\u7684\u4F20\u8F93\u4F4D\u5BBD\u3001\u6A21\u5F0F\u7684\u68C0\u67E5\u548C\u914D\u7F6E \u53C2\u6570\u5B9A\u4E49 struct spi_device *spiSPI \u8BBE\u5907\u6307\u9488 \u8FD4\u56DE\u503C 0: \u6210\u529F\u5176\u4ED6: \u5931\u8D25 \u6CE8\u610F\u4E8B\u9879 - \u8868 2 . aic_spi_set_cs \u51FD\u6570\u539F\u578B void...","topics/sdk/spi/spi_user_guide.html@@@SPI \u4F7F\u7528\u6307\u5357@@@Serial Peripheral Interface (SPI) \u662F\u4E00\u79CD\u9AD8\u901F\u3001\u5168\u53CC\u5DE5\u7684\u540C\u6B65\u901A\u4FE1\u603B\u7EBF\u3002\u7531\u4E8E\u5176\u5B9E\u73B0\u6BD4\u8F83\u7B80\u5355\uFF0C\u6CA1\u6709\u4E13\u5229\u9650\u5236\u7B49\uFF0C\u56E0\u6B64\u5728\u5404\u79CD\u5668\u4EF6\u4E2D\u5F97\u5230\u5E7F\u6CDB\u7684\u5E94\u7528\u3002 SPI \u603B\u7EBF\u662F\u4E00\u79CD\u884C\u4E1A\u4E8B\u5B9E\u6807\u51C6\uFF0C\u5E76\u6CA1\u6709\u7EDF\u4E00\u7684\u6807\u51C6\u5316\u7EC4\u7EC7\uFF0C\u4E0D\u540C\u5382\u5546\u5728\u5B9E\u9645\u5E94\u7528\u4E2D\u6F14\u5316\u51FA\u591A\u79CD\u5DE5\u4F5C\u6A21\u5F0F\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E SPI Serial Peripheral Interface \u4E32\u884C\u5916\u8BBE\u63A5\u53E3 Dual...","topics/sdk/spienc/spi-enc-architecture.html@@@\u6A21\u5757\u67B6\u6784@@@\u6587\u4EF6\u7CFB\u7EDF\u6216\u8005\u5E94\u7528\u7A0B\u5E8F\u901A\u8FC7 MTD \u5C42\u8BBF\u95EE SPI NOR / SPI NAND \u8BBE\u5907\u7684\u6570\u636E\uFF0CSPI NOR / SPI NAND \u9A71\u52A8\u5728\u901A\u8FC7 SPI \u603B\u7EBF\u4F20\u8F93\u6570\u636E\u3002 \u5728 SPI NOR / SPI NAND \u9A71\u52A8\u901A\u8FC7 SPI \u603B\u7EBF\u8BBF\u95EE\u76F8\u5173\u6570\u636E\u65F6\uFF0C\u5176\u5B9E\u9700\u8981\u53D1\u9001\u4E00\u7CFB\u5217\u7684\u547D\u4EE4\u6765\u8FDB\u884C\u6570\u636E\u7684\u8BFB\u5199\u3002 \u8FD9\u4E2A\u8FC7\u7A0B\u4E2D\uFF0C\u547D\u4EE4\u901A\u4FE1\u7684\u6570\u636E\uFF0C\u5305\u62EC\u4E00\u4E9B\u8BFB\u5199 SPI NOR / SPI NAND \u7684\u5BC4\u5B58\u5668\u6570\u636E\u90FD\u4E0D\u80FD\u52A0\u5BC6\uFF0C...","topics/sdk/spienc/spi-enc-configuration.html@@@SPI ENC \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u4F7F\u80FD SPI_ENC \u76F8\u5173\u7684\u5185\u6838\u9A71\u52A8\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u7684\u914D\u7F6E\u754C\u9762\u4E2D\uFF0C\u8FDB\u884C\u4E0B\u5217\u7684\u9009\u62E9\uFF1A Cryptographic API ---> [*] Hardware crypto devices ---> [*] Support for...","topics/sdk/spienc/spi-enc-data_structure_design.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@\u8BBE\u5907\u6570\u636E\u7ED3\u6784\u3002 struct aic_spienc_drvdata { struct attribute_group attrs; struct device *dev; void __iomem *base; struct clk *clk; struct skcipher_request *req; u32 tweak; /* Tweak value for hardware to...","topics/sdk/spienc/spi-enc-debug_guide.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u901A\u8FC7\u5185\u6838\u914D\u7F6E\u4F7F\u80FD SPI_ENC \u6A21\u5757\u7684 DEBUG \u9009\u9879\uFF1A \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u7684\u914D\u7F6E\u754C\u9762\uFF0C\u52FE\u9009\u4E0B\u5217\u9009\u9879\uFF1A Linux Kernel hacking Artinchip Debug [*] SPI ENC driver debug \u6253\u5F00 DEBUG...","topics/sdk/spienc/spi-enc-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u8868 1 . \u6E90\u7801\u8BF4\u660E \u76F8\u5173\u6A21\u5757 \u6E90\u7801\u8DEF\u5F84 Crypto subsystem source/linux-5.10/crypto/ Driver source/linux-5.10/drivers/crypto/artinchip/spienc/...","topics/sdk/spienc/spi-enc-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_spienc_alg_init \u51FD\u6570\u539F\u578B int aic_spienc_alg_init(struct crypto_skcipher *tfm) \u529F\u80FD\u8BF4\u660E \u5BF9\u79F0\u5BC6\u94A5\u7B97\u6CD5\u7684\u521D\u59CB\u5316\u51FD\u6570 \u53C2\u6570\u5B9A\u4E49 struct crypto_skcipher *tfm \u7B97\u6CD5\u5B9E\u4F8B\u6307\u9488 \u8FD4\u56DE\u503C 0: \u6210\u529F \u5176\u4ED6: \u5931\u8D25 \u6CE8\u610F\u4E8B\u9879 - \u8868 2 . aic_spienc_probe \u51FD\u6570\u539F\u578B int...","topics/sdk/spienc/spi-enc-key-design-intro.html@@@\u8BBE\u8BA1\u8981\u70B9@@@\u5728\u8BBE\u8BA1\u5B9E\u73B0 SPI_ENC \u7684\u9A71\u52A8\u65F6\uFF0C\u4E3B\u8981\u8003\u8651\u4E86 SPI_ENC \u7684\u672C\u8EAB\u7279\u70B9\uFF0C\u4EE5\u53CA\u4E0E SPI NOR / SPI NAND \u9A71\u52A8\u7684\u7ED3\u5408\u3002 \u878D\u5165\u5185\u6838\u52A0\u5BC6\u5B50\u7CFB\u7EDF \u5185\u6838\u52A0\u5BC6\u5B50\u7CFB\u7EDF\u63D0\u4F9B\u4E86\u4E00\u4E2A\u6846\u67B6\uFF0C\u901A\u8FC7\u8BE5\u6846\u67B6\u63D0\u4F9B\u4E86\u4E0D\u540C\u7B97\u6CD5\u7684\u5BF9\u63A5\u65B9\u6CD5\uFF0C \u5E38\u89C1\u7684\u7B97\u6CD5\u4EE5\u53CA\u5BF9\u5E94\u7684\u786C\u4EF6\u52A0\u901F\u5B9E\u73B0\u90FD\u53EF\u4EE5\u901A\u8FC7\u8BE5\u6846\u67B6\u63D0\u4F9B\u7ED9\u4F7F\u7528\u8005\u3002 SPI_ENC \u786C\u4EF6\u6A21\u5757\u5B9E\u73B0\u4E86 AES-128-CTR \u7B97\u6CD5\uFF0C\u4F46\u662F\u7531\u4E8E COUNTER...","topics/sdk/spienc/spi-enc-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316 aic_spienc_probe(); |-> drvdata->base = devm_platform_ioremap_resource(pdev, 0 ); |-> irq = platform_get_irq(pdev, 0 ); |-> devm_request_threaded_irq(dev, irq, aic_spienc_irq_handler...","topics/sdk/spienc/spi-enc-terms.html@@@\u672F\u8BED\u5B9A\u4E49@@@\u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E AES Advanced Encryption Standard \u4E00\u79CD\u5BF9\u79F0\u5206\u7EC4\u5BC6\u94A5\u7B97\u6CD5 ECB Electronic Code Book \u7535\u5B50\u5BC6\u7801\u672C\u6A21\u5F0F CTR Counter \u8BA1\u6570\u5668\u6A21\u5F0F SPI Serial Peripheral Interface \u4E32\u884C\u5916\u8BBE\u63A5\u53E3 BROM Boot ROM \u56FA\u5316\u5728\u82AF\u7247\u4E2D\u7684\u542F\u52A8\u7A0B\u5E8F...","topics/sdk/spienc/spi-enc-test_guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u6D4B\u8BD5\u7684\u914D\u7F6E \u9700\u8981\u6309\u7167 \u8C03\u8BD5\u6307\u5357 \u4F7F\u80FD\u8C03\u8BD5\u5F00\u5173 \u7F16\u8BD1 mtd-util \u4E2D\u7684 Flash \u5DE5\u5177 mtd-util \u7684\u4F7F\u80FD\u65B9\u6CD5\uFF1A make menuconfig \u7136\u540E\u52FE\u9009\uFF1A Third-party packages ---> [*] mtd, jffs2 and ubi/ubifs tools ---> [*] mtd_debug \u6D4B\u8BD5\u7684\u547D\u4EE4 \u67E5\u770B\u5206\u533A\u7684\u4FE1\u606F\uFF1A mtd_debug info...","topics/sdk/spienc/spi-enc-user-guide.html@@@SPI ENC@@@Serial Peripheral Interface Encryption (SPI ENC) \u6A21\u5757\u7528\u4E8E\u5BF9 SPI \u603B\u7EBF\u4E0A\u7684\u6570\u636E\u8FDB\u884C\u5728\u7EBF\u52A0\u5BC6\u548C\u89E3\u5BC6\uFF0C\u5B9E\u73B0\u5BF9 CPU \u900F\u660E\u7684 SPI \u6570\u636E\u52A0\u5BC6\u5B58\u50A8\u3002\u5373 CPU \u5BF9 SPI \u5B58\u50A8\u8BBE\u5907\u7684\u8BFB\u5199\u6570\u636E\u662F\u660E\u6587\uFF0C\u4F46\u5B58\u50A8\u5728 SPI \u8BBE\u5907\u4E0A\u7684\u6570\u636E\u662F\u5BC6\u6587\uFF0C\u6570\u636E\u7684\u52A0\u5BC6\u548C\u89E3\u5BC6\u64CD\u4F5C\u5728\u6570\u636E\u4F20\u8F93\u8FC7\u7A0B\u4E2D\u5B8C\u6210\u3002 SPI ENC \u7528\u4E8E SPI \u5B58\u50A8\u8BBE\u5907\uFF0C\u5373 SPI NOR/ SPI...","topics/sdk/spinand/spi-nand-transplant-guide.html@@@SPI NAND \u79FB\u690D@@@SPI NAND \u79FB\u690D\u5DE5\u4F5C\u9700\u8981 SoC \u7AEF SPI \u6A21\u5757\u7684\u9A71\u52A8\u80FD\u529B\u4EE5\u53CA\u5BF9 SPI NAND \u6A21\u5757\u7684\u6B63\u786E\u914D\u7F6E\u3002 \u672C\u8282\u4EE5 Fudan Micro \u7684 FM25S01A \u4EE5\u53CA Foresee \u7684 F35SQA002G \u4E3A\u4F8B\uFF0C\u8BE6\u7EC6\u8BF4\u660E SPI NAND \u5668\u4EF6\u7684\u79FB\u690D\u6D41\u7A0B\u3002SPI NAND \u5728 U-Boot \u548C Kernel \u4E2D\u7684\u5B9E\u73B0\u903B\u8F91\u7C7B\u4F3C\uFF0C\u6587\u4EF6\u8DEF\u5F84\u548C\u5185\u5BB9\u57FA\u672C\u4E00\u81F4\uFF0C\u672C\u6587\u4EE5 Kernel...","topics/sdk/spinand/spi-nand-user-guide.html@@@SPI NAND \u4F7F\u7528\u6307\u5357@@@\u672C\u6587\u6863\u4ECB\u7ECD\u5982\u4F55\u4F7F\u7528 SPI NAND \u6A21\u5757\uFF0C\u8BE5\u6A21\u5757\u5B9E\u73B0\u4E86\u5BF9 SPI NAND \u8BBE\u5907\u7684\u9A71\u52A8\uFF0C\u5411\u4E0A\u63D0\u4F9B SPI NAND \u64CD\u4F5C\u7684 API\uFF0C\u5411\u4E0B\u5BF9\u63A5 QSPI \u603B\u7EBF\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E SPI Serial Peripheral Interface \u6807\u51C6\u4E32\u884C\u5916\u8BBE\u63A5\u53E3 DUAL SPI Dual Serial Peripheral Interface 2 \u7EBF data...","topics/sdk/spinand/spi-nand_config.html@@@SPI NAND \u914D\u7F6E@@@\u914D\u7F6E\u9A71\u52A8\u5C42\u6B21\u5173\u7CFB SPI NAND \u5C5E\u4E8E SPI \u7684\u4ECE\u8BBE\u5907\uFF0C\u5728\u5185\u6838\u4E2D\u76F8\u5173\u9A71\u52A8\u901A\u8FC7 SPI MEM \u5BF9\u63A5\u5230 SPI \u5B50\u7CFB\u7EDF\u3002 SPI \u63A7\u5236\u5668\u521D\u59CB\u5316 \u5728\u521D\u59CB\u5316\u8FC7\u7A0B\u4E2D\uFF0CSPI \u9A71\u52A8\u4F1A\u68C0\u67E5 SPI \u63A7\u5236\u5668\u4E0B\u662F\u5426\u6709\u6302\u8F7D\u7684 SPI NAND \u8BBE\u5907\u3002\u5982\u6709\uFF0C\u5219\u5C06 SPI NAND \u8BBE\u5907\u6DFB\u52A0\u5230 SPI BUS \u4E2D\uFF1A aic_spi_probe(dev); |->...","topics/sdk/spinand/spi-nand_table.html@@@\u914D\u7F6E xxx_spinand_table@@@xxx_spinand_table \u6570\u636E\u7ED3\u6784\u4E3A\u7B2C\u4E8C\u7EA7\u7D22\u5F15\uFF0C\u63CF\u8FF0\u5382\u5546\u7684\u7CFB\u5217\u5668\u4EF6\u4FE1\u606F\uFF0C\u662F SPI NAND \u9A71\u52A8\u7684\u6838\u5FC3\uFF0C\u63CF\u8FF0\u4E86\u4E0B\u5217\u53C2\u6570\u4FE1\u606F\uFF1A static const struct spinand_info foresee_spinand_table[] = { SPINAND_INFO( "F35SQA002G"...","topics/sdk/spinor/spinor_config.html@@@SPI NOR \u914D\u7F6E@@@\u4FEE\u6539 DTS \u8981\u5728\u5B9E\u9645\u9879\u76EE\u4E2D\u4F7F\u7528 SPI NOR \u8BBE\u5907\uFF0C\u8FD8\u9700\u8981\u4FEE\u6539 DTS \u914D\u7F6E\uFF0C\u8BE6\u7EC6\u6D41\u7A0B\u5982\u4E0B\u6240\u793A\uFF1A \u5728 board.dts \u4E2D\u5177\u4F53\u7684 SPI \u63A7\u5236\u5668\u4E0B\u6DFB\u52A0 jedec,spi-nor \u8BBE\u5907\u3002 &spi0 { pinctrl-names = "default" ; pinctrl- 0 = <&spi0_pins_a>; status = "okay" ; spi-max-frequency =...","topics/sdk/spinor/spinor_linux_transplant.html@@@Linux \u79FB\u690D@@@SPI NOR \u9A71\u52A8 Linux \u548C U-Boot \u7684\u9A71\u52A8\u4E0D\u4E00\u6837\uFF0CLinux \u4E2D\u9A71\u52A8\u66F4\u590D\u6742\u4E00\u4E9B\uFF0C\u672C\u7AE0\u9610\u8FF0\u5982\u4F55\u5728 Linux \u4E2D\u8FDB\u884C SPI NOR \u5668\u4EF6\u7684\u79FB\u690D\u5DE5\u4F5C\uFF0C\u4EE5 Gigadevice \u7684 gd25q128 \u548C FudanMicro \u7684 FM25Q128 \u4E3A\u4F8B \u79FB\u690D\u4E00\u6B3E SPI NOR\uFF0C\u6700\u91CD\u8981\u7684\u662F JEDEC ID\uFF0C\u901A\u8FC7\u5728\u6570\u636E\u624B\u518C\u4E2D\u67E5\u627E 0x9F \u547D\u4EE4\u83B7\u5F97...","topics/sdk/spinor/spinor_uboot_transplant.html@@@U-Boot \u79FB\u690D@@@SPI NOR \u8981\u5DE5\u4F5C\u65E2\u9700\u8981 SoC \u7AEF SPI \u6A21\u5757\u7684\u9A71\u52A8\u80FD\u529B\uFF0C\u4E5F\u9700\u8981\u5BF9 SPI NOR \u6A21\u5757\u7684\u6B63\u786E\u914D\u7F6E\uFF0C\u672C\u7AE0\u9610\u8FF0\u5982\u4F55\u8FDB\u884C SPI NOR \u5668\u4EF6\u7684\u79FB\u690D\u5DE5\u4F5C\uFF0C\u4EE5 CFX \u7684 GM25Q128A \u548C FudanMicro \u7684 FM25Q128 \u4E3A\u4F8B\u3002 U-Boot \u4E2D\u79FB\u690D\u4E00\u6B3E SPI NOR\uFF0C\u6700\u91CD\u8981\u7684\u662F JEDEC ID\uFF0C\u901A\u8FC7\u5728\u6570\u636E\u624B\u518C\u4E2D\u67E5\u627E 0x9F \u547D\u4EE4\u83B7\u5F97...","topics/sdk/spinor/spinor_user_guide.html@@@SPI NOR \u4F7F\u7528\u6307\u5357@@@SPI NOR \u5C5E\u4E8E SPI \u7684\u4ECE\u8BBE\u5907\uFF0C\u5728\u5185\u6838\u4E2D\u76F8\u5173\u9A71\u52A8\u901A\u8FC7 SPI MEM \u5BF9\u63A5\u5230 SPI \u5B50\u7CFB\u7EDF\u3002 \u5728 SPI \u63A7\u5236\u5668\u521D\u59CB\u5316\u65F6\uFF0CSPI \u9A71\u52A8\u4F1A\u68C0\u67E5\u8BE5\u63A7\u5236\u5668\u4E0B\u662F\u5426\u6709\u6302\u8F7D\u7684 SPI NOR\uFF0C\u6709\u5219\u6DFB\u52A0\u5230 SPI BUS \u4E2D\u3002 aic_spi_probe(dev); |-> spi_register_controller(ctlr);/spi_register_master(ctlr); //...","topics/sdk/touch_panel/ctp_debug.html@@@CTP \u8C03\u8BD5\u914D\u7F6E@@@CTP \u9A71\u52A8\u4E00\u822C\u7531\u89E6\u6478\u5C4F\u539F\u5382\u63D0\u4F9B\uFF0C\u7ECF\u8FC7\u79FB\u690D\u540E\u6DFB\u52A0\u5230 SDK \u4E2D\u7F16\u8BD1\u548C\u4F7F\u7528\u3002\u672C\u8282\u4EE5 GT9xx \u89E6\u6478\u5C4F\u4E3A\u4F8B\uFF0C\u8BE6\u7EC6\u8BF4\u660E\u8C03\u8BD5\u548C\u79FB\u690D\u4E00\u6B3E\u65B0 CTP \u7684\u6D41\u7A0B\u3002 \u9A71\u52A8\u5B58\u653E\u8DEF\u5F84\uFF1A source/linux-5.10/drivers/input/touchscreen/gt9xx \u3002 \u6CE8\uFF1A \u4ECE\u89E6\u6478\u5C4F\u4F9B\u5E94\u5546\u5904\u83B7\u53D6\u548C\u5185\u6838\u7248\u672C\u5339\u914D\u7684\u9A71\u52A8\u7A0B\u5E8F\uFF0C\u5982\u679C\u7248\u672C\u4E0D\u5339\u914D\u5219\u53EF\u80FD\u7F16\u8BD1\u51FA\u9519\uFF0C\u9700\u8981\u81EA\u884C\u9002\u914D\u3002 \u9A71\u52A8\u79FB\u690D \u4FEE\u6539 Makefile...","topics/sdk/touch_panel/rtp_debug.html@@@RTP \u8C03\u8BD5\u914D\u7F6E@@@\u9488\u5BF9 RTP \u7535\u963B\u89E6\u6478\u5C4F\u7684\u914D\u7F6E\u548C\u8C03\u8BD5\uFF0C\u53EA\u9700\u8981\u6839\u636E\u539F\u7406\u56FE\u8BBE\u7F6E\u5BF9\u5E94\u7684 dts \u53C2\u6570\uFF0C\u5E76\u5C06\u7CFB\u7EDF\u81EA\u5E26\u7684 RTP \u63A7\u5236\u5668\u9A71\u52A8\u52A0\u8F7D\u5373\u53EF\u5B8C\u6210\uFF0C\u4E0D\u9700\u8981\u989D\u5916\u7684\u89E6\u6478\u5C4F\u9A71\u52A8\u3002 \u5173\u4E8E RTP \u7684\u8BE6\u7EC6\u539F\u7406\u4ECB\u7ECD\uFF0C\u53EF\u53C2\u8003 RTP \u4F7F\u7528\u6307\u5357 \u3002 \u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km...","topics/sdk/tsensor/tsensor-config.html@@@TSensor \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers [*] Thermal drivers <*> ArtInChip thermal driver DTS \u53C2\u6570\u914D\u7F6E TSensor \u9A71\u52A8\u652F\u6301\u4ECE DTS \u4E2D\u914D\u7F6E\u7684...","topics/sdk/tsensor/tsensor-data-structure.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@TSensor \u6570\u636E\u7C7B\u578B\u53CA\u5176\u7ED3\u6784\u63CF\u8FF0\u5982\u4E0B\uFF1A struct aic_tsen_dev \uFF1A\u7528\u4E8E\u7BA1\u7406 TSensor \u63A7\u5236\u5668\u7684\u8BBE\u5907\u8D44\u6E90 struct aic_tsen_dev { struct attribute_group attrs; void __iomem *regs; struct platform_device *pdev; struct clk *clk; struct...","topics/sdk/tsensor/tsensor-debug-guide.html@@@\u8C03\u8BD5\u6307\u5357@@@\u672C\u8282\u4ECB\u7ECD TSensor \u8C03\u8BD5\u6B65\u9AA4\u3002 \u6253\u5F00\u8C03\u8BD5\u5F00\u5173 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF0C\u6253\u5F00\u8C03\u8BD5\u5F00\u5173\uFF1A Linux Kernel hacking ArtInChip Debug [*] Thermal Sensor driver debug \u6253\u5F00...","topics/sdk/tsensor/tsensor-design-intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E\uFF1A drivers/thermal/artinchip_thermal.c Linux \u5185\u6838\u4E2D\u6709\u4E00\u4E2A Thermal \u5B50\u7CFB\u7EDF\uFF0C\u4EE3\u7801\u76EE\u5F55\u89C1 drivers/thermal \uFF0C\u8F6F\u4EF6\u6846\u67B6\u5982\u4E0B\u56FE\uFF1A \u56FE 1 . Linux Thermal \u5B50\u7CFB\u7EDF\u67B6\u6784\u56FE \u5176\u4E2D\uFF1A zone device\uFF1A\u83B7\u53D6\u6E29\u5EA6\u7684\u8BBE\u5907 cool device\uFF1A\u63A7\u5236\u6E29\u5EA6\u7684\u8BBE\u5907\uFF0Ccool \u548C zone \u53EF\u4EE5\u8BBE\u7F6E bind \u5173\u7CFB\u3002...","topics/sdk/tsensor/tsensor-faq.html@@@\u5E38\u89C1\u95EE\u9898@@@\u6E29\u5EA6\u503C\u7684\u7CBE\u5EA6\u5B58\u5728\u8BEF\u5DEE \u6E29\u5EA6\u4F20\u611F\u5668\u7684\u786C\u4EF6\u91C7\u96C6\u5230\u7684\u6E29\u5EA6\u503C\u6570\u636E\u9700\u8981\u5148\u7ECF\u8FC7\u4E00\u5B9A\u7684\u8F6C\u6362\u7B97\u6CD5\uFF0C\u624D\u4F1A\u5F97\u5230\u4E00\u4E2A\u7C7B\u4F3C\u751F\u6D3B\u4E2D\u5E38\u89C1\u7684\u6E29\u5EA6\u503C\u3002\u6B64\u8F6C\u6362\u7B97\u6CD5\u7684\u7CBE\u5EA6\u4E00\u822C\u91C7\u7528\u7684\u662F\u7EBF\u6027\u62DF\u5408\u65B9\u6CD5\uFF0C\u7531\u4E8E\u5404\u79CD\u56E0\u7D20\u7684\u5F71\u54CD\u5B58\u5728\u4E00\u5B9A\u7684\u8BEF\u5DEE\uFF0C\u7279\u522B\u662F\u5728\u6E29\u5EA6\u8303\u56F4\u8F83\u5BBD\u6216\u4F20\u611F\u5668\u7279\u6027\u975E\u7EBF\u6027\u8F83\u5F3A\u65F6\u3002 \u7EBF\u6027\u62DF\u5408\u662F\u4E00\u79CD\u7B80\u5316\u7684\u8F6C\u6362\u65B9\u6CD5\uFF0C\u901A\u8FC7\u5728\u4E24\u4E2A\u5DF2\u77E5\u70B9\u4E4B\u95F4\u7ED8\u5236\u4E00\u6761\u76F4\u7EBF\u6765\u8FD1\u4F3C\u8868\u793A\u6E29\u5EA6\u4E0E\u4F20\u611F\u5668\u8F93\u51FA\u4E4B\u95F4\u7684\u5173\u7CFB\u3002 \u5173\u4E8E\u544A\u8B66\u7684\u9608\u503C...","topics/sdk/tsensor/tsensor-interface-design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u4EE5\u4E0B\u63A5\u53E3\u63D0\u4F9B\u7ED9 Linux Thermal \u5B50\u7CFB\u7EDF\u8C03\u7528\u7684\u6807\u51C6\u63A5\u53E3\uFF1A \u8868 1 . tsen_cpu_get_temp \u51FD\u6570\u539F\u578B static inline int tsen_cpu_get_temp(struct thermal_zone_device *thermal, int *temp) \u529F\u80FD\u8BF4\u660E \u8BFB\u53D6 CPU \u4F4D\u7F6E\u5904\u7684 sensor \u6E29\u5EA6\u6570\u636E \u53C2\u6570\u5B9A\u4E49 thermal - \u6307\u5411 zone...","topics/sdk/tsensor/tsensor-key-procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B TSensor \u6A21\u5757\u5B8C\u5168\u9075\u5FAA driver \u7684\u901A\u7528\u521D\u59CB\u5316\u6D41\u7A0B\uFF0C\u7533\u8BF7 regs \u8D44\u6E90\u3001clk\u3001reset\uFF0C\u53E6\u5916\u9700\u8981\u4F7F\u7528 Thermal \u5B50\u7CFB\u7EDF\u7684\u6CE8\u518C\u63A5\u53E3 thermal_zone_device_register() \u6765\u6CE8\u518C zone \u8BBE\u5907\u3002 struct thermal_zone_device *thermal_zone_device_register( const char *...","topics/sdk/tsensor/tsensor-test-guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@TSensor \u6D4B\u8BD5\u6240\u9700\u7684\u6D4B\u8BD5\u73AF\u5883\u5982\u4E0B\uFF1A \u786C\u4EF6 \uFF1A\u5F00\u53D1\u677F\uFF0C\u6216 D211 \u7684 FPGA \u677F \u8F6F\u4EF6 \uFF1APC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 \u6D4B\u8BD5\u6E29\u5EA6\u8BFB\u53D6 \u6E29\u5EA6\u6570\u636E\u7684\u8BFB\u53D6\uFF0C\u53EA\u9700\u8981\u666E\u901A\u7684 cat \u547D\u4EE4\u5373\u53EF\uFF0C\u6BCF\u6B21 cat \u53EF\u8BFB\u53D6\u67D0\u4E00\u4E2A\u901A\u9053\u4E2D\u7684\u5F53\u524D\u6570\u636E\u3002\u8BE6\u89C1 Sysfs \u8282\u70B9\u8BFB\u53D6\u6E29\u5EA6 \u3002...","topics/sdk/tsensor/tsensor-user-guide.html@@@TSensor \u4F7F\u7528\u6307\u5357@@@TSensor//TSen \u662F\u4E00\u4E2A\u6E29\u5EA6\u4F20\u611F\u5668\u6A21\u5757\uFF0C\u7528\u4E8E\u6D4B\u91CF\u82AF\u7247\u5468\u56F4\u73AF\u5883\u7684\u6E29\u5EA6\u3002TSensor \u6A21\u5757\u8F93\u51FA\u6570\u5B57\u4FE1\u53F7\uFF0C\u4EE5\u4FBF\u7CFB\u7EDF\u80FD\u591F\u5BF9\u6E29\u5EA6\u53D8\u5316\u505A\u51FA\u5FEB\u901F\u54CD\u5E94\uFF0C\u4ECE\u800C\u63D0\u9AD8\u7CFB\u7EDF\u7684\u53EF\u9760\u6027\u548C\u7A33\u5B9A\u6027\u3002ADCIM \u6A21\u5757\u8D1F\u8D23\u7EDF\u4E00\u7BA1\u7406\u786C\u4EF6\u901A\u8DEF\uFF0C\u786E\u4FDD TSensor \u6A21\u5757\u80FD\u591F\u6B63\u786E\u8BFB\u53D6\u6E29\u5EA6\u4F20\u611F\u5668\u7684\u4FE1\u53F7\u3002TSensor \u9700\u8981\u4F9D\u8D56 ADCIM \u6A21\u5757\u6765\u5B9E\u73B0\u5176\u529F\u80FD\u3002 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E ADC Analog Digital...","topics/sdk/uart/uart_config.html@@@UART \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u6309\u5982\u4E0B\u793A\u4F8B\u914D\u7F6E\u76F8\u5E94\u9009\u9879\uFF1A Device Drivers Character devices Serial driver <*> 8250 / 16550 and compatible serial support <*> 8250 /...","topics/sdk/uart/uart_debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u6D41\u7A0B\u5982\u4E0B\uFF1A \u4F7F\u7528\u4EE5\u4E0B\u4EFB\u610F\u4E00\u79CD\u65B9\u5F0F\u5C06 log \u7B49\u7EA7\u8BBE\u7F6E\u4E3A\u6700\u9AD8 8\uFF1A \u5728 target/aicxxx/common/env.txt \u6587\u4EF6\u4E2D\uFF0C\u5C06 bootarg \u8BBE\u7F6E loglevel=8 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\u6267\u884C make kernel-menuconfig \u6216\u8005 make km \u547D\u4EE4\u6253\u5F00\u5185\u6838\u914D\u7F6E\uFF0C\u5E76\u8BBE\u7F6E\u5BF9\u5E94\u7684 log \u7B49\u7EA7\uFF1A Kernel hacking printk and dmesg...","topics/sdk/uart/uart_design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u4E32\u53E3\u82AF\u7247 \u5728\u9A71\u52A8\u4EE3\u7801\u8BF4\u660E\u5F00\u59CB\u524D\u5148\u4ECB\u7ECD\u51E0\u79CD\u901A\u7528\u7684\u4E32\u53E3\u82AF\u7247\u3002 8250\uFF1AIBM PC \u53CA\u517C\u5BB9\u673A\u4F7F\u7528\u7684\u7B2C\u4E00\u79CD\u4E32\u53E3\u82AF\u7247\u3002\u8FD9\u662F\u4E00\u79CD\u76F8\u5BF9\u6765\u8BF4\u5F88\u6162\u7684\u82AF\u7247\uFF0C\u6709\u65F6\u5019\u88C5\u8F7D\u5230\u5B83\u7684\u5BC4\u5B58\u5668\u901F\u5EA6\u592A\u5FEB\uFF0C\u5B83\u6765\u4E0D\u53CA\u5904\u7406\uFF0C\u5C31\u4F1A\u51FA\u73B0\u6570\u636E\u4E22\u5931\u73B0\u8C61\u30028250 \u6709 7 \u4E2A\u5BC4\u5B58\u5668\uFF0C\u652F\u6301\u7684\u6700\u5927\u6CE2\u7279\u7387\u4E3A 56kb\u3002 16450\uFF1A8250A \u7684\u5FEB\u901F\u7248\u3002\u52A0\u5FEB\u4E86\u5904\u7406\u5668\u5B58\u53D6\u5B83\u7684\u901F\u5EA6\uFF0C\u4F46\u6700\u5927\u901F\u5EA6\u8FD8\u662F 56kb\u3002\u6709\u4E9B\u4EBA\u5B9E\u9645\u7528\u5F97\u6BD4\u8FD9\u9AD8\u4E5F\u53EF\u4EE5\u3002...","topics/sdk/uart/uart_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@\u7AEF\u53E3\u975E tty \u8BBE\u5907 \u73B0\u8C61 test_uart -N /dev/ttyS1 /detv/ttySw2 1145200 [ 2022 - 01 - 26 16 : 23 : 43 ] Test Mode: 0 :Normal Test [ 2022 - 01 - 26 16 : 23 : 43 ] Send Device : /dev/ttyS1 [ 2022 - 01 - 26 16 : 23...","topics/sdk/uart/uart_test.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u4E00\u822C\u5F00\u53D1\u677F\u7684\u9996\u8981\u5DE5\u4F5C\u662F\u8C03\u8BD5\u3002 \u51C6\u5907\u5DE5\u4F5C\uFF1A \u786C\u4EF6\uFF1A PC\uFF1A\u7528\u4E8E\u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4EA4\u4E92 \u6D4B\u8BD5\u677F\uFF1A3 \u4E2A\u4EE5\u4E0A UART \u7AEF\u53E3\u7684\u6D4B\u8BD5\u677F \u8FDE\u63A5\u7EBF\uFF1A\u7528\u4E8E\u8FDE\u63A5 UART \u7684 RX/TX \u7AEF\u53E3 \u8F6F\u4EF6 PC \u4E32\u53E3\u8F6F\u4EF6\uFF1A\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 test_uart\uFF1AAIC \u7684 UART \u6D4B\u8BD5\u5DE5\u5177\uFF0C\u5185\u5D4C\u5728 SDK \u4E2D\uFF0C\u5728\u6839\u76EE\u5F55\u4E0B\u901A\u8FC7 make menuconfig \u53EF\u4EE5\u9009\u62E9\u7F16\u8BD1\u5230\u7CFB\u7EDF ArtInChip...","topics/sdk/uart/uart_user_guide.html@@@UART \u4F7F\u7528\u6307\u5357@@@\u901A\u7528\u5F02\u6B65\u6536\u53D1\u4F20\u8F93\u5668\uFF08Universal Asynchronous Receiver/Transmitter)\uFF0C\u901A\u5E38\u79F0\u4F5C UART\uFF0C\u662F\u4E00\u79CD\u901A\u7528\u4E32\u884C\u6570\u636E\u603B\u7EBF\u3002 \u4E32\u884C\u901A\u4FE1\u662F\u6307\u5229\u7528\u4E00\u6761\u4F20\u8F93\u7EBF\u5C06\u6570\u636E\u4E00\u4F4D\u4F4D\u5730\u987A\u5E8F\u4F20\u9001\uFF0C\u901A\u4FE1\u7EBF\u8DEF\u975E\u5E38\u7B80\u5355\u3002 UART \u4E3A\u53CC\u5411\u901A\u4FE1\uFF0C\u53EF\u4EE5\u5B9E\u73B0\u5168\u53CC\u5DE5\u4F20\u8F93\u548C\u63A5\u6536\u3002\u5728\u5D4C\u5165\u5F0F\u8BBE\u8BA1\u4E2D\uFF0CUART \u7528\u4E8E\u4E3B\u673A\u4E0E\u8F85\u52A9\u8BBE\u5907\u901A\u4FE1\uFF0C\u5982\u6C7D\u8F66\u97F3\u54CD\u4E0E\u5916\u63A5 AP \u4E4B\u95F4\u7684\u901A\u4FE1\uFF0C\u4E5F\u7528\u4E8E PC...","topics/sdk/usb/usb-aic_udc_driver.html@@@AIC UDC Driver@@@UDC Driver \u5728\u9700\u8981\u5B8C\u6210\u7684\u5DE5\u4F5C\u6709\u4E24\u70B9\uFF1A \u628A UDC \u786C\u4EF6\u6CE8\u518C\u6210\u6807\u51C6\u7684 Gadget Device\uFF0C\u4EE5\u4FBF\u63D0\u4F9B\u6807\u51C6\u7684 Gadget API \u7ED9 Gadget Function \u9A71\u52A8\u6765\u4F7F\u7528\u3002 \u63D0\u4F9B endpoint \u8D44\u6E90\u6C60\uFF0C\u5904\u7406 endpoint \u5C42\u7EA7\u7684\u6570\u636E\u6536\u53D1\u3002 \u9700\u8981\u5904\u7406\u90E8\u5206 Endpoint0 Setup \u903B\u8F91\u3002 Init UDC \u9A71\u52A8\u628A\u8D44\u6E90\u521D\u59CB\u5316\u597D\u4EE5\u540E\uFF0C\u6CE8\u518C\u6210\u4E00\u4E2A\u6807\u51C6\u7684 gadget...","topics/sdk/usb/usb-aic_usb_device_controller.html@@@AIC USB Device Controller@@@ArtInChip UDC \u5728\u786C\u4EF6\u5C42\u9762\u5B9E\u73B0\u4E86\u4EE5\u4E0B\u529F\u80FD\uFF1A Data Mode UDC \u5B9E\u73B0\u7684\u4E00\u9879\u4E3B\u8981\u5DE5\u4F5C\u662F\u6570\u636E\u642C\u79FB\uFF1A UDC \u53D1\u9001\u65F6\uFF0C\u6570\u636E\u5148\u4ECE\u5185\u5B58 Memory \u642C\u79FB\u5230 UDC \u7684\u5185\u90E8 FIFO \u5F53\u4E2D\uFF0C\u7136\u540E\u7531 UDC \u53D1\u9001\u5230 USB \u7269\u7406\u7EBF\u8DEF\u4E0A\u3002 UDC \u63A5\u6536\u65F6\uFF0C\u6570\u636E\u5148\u4ECE USB \u7269\u7406\u7EBF\u8DEF\u63A5\u6536\u5230 UDC \u7684\u5185\u90E8 FIFO \u5F53\u4E2D\uFF0C\u7136\u540E\u518D\u4ECE FIFO \u62F7\u8D1D\u5230 \u5185\u5B58 Memory \u5F53\u4E2D\u3002 \u5BF9\u4E8E FIFO...","topics/sdk/usb/usb-controller-data_structure_design.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@ehci_hc_driver HCD \u6838\u5FC3\u7684\u6570\u636E\u7ED3\u6784\u4E3A hc_driver\uFF0CEHCI \u5B9E\u73B0\u4E86\u4EE5\u4E0B\u7684\u6838\u5FC3\u51FD\u6570\uFF1A static const struct hc_driver ehci_hc_driver = { .description = hcd_name, .product_desc = "EHCI Host Controller" , .hcd_priv_size = sizeof (...","topics/sdk/usb/usb-controller-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . ehci_urb_enqueue \u51FD\u6570\u539F\u578B int ehci_urb_enqueue (struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags) \u529F\u80FD\u8BF4\u660E \u63A5\u6536\u4E0A\u5C42\u4F20\u5165\u7684 urb\uFF0C\u5E76\u5C06\u5176\u538B\u5165 EHCI \u7684\u786C\u4EF6\u961F\u5217\u3002 \u53C2\u6570\u5B9A\u4E49 hcd\uFF1A\u5F53\u524D hcd \u63A7\u5236\u7ED3\u6784 urb\uFF1A\u5F53\u524D urb \u63A7\u5236\u7ED3\u6784 mem_flags\uFF1A\u5206\u914D\u5185\u5B58\u65F6\u4F7F\u7528\u7684\u6807\u5FD7...","topics/sdk/usb/usb-controller-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B HCD \u9A71\u52A8\u7684\u5165\u53E3\u662F platform \u9A71\u52A8\uFF0C\u521D\u59CB\u5316\u6D41\u7A0B\u5148\u83B7\u53D6 irq\u3001reg\u3001clk\u3001reset \u7B49\u8D44\u6E90\u5E76\u8FDB\u884C\u521D\u59CB\u5316\uFF0C\u6700\u540E\u8C03\u7528 usb_add_hcd() \u5411\u7CFB\u7EDF\u4E2D\u6CE8\u518C\u3002 \u5927\u81F4\u7684\u6D41\u7A0B\u5982\u4E0B\uFF1A |-->ehci_platform_init() |-->ehci_init_driver() |-->platform_driver_register()...","topics/sdk/usb/usb-debug_guide.html@@@\u8C03\u8BD5\u6307\u5357@@@USB Host \u8C03\u8BD5 \u67E5\u770B USB \u8BBE\u5907 \u5728\u5355\u677F\u7684 USB Host \u7AEF\u53E3\u6709\u8BBE\u5907\u63D2\u5165\u6216\u8005\u62D4\u51FA\u65F6\uFF0C\u5355\u677F\u4E32\u53E3\u4F1A\u6709\u6253\u5370\u63D0\u793A\uFF1A [aic@] # [ 6792.678130 ] usb 1 - 1 : new high-speed USB device number 2 using aic-ehci [ 6792.884601 ] usb-storage 1 - 1 : 1.0 : USB Mass...","topics/sdk/usb/usb-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@...","topics/sdk/usb/usb-device-controller-driver.html@@@USB Device Controller Driver@@@\u8868 1 . \u6E90\u7801\u8BF4\u660E \u76F8\u5173\u6A21\u5757 \u6E90\u7801\u8DEF\u5F84 AIC UDC source\\linux-5.10\\drivers\\usb\\gadget\\udc\\aic_udc.c source\\linux-5.10\\drivers\\usb\\gadget\\udc\\aic_udc.h \u4ECE\u4E0A\u8FF0 Device Controller Driver (DCD) \u7684\u6846\u67B6\u56FE\u4E2D\u53EF\u4EE5\u770B\u5230\uFF0CDCD \u4E3B\u8981\u63D0\u4F9B\u4E86\u4E24\u5927\u529F\u80FD\uFF1A \u666E\u901A ep \u7684...","topics/sdk/usb/usb-device-controller_layer.html@@@USB Device Controller Layer@@@\u4E0A\u8FF0\u8F6F\u4EF6\u6808\u7684\u6700\u5E95\u5C42\u662F UDC (USB Device Controller)\uFF0CUDC \u5C42\u6700\u4E3B\u8981\u7684\u4F5C\u7528\u662F\u63D0\u4F9B\u4E00\u4E2A endpoint \u8D44\u6E90\u6C60\uFF0C\u8D1F\u8D23\u5904\u7406 endpoint \u5C42\u7EA7\u7684\u6570\u636E\u6536\u53D1\u3002...","topics/sdk/usb/usb-device-data_structure_design.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@aic_usb_ep_ops AIC UDC \u9A71\u52A8\u6838\u5FC3\u7684\u6570\u636E\u7ED3\u6784\u4E3A usb_ep_ops\uFF0C \u5B9E\u73B0\u4E86 op \u64CD\u4F5C\u7684\u76F8\u5173\u51FD\u6570\uFF1Ac static const struct usb_ep_ops aic_usb_ep_ops = { .enable = aic_ep_enable, .disable = aic_ep_disable, .alloc_request =...","topics/sdk/usb/usb-device-device_layer.html@@@USB Device Layer@@@Linux \u4F7F\u7528\u4E86\u4E00\u4E2A Gadget \u7684\u6982\u5FF5\u6765\u7EC4\u7EC7 USB Device\u3002 Gadget Layer \u5C42\u628A UDC \u63D0\u4F9B\u7684 endpoint \u5C01\u88C5\u6210\u6807\u51C6\u7684 Gadget Device\uFF0C\u63D0\u4F9B\u7EDF\u4E00\u7684\u5411\u4E0A\u63A5\u53E3\u3002 Gadget Driver \u53C8\u628A\u5404\u5F0F\u5404\u6837\u7684 Function \u548C Gadget Device \u94FE\u63A5\u8D77\u6765\u3002...","topics/sdk/usb/usb-device-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u8868 1 . aic_ep_queue_request \u51FD\u6570\u539F\u578B int aic_ep_queue_request(struct usb_ep *ep, struct usb_request *req, gfp_t gfp_flags) \u529F\u80FD\u8BF4\u660E \u63A5\u6536\u4E0A\u5C42\u4F20\u5165\u7684 request\uFF0C\u5E76\u5C06\u5176\u914D\u7F6E\u5230 ep \u5BC4\u5B58\u5668\u4E2D\u3002 \u53C2\u6570\u5B9A\u4E49 ep\uFF1A\u5F53\u524D ep \u63A7\u5236\u7ED3\u6784 req\uFF1A\u5F53\u524D request \u63A7\u5236\u7ED3\u6784...","topics/sdk/usb/usb-device-interface_layer.html@@@USB Interface Layer@@@Linux \u4F7F\u7528 Function \u6765\u5B9E\u73B0 USB Interface \u7B49\u7EA7\u7684\u529F\u80FD\u3002...","topics/sdk/usb/usb-device-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B DCD \u9A71\u52A8\u7684\u5165\u53E3\u662F platform \u9A71\u52A8\uFF0C\u521D\u59CB\u5316\u6D41\u7A0B\u5148\u83B7\u53D6 irq\u3001reg\u3001clk\u3001reset \u7B49\u8D44\u6E90\u5E76\u8FDB\u884C\u521D\u59CB\u5316\uFF0C\u6700\u540E\u8C03\u7528 usb_add_gadget_udc() \u5411\u7CFB\u7EDF\u4E2D\u6CE8\u518C\u3002 \u5927\u81F4\u7684\u6D41\u7A0B\u5982\u4E0B\uFF1A |-->aic_udc_probe() |-->gg->regs = devm_ioremap_resource(&dev->dev, res); |-->gg->reset =...","topics/sdk/usb/usb-device_configuration.html@@@USB Device \u914D\u7F6E@@@USB Device Controller \u914D\u7F6E Linux Kernel Kconfig \u6587\u4EF6\u4E2D\u4F7F\u80FD\u76F8\u5E94 UDC Driver\uFF1A > Device Drivers > USB support > USB Gadget Support > USB Peripheral Controller <*> ArtInChip USB2. 0 Device Controller DTS \u6587\u4EF6\u4E2D\u914D\u7F6E\u76F8\u5E94...","topics/sdk/usb/usb-device_gadget_zero.html@@@Device \u4FA7 gadget zero@@@\u63D0\u4F9B\u6D4B\u8BD5\u9700\u8981\u7684 Device \u8BBE\u5907\u6709\u5F88\u591A\u79CD\u65B9\u5F0F\uFF0C\u4F8B\u5982\u53EF\u7528\u4F7F\u7528\u4E13\u95E8\u7684\u6D4B\u8BD5 Device \u91CC\u9762\u70E7\u5F55\u4E13\u6709\u7684\u6D4B\u8BD5 Firmware\u3002\u8282\u7EA6\u6210\u672C\u7684\u65B9\u5F0F\u8FD8\u662F\u4F7F\u7528 Linux gadget \u529F\u80FD\u6765\u52A8\u6001\u6A21\u62DF USB Device \u8BBE\u5907\u3002\u9488\u5BF9 USB \u6D4B\u8BD5\uFF0CLinux \u4E13\u95E8\u63D0\u4F9B\u4E86 gadget zero \u8BBE\u5907\u3002 Device \u521B\u5EFA gadget zero \u7684\u6838\u5FC3\u662F\u521B\u5EFA\u4E00\u4E2A Composite Device...","topics/sdk/usb/usb-device_subsystem_code_structure.html@@@USB Device \u5B50\u7CFB\u7EDF\u4EE3\u7801\u67B6\u6784@@@\u6574\u4E2A USB \u7CFB\u7EDF\u7684\u901A\u8BAF\u6A21\u578B\u5982\u4E0A\u56FE\u6240\u793A\uFF0CDevice \u6846\u67B6\u89C1\u53F3\u4FA7\u5F69\u56FE\u90E8\u5206\u3002...","topics/sdk/usb/usb-function_resgister.html@@@Function \u6CE8\u518C@@@\u5728 drivers/usb/gadget/function/ \u8DEF\u5F84\u4E0B\u6709\u4E00\u6279 Gadget Function \u7684\u5B9A\u4E49\uFF1A ls drivers/usb/gadget/function/f* f_acm.c f_ecm.c f_eem.c f_fs.c f_hid.c f_loopback.c f_mass_storage.c f_mass_storage.h f_midi.c f_ncm.c...","topics/sdk/usb/usb-gadget_api.html@@@Gadget API@@@\u5728 Function Layer \u4E3B\u8981\u4F7F\u7528\u4EE5\u4E0B Gadget Layer \u5C42\u63D0\u4F9B\u7684 API\uFF1A usb_ep_autoconfig() usb_ep_enable() usb_ep_disable() usb_ep_alloc_request() usb_ep_free_request() usb_ep_queue() usb_ep_dequeue()...","topics/sdk/usb/usb-gadget_bus.html@@@Gadget Bus@@@Gadget Layer \u5C42\u6CA1\u6709\u5B9A\u4E49\u4E00\u4E2A\u6807\u51C6\u7684 Bus \u603B\u7EBF\uFF0C\u800C\u662F\u81EA\u5B9A\u4E49\u4E86\u4E24\u6761\u94FE\u8868\u6765\u5206\u522B\u5B58\u50A8 Device \u548C Driver\uFF1A type list escript Device udc_list \u6240\u6709 Device \u5168\u96C6 Driver gadget_driver_pending_list \u53EA\u5305\u542B\u6CA1\u6709\u9002\u914D Device \u7684 Driver \u5B83\u4EEC\u7684\u4F7F\u7528\u573A\u666F\u5982\u4E0B\uFF1A \u5728 Gadget Device...","topics/sdk/usb/usb-gadget_device.html@@@Gadget Device@@@\u4E0A\u4E00\u8282\u8BF4\u8FC7 Gadget Device \u7531 UDC Driver \u521B\u5EFA\u3002 dwc2_driver_probe() \u2192 usb_add_gadget_udc() \u2192 usb_add_gadget_udc_release() \u2192 usb_add_gadget() Gadget Device \u7684\u4E3B\u8981\u4F5C\u7528\u662F\u63D0\u4F9B\u4E86 Endpoint \u8D44\u6E90\uFF0C\u4F9B Function Layer \u4F7F\u7528\u6807\u51C6\u7684 Gadget API...","topics/sdk/usb/usb-gadget_driver_configfs.html@@@Gadget Driver (Configfs)@@@Gadget Device \u652F\u6491\u4E86\u6838\u5FC3 Gadget Api \u7684\u5B9E\u73B0\uFF0C\u800C Function Layer \u53C8\u9700\u8981\u4F7F\u7528\u8FD9\u4E9B Api\u3002\u600E\u4E48\u6837\u5C06\u4E24\u8005\u9002\u914D\u8D77\u6765\uFF1FGadget Driver \u5C31\u662F\u7528\u6765\u5B8C\u6210\u8FD9\u9879\u5DE5\u4F5C\u7684\u3002 \u76EE\u524D\u5B58\u5728\u4E24\u79CD\u98CE\u683C\u7684 Gadget Driver\uFF0C\u5176\u4E2D\u5305\u62EC\uFF1A Legacy\u3002\u8FD9\u662F\u65E9\u671F\u98CE\u683C\u7684 Gadget Driver\uFF0C\u53EA\u80FD\u901A\u8FC7\u9759\u6001\u7F16\u8BD1\u7684\u65B9\u5F0F\u6307\u5B9A\u4F7F\u7528\u54EA\u4E9B Function\u3002...","topics/sdk/usb/usb-gadget_driver_legacy.html@@@Gadget Driver Legacy@@@\u5BF9\u4E8E Legacy Gadget Driver \u9A71\u52A8\u6765\u8BF4\uFF0C\u76F8\u5F53\u4E8E Configfs Gadget Driver \u7684\u4E00\u4E2A\u7B80\u5316\u7248\u3002 Gadget Driver Legacy \u98CE\u683C\u7684 gadget driver \u7684\u5B9A\u4E49\uFF1A...","topics/sdk/usb/usb-host-aic_usb_host_controller.html@@@AIC USB Host Controller@@@ArtInChip \u63D0\u4F9B\u4E86\u517C\u5BB9\u6807\u51C6 EHCI \u7684 USB Host Controller\u3002 EHCI \u53EA\u652F\u6301 USB 2.0 \u9AD8\u901F\u4F20\u8F93\uFF0C\u4E3A\u4E86\u5411\u4E0B\u517C\u5BB9 USB 1.1\uFF0C\u5B83\u76F4\u63A5\u5728\u5185\u90E8\u96C6\u6210\u6700\u591A 4 \u4E2A\u5168\u901F\u6216\u8005\u6162\u901F\u63A7\u5236\u5668 OHCI \u3002\u5728 EHCI \u534F\u8BAE\u5185\u79F0\u8FD9\u79CD\u4F34\u751F\u7684 OHCI \u63A7\u5236\u5668\u4E3A companion host controllers \u3002 \u7531 EHCI \u9A71\u52A8\u6839\u636E\u7AEF\u53E3\u901F\u7387\u60C5\u51B5\u6765\u51B3\u5B9A\u7531\u8C01\u6765\u5904\u7406\uFF1A...","topics/sdk/usb/usb-host-controller-driver.html@@@USB Host Controller Driver@@@\u8868 1 . \u6E90\u7801\u8BF4\u660E \u76F8\u5173\u6A21\u5757 \u6E90\u7801\u8DEF\u5F84 EHCI source\\linux-5.10\\drivers\\usb\\host\\ehci-aic.c source\\linux-5.10\\drivers\\usb\\host\\ehci-hcd.c source\\linux-5.10\\drivers\\usb\\host\\ehci-mem.c...","topics/sdk/usb/usb-host-controller_layer.html@@@USB Host Controller Layer@@@Usb Host Controller \u63D0\u4F9B\u4E86 endpoint \u5C42\u7EA7\u7684\u6570\u636E\u6536\u53D1\uFF0C\u4E3B\u8981\u5206\u4E3A\u4EE5\u4E0B\u79CD\u7C7B\uFF1A Usb1.0 \u6709\u4E24\u79CD\u63A7\u5236\u5668\u6807\u51C6\uFF1A OHCI \u5EB7\u67CF\u7684\u5F00\u653E\u4E3B\u673A\u63A7\u5236\u5668\u63A5\u53E3\uFF0C UHCI Intel \u7684\u901A\u7528\u4E3B\u673A\u63A7\u5236\u5668\u63A5\u53E3\u3002\u5B83\u4EEC\u7684\u4E3B\u8981\u533A\u522B\u662F UHCI \u66F4\u52A0\u4F9D\u8D56\u8F6F\u4EF6\u9A71\u52A8\uFF0C\u56E0\u6B64\u5BF9 CPU \u8981\u6C42\u66F4\u9AD8\uFF0C\u4F46\u662F\u81EA\u8EAB\u7684\u786C\u4EF6\u4F1A\u66F4\u5EC9\u4EF7\u3002 Usb2.0 \u53EA\u6709\u4E00\u79CD\u63A7\u5236\u5668\u6807\u51C6\uFF1A EHCI \u3002\u56E0\u4E3A EHCI \u53EA\u652F\u6301\u9AD8\u901F\u4F20\u8F93\uFF0C\u6240\u4EE5...","topics/sdk/usb/usb-host-core.html@@@USB Core@@@Layer \u7531\u524D\u51E0\u8282\u53EF\u77E5 USB \u5C06 Device \u8FDB\u4E00\u6B65\u7EC6\u5206\u6210\u4E86 3 \u4E2A\u5C42\u7EA7\uFF1A Configuration \u914D\u7F6E\u3001 Interface \u63A5\u53E3\u3001 Endpoint \u7AEF\u70B9\u3002 USB Core \u4E3A\u5176\u4E2D\u4E24\u4E2A\u5C42\u6B21\u63D0\u4F9B\u4E86 Device + Driver \u7684\u8BBE\u5907\u9A71\u52A8\u6A21\u578B\uFF0C\u8FD9\u4E24\u4E2A\u5C42\u6B21\u5206\u522B\u662F USB Device Layer \u548C USB Interface Layer \u5C42\uFF0C\u4E00\u4E2A USB Device...","topics/sdk/usb/usb-host-device_layer.html@@@USB Device Layer@@@Device (struct usb_device) USB Device Device \u5BF9\u5E94\u7684\u6570\u636E\u7ED3\u6784\u4E3A struct usb_device \uFF0C\u4F1A\u5728\u4E24\u79CD\u60C5\u51B5\u4E0B\u88AB\u521B\u5EFA\uFF1A roothub device\u3002\u5728 HCD \u9A71\u52A8\u6CE8\u518C\u65F6\u521B\u5EFA\uFF1A /* (1) \u9996\u5148\u521B\u5EFA\u548C\u521D\u59CB\u5316 `usb_device` \u7ED3\u6784\uFF1A */ usb_add_hcd() \u2192 usb_alloc_dev(): struct...","topics/sdk/usb/usb-host-ehci_driver.html@@@EHCI Driver@@@ehci driver \u8D1F\u8D23\u628A echi \u529F\u80FD\u5C01\u88C5\u6210\u6807\u51C6\u7684 hcd \u9A71\u52A8\u3002\u5B83\u4E3B\u8981\u5B8C\u6210\u4E24\u9879\u5DE5\u4F5C\uFF1A \u6CE8\u518C\u6807\u51C6\u7684 hcd \u9A71\u52A8\u3002\u628A Client Software \u4F20\u9001\u4E0B\u6765\u7684 urb \u6620\u5C04\u5230 EHCI \u7684\u94FE\u8868\u4E2D\u8FDB\u884C\u4F20\u8F93\u3002 \u521B\u5EFA\u4E00\u4E2A\u865A\u62DF\u7684\u6839 hub \u8BBE\u5907\uFF0C\u5373 roothub\u3002 URB Transfer ehci \u6CE8\u518C hcd \u9A71\u52A8\uFF1A static int ehci_platform_probe(...","topics/sdk/usb/usb-host-ehci_internal_structure.html@@@EHCI \u5185\u90E8\u7ED3\u6784@@@EHCI \u7684\u6838\u5FC3\u5C31\u662F\u628A\u6570\u636E\u4F20\u8F93\u5206\u6210\u4E86\u4E24\u7C7B\u6765\u8FDB\u884C\u8C03\u5EA6\uFF1A Asynchronous Schedule \u3002\u7528\u6765\u4F20\u8F93\u5BF9\u65F6\u95F4\u5EF6\u8FDF\u8981\u6C42\u4E0D\u9AD8\u7684 Endpoint \u6570\u636E\uFF0C\u5305\u62EC Control Transfer \u548C Bulk Transfer \u3002 Periodic Schedule \u3002\u7528\u6765\u4F20\u8F93\u5BF9\u65F6\u95F4\u5EF6\u8FDF\u8981\u6C42\u9AD8\u7684 Endpoint \u6570\u636E\uFF0C\u5305\u62EC Isochronous Transfer \u548C Interrupt...","topics/sdk/usb/usb-host-interface-bus_usb_bus_type.html@@@BUS (usb_bus_type)@@@USB Interface \u8FD9\u4E00\u5C42\u6B21\u603B\u7EBF\u4E5F\u662F usb_bus_type \uFF0C\u4E0A\u4E00\u8282\u5DF2\u7ECF\u5206\u6790\uFF0C\u8FD9\u91CC\u5C31\u4E0D\u91CD\u590D\u89E3\u6790\u4E86\u3002...","topics/sdk/usb/usb-host-interface-device_struct_usb_interface.html@@@Device (struct usb_interface)@@@\u5982\u4E0A\u4E00\u8282\u63CF\u8FF0\uFF0C USB Interface Device \u5BF9\u5E94\u7684\u6570\u636E\u7ED3\u6784\u4E3A struct usb_interface \uFF0C\u4F1A\u5728 USB Device Driver \u9A71\u52A8 probe() \u65F6 \u88AB\u521B\u5EFA\uFF1A usb_probe_device() \u2192 usb_generic_driver_probe() \u2192 usb_set_configuration(): int usb_set_configuration(...","topics/sdk/usb/usb-host-interface-driver_struct_usb_driver.html@@@Driver (struct usb_driver)@@@USB Interface \u8FD9\u4E00\u5C42\u6B21\u7684\u9A71\u52A8\u5C31\u975E\u5E38\u7684\u591A\u4E86\uFF0C\u8FD9\u4E00\u5C42\u4E3B\u8981\u662F\u5728 USB \u4F20\u8F93\u5C42\u4E4B\u4E0A\uFF0C\u9488\u5BF9 USB Device \u7684\u67D0\u4E2A\u529F\u80FD Function \u5F00\u53D1\u5BF9\u5E94\u7684 USB \u529F\u80FD\u4E1A\u52A1\u9A71\u52A8\uFF0C\u5373\u5E38\u8BF4\u7684 USB Client Software \u3002\u5728 USB \u5B9A\u4E49\u4E2D\uFF0C\u4E00\u4E2A Interface \u5C31\u662F\u4E00\u4E2A Function \u3002 USB Interface Driver \u5BF9\u5E94\u7684\u6570\u636E\u7ED3\u6784\u4E3A struct...","topics/sdk/usb/usb-host-interface-usb_hub_driver.html@@@USB Hub Driver@@@\u666E\u901A\u7684 Usb Device \u901A\u8FC7\u5185\u90E8\u7684 Interface \u63D0\u4F9B\u5404\u79CD\u4E1A\u52A1\u529F\u80FD\u3002\u800C Hub \u8FD9\u7C7B\u7279\u6B8A\u7684 Usb Device \u529F\u80FD\u5C31\u4E00\u79CD\uFF0C\u90A3\u5C31\u662F\u76D1\u63A7\u7AEF\u53E3\u7684\u72B6\u6001\u53D8\u5316\uFF1A \u5728\u7AEF\u53E3\u4E0A\u6709\u8BBE\u5907 attach \u65F6\uFF0C\u521B\u5EFA\u65B0\u7684 usb device\uFF0C\u7ED9\u5176\u9002\u914D\u9A71\u52A8\u3002\u5982\u679C\u662F hub device\uFF0C\u5B50 usb \u9A71\u52A8\u4F1A\u8FDB\u4E00\u6B65\u626B\u63CF\u7AEF\u53E3\u3002 \u5728\u7AEF\u53E3\u4E0A\u6709\u8BBE\u5907 deattach \u65F6\uFF0C\u79FB\u9664\u6389\u5BF9\u5E94\u7684 usb device\u3002\u5982\u679C\u662F hub...","topics/sdk/usb/usb-host-interface_layer.html@@@USB Interface Layer@@@...","topics/sdk/usb/usb-host_configuration.html@@@USB Host \u914D\u7F6E@@@ArtInChip \u63D0\u4F9B\u4E86\u4E24\u8DEF USB Host \u7AEF\u53E3\u548C\u4E00\u8DEF USB Device \u7AEF\u53E3\uFF0C\u9700\u8981\u5206\u522B\u8FDB\u884C\u914D\u7F6E\uFF1A USB Host Contoller \u914D\u7F6E ArtInChip \u5728\u4E00\u4E2A USB Host \u7AEF\u53E3\u4E2D\u63D0\u4F9B\u4E86\u4E0B\u5217 Host Contoller\uFF0C\u5728\u8F6F\u4EF6\u4E0A\u9700\u8981\u9700\u8981\u5206\u5F00\u914D\u7F6E\uFF1A \u914D\u7F6E EHCI \u63A7\u5236\u5668 \u914D\u7F6E OHCI \u63A7\u5236\u5668 USB Interface \u9A71\u52A8\u914D\u7F6E \u5B8C\u6210 USB Host...","topics/sdk/usb/usb-host_subsystem_code_structure.html@@@USB Host \u5B50\u7CFB\u7EDF\u4EE3\u7801\u67B6\u6784@@@\u6574\u4E2A USB \u7CFB\u7EDF\u7684\u901A\u8BAF\u6A21\u578B\u5982\u4E0A\u56FE\u6240\u793A\uFF0CHost \u6846\u67B6\u89C1\u5DE6\u4FA7\u5F69\u56FE\u90E8\u5206\u3002...","topics/sdk/usb/usb-host_testusb.html@@@Host \u4FA7 testusb@@@testusb \u6E90\u7801\u5305\u542B\u5728 linux \u5185\u6838\u5F53\u4E2D\uFF0C \u8DEF\u5F84\u4E3A linux-5.10\\tools\\usb\\testusb.c \u3002\u53EF\u4EE5\u901A\u8FC7 luban \u7F16\u8BD1\uFF0C\u6216\u8005\u7B80\u5355\u7F16\u8BD1\uFF1A gcc-Wall-g-lpthread-otestusbtestusb.c \u5C31\u53EF\u4EE5\u542F\u52A8\u6D4B\u8BD5\u4E86\uFF1A sudo ./testusb -a unknown speed /dev/bus/usb/ 001 / 002...","topics/sdk/usb/usb-host_usbtest_ko.html@@@Host \u4FA7 usbtest.ko@@@\u5728 Host \u4FA7\u7684 usbtest.ko \u662F\u4E00\u4E2A\u6807\u51C6\u7684 usb interface driver \u3002\u5B83\u6839\u636E Vendor ID = 0x0525 \u3001 Product ID = 0xa4a0 \u9002\u914D\u4E0A\u4E00\u8282 Composite Device \u4E2D\u7684 SourceSink Interface \u6216\u8005 Loopback Interface \u3002 static const struct usb_device_id...","topics/sdk/usb/usb-loopback_function.html@@@Loopback Function@@@Loopback Function \u63D0\u4F9B\u7684\u529F\u80FD\u66F4\u4E3A\u7B80\u5355\uFF0C\u5B83\u5206\u914D\u4E86\u4E24\u4E2A bulk endpoint\uFF0C\u6240\u505A\u7684\u5C31\u662F\u628A out_ep \u63A5\u6536\u5230\u7684\u6570\u636E \u8F6C\u53D1\u5230 in_ep \u3002 \u4E3B\u8981\u6D41\u7A0B\u5982\u4E0B\uFF1A drivers\\usb\\gadget\\function\\f_loopback.c: loopback_bind()\uFF1A static int loopback_bind( struct usb_configuration...","topics/sdk/usb/usb-otg_configuration.html@@@USB OTG \u914D\u7F6E@@@USB Host 0 \u548C USB Device 0 \u5171\u4EAB 1 \u8DEF phy\u3002\u8981\u4E48\u540C\u65F6\u53EA\u80FD\u542F\u7528\u5176\u4E2D\u4E00\u79CD\u529F\u80FD\uFF0C\u8981\u4E48\u542F\u7528 USB OTG \u529F\u80FD\u901A\u8FC7 id \u7BA1\u811A\u7684\u503C\u6765\u52A8\u6001\u5207\u6362\u5BF9\u5916\u529F\u80FD\u3002 Linux Kernel Kconfig \u6587\u4EF6\u4E2D\u4F7F\u80FD\u76F8\u5E94 OTG Driver\uFF1A > Device Drivers > USB support [*] OTG support [*] Support for...","topics/sdk/usb/usb-source_sink_function.html@@@SourceSink Function@@@SourceSink Function \u7684\u4E3B\u8981\u529F\u80FD\u662F\u63D0\u4F9B\u4E86\u4E00\u7EC4 USB \u6D4B\u8BD5 endpoint\uFF0C\u5176\u4E2D: Sink \u3002sinks bulk packets OUT to the peripheral\u3002\u610F\u601D\u662F\u628A\u6570\u636E\u4ECE Host \u5F15\u6D41\u5230 Device\uFF0C\u5373 OUT \u65B9\u5411\u3002 Source \u3002sources them IN to the host\u3002\u610F\u601D\u662F\u628A\u4ECE Device \u53D1\u9001\u6570\u636E\u5230 Device\uFF0C\u5373 IN...","topics/sdk/usb/usb-test_guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u5728\u6D4B\u8BD5 USB \u65F6\uFF0C\u666E\u901A\u7684\u505A\u6CD5\u662F\u627E\u4E00\u4E9B U \u76D8\u3001\u9F20\u6807\u3001\u952E\u76D8 \u7B49\u5916\u8BBE\u6765\u505A\u4E00\u4E9B\u6D4B\u8BD5\uFF0C\u4F46\u662F\u8FD9\u4E9B\u6D4B\u8BD5\u8FD8\u662F\u504F\u4E0A\u5C42\u504F\u529F\u80FD\u7684\u3002\u76F8\u6BD4\u8F83 HC (USB Host Controller) \u548C UDC (USB Device Controller) \u6309\u7167 USB \u534F\u8BAE\u63D0\u4F9B\u7684\u5B8C\u6574\u529F\u80FD\u6765\u8BF4\uFF0C\u8FD9\u79CD\u6D4B\u8BD5\u9A8C\u8BC1\u65F6\u4E0D\u5145\u5206\u7684\u3002 \u5728 Linux Kernel \u4E2D\u5BF9 HC/UDC \u6709\u4E00\u5957\u4E13\u6709\u7684\u6D4B\u8BD5\u65B9\u6848\uFF0C\u5728\u5E95\u5C42\u5BF9...","topics/sdk/usb/usb_config.html@@@USB \u914D\u7F6E@@@\u672C\u8282\u63CF\u8FF0 USB \u914D\u7F6E\u53C2\u6570\u548C\u6D41\u7A0B\u3002...","topics/sdk/usb/usb_faq.html@@@\u5E38\u89C1\u95EE\u9898@@@\u81EA\u52A8\u5207\u6362 Host/Device \u8BE5\u529F\u80FD\u662F\u5728\u7528\u6237\u6001\u624B\u52A8\u5207\u6362 USB \u7AEF\u53E3\u4E3A Host \u6216\u8005 Device \u914D\u7F6E\u4FEE\u6539 \u5728\u76F8\u5E94\u5DE5\u7A0B\u7684 board.dts \u4E2D\u6253\u5F00 otg \u7684\u5B8F\uFF0C\u5E76\u914D\u7F6E otg-mode\uFF0C \u53EF\u9009\u503C\u4E3A auto\uFF1A \u901A\u8FC7\u786C\u4EF6\u7684 ID \u7BA1\u811A\u5207\u6362 host\uFF1A \u9ED8\u8BA4\u914D\u7F6E\u4E3A host device\uFF1A \u9ED8\u8BA4\u914D\u7F6E\u4E3A device # if 1 &otg { otg-mode = "device"...","topics/sdk/usb/usb_user_guide.html@@@USB \u4F7F\u7528\u6307\u5357@@@Universal Serial Bus (USB) \u901A\u7528\u4E32\u884C\u603B\u7EBF\u662F\u4E00\u79CD\u5E94\u7528\u573A\u666F\u5341\u5206\u5E7F\u6CDB\u7684\u603B\u7EBF\u6280\u672F\u3002...","topics/sdk/ve/ve-architecture-luban-lite.html@@@\u6A21\u5757\u67B6\u6784@@@VE \u786C\u4EF6\u9700\u8981\u7531\u5185\u6838\u6001 VE \u9A71\u52A8\u548C\u7528\u6237\u6001\u7A0B\u5E8F MPP \u76F8\u4E92\u914D\u5408\u5B9E\u73B0\u7F16\u89E3\u7801\u529F\u80FD\u3002 \u5185\u6838 VE \u9A71\u52A8\uFF1A\u8D1F\u8D23 VE \u786C\u4EF6\u8D44\u6E90\u521D\u59CB\u5316\u548C\u83B7\u53D6\u7B49 \u7528\u6237\u6001 MPP \u7A0B\u5E8F\uFF1A\u8D1F\u8D23\u5904\u7406\u7F16\u89E3\u7801\u903B\u8F91\u3001\u5BC4\u5B58\u5668\u914D\u7F6E\u7B49 VE \u9A71\u52A8\u57FA\u4E8E\u5B57\u7B26\u8BBE\u5907\u5B9E\u73B0\uFF0C\u5E94\u7528\u5C42\u901A\u8FC7\u8BBE\u5907\u8282\u70B9 (/dev/aic_ve) \u8FDB\u884C\u4EA4\u4E92\u3002 \u56FE 1 . VE \u9A71\u52A8\u6846\u67B6 \u57FA\u672C\u6D41\u7A0B\u5982\u4E0B\uFF1A \u7528\u6237\u6001\u7A0B\u5E8F\u901A\u8FC7 open /dev/aic_ve \u6253\u5F00 VE \u9A71\u52A8\u3002...","topics/sdk/ve/ve-config.html@@@VE \u914D\u7F6E@@@VE \u5305\u62EC\u4EE5\u4E0B\u914D\u7F6E\u5185\u5BB9\uFF1A \u5185\u6838\u914D\u7F6E \u5728 Luban \u6839\u76EE\u5F55\u4E0B\u6267\u884C make linux-menuconfig \uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers ---> Graphics support ---> ArtInChip Graphics ---> <*> ArtInChip Video Engine Driver DTS \u53C2\u6570\u914D\u7F6E VE \u6A21\u5757...","topics/sdk/ve/ve-data_structure.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@// VE \u5BC4\u5B58\u5668\u5730\u5740\u8303\u56F4 struct ve_info { int reg_size; }; // dma buffer \u4FE1\u606F\uFF0C\u7528\u4E8E\u83B7\u53D6 buffer \u7684\u7269\u7406\u5730\u5740 struct dma_buf_info { int fd; unsigned int phy_addr; }; // \u4E2D\u65AD\u4FE1\u606F\u7ED3\u6784\u4F53 struct wait_info { int wait_time; unsigned int...","topics/sdk/ve/ve-demo.html@@@Demo@@@\u4EE5\u4E0B demo \u5B9E\u73B0 VE \u9A71\u52A8\u57FA\u672C\u8C03\u7528\u6D41\u7A0B\uFF0C\u5177\u4F53\u53EF\u53C2\u8003 mpp \u4EE3\u7801\uFF0C\u8DEF\u5F84\u4E3A base/ve/ve.c \u3002 //* 1. \u6253\u5F00 VE \u9A71\u52A8 int fd = open( "/dev/aic_ve" , O_RDWR); //* 2. \u83B7\u53D6 ve \u5BC4\u5B58\u5668\u7A7A\u95F4\u5927\u5C0F struct ve_info info = { 0 }; ioctl(fd, IOC_VE_GET_INFO, &info); //*...","topics/sdk/ve/ve-faq.html@@@\u5E38\u89C1\u95EE\u9898@@@VE \u9A71\u52A8\u672A\u52A0\u8F7D \u73B0\u8C61 \u5728 /dev \u8DEF\u5F84\u4E0B\uFF0C\u672A\u53D1\u73B0\u5B57\u7B26\u8BBE\u5907 /dev/aic_ve \u3002 \u539F\u56E0\u5206\u6790 \u786E\u8BA4\u5185\u6838\u4E2D\u662F\u5426\u52A0\u8F7D VE \u9A71\u52A8\u3002 \u56FE\u50CF\u89E3\u7801\u62A5\u9519 \u73B0\u8C61 \u89E3\u7801\u5F02\u5E38\u62A5\u9519\uFF0C\u672A\u5F97\u5230\u89E3\u7801\u540E\u7684\u89C6\u9891\u5E27\uFF0C\u6216\u8005\u89C6\u9891\u5E27\u6570\u636E\u51FA\u9519\u3002 \u539F\u56E0\u5206\u6790 \u9010\u6B65\u6392\u9664\u4EE5\u4E0B\u539F\u56E0\uFF1A \u6E90\u6587\u4EF6\u662F\u5426\u662F VE \u9A71\u52A8\u652F\u6301\u7684\u5A92\u4F53\u6587\u4EF6\u683C\u5F0F\uFF0C\u5177\u4F53\u8BF7\u53C2\u8003\u6A21\u5757\u4ECB\u7ECD\u7684\u786C\u4EF6\u7F16\u89E3\u7801\u683C\u5F0F\u7AE0\u8282\u3002 \u6E90\u6587\u4EF6\u662F\u5426\u635F\u574F\uFF0C\u53EF\u53C2\u8003 PC \u7AEF\u662F\u5426\u53EF\u6B63\u5E38\u64AD\u653E\u3002 \u7801\u6D41\u89E3\u6790\u662F\u5426\u6B63\u786E\uFF0C\u76F8\u5173...","topics/sdk/ve/ve-key_procedure.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u5BC4\u5B58\u5668\u5730\u5740\u7A7A\u95F4\u6620\u5C04 \u7531\u4E8E\u5BC4\u5B58\u5668\u662F\u5728\u7528\u6237\u7A7A\u95F4\u914D\u7F6E\uFF0CVE \u9A71\u52A8\u9700\u8981\u5B9E\u73B0 mmap \u63A5\u53E3\uFF0C\u5C06\u5BC4\u5B58\u5668\u5730\u5740\u7A7A\u95F4\u6620\u5C04\u5230\u7528\u6237\u6001\u8FDB\u7A0B\u7684\u865A\u62DF\u5730\u5740\u7A7A\u95F4\uFF0C\u4EE5\u4FBF\u7528\u6237\u6001\u7A0B\u5E8F\u8BFB\u5199\u5BC4\u5B58\u5668\u3002 \u4E0D\u540C VE \u786C\u4EF6\u7248\u672C\uFF0C\u5BC4\u5B58\u5668\u57FA\u5730\u5740\u548C\u5BC4\u5B58\u5668\u5730\u5740\u8303\u56F4\u53EF\u80FD\u4E0D\u4E00\u6837\uFF0C\u56E0\u6B64\u9700\u8981\u5728 board.dts \u4E2D\u9488\u5BF9\u4E0D\u540C\u5E73\u53F0\u6B63\u786E\u914D\u7F6E reg \u9879\uFF08\u5982\u4E0B\u6240\u793A\uFF09\u3002 ve: ve@ 0x18c00000 { ... reg = < 0x0 0x18c00000...","topics/sdk/ve/ve-test_guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@VE \u9A71\u52A8\u65E0\u6CD5\u72EC\u7ACB\u8FD0\u884C\uFF0C\u5FC5\u987B\u4F9D\u8D56 MPP \u7684\u8C03\u7528\u624D\u80FD\u8FD0\u884C\u3002\u56E0\u6B64\uFF0CVE \u9A71\u52A8\u6D4B\u8BD5\u8BF7\u53C2\u8003 MPP \u6A21\u5757 \u6D4B\u8BD5\u6307\u5357 \u4E2D\u7684\u6D4B\u8BD5\u7528\u4F8B\u3002...","topics/sdk/ve/ve-user-guide.html@@@VE \u4F7F\u7528\u6307\u5357@@@Video Engine (VE) \u662F ArtInChip \u81EA\u4E3B\u7814\u53D1\u7684\u89C6\u9891\u52A0\u901F\u5F15\u64CE\uFF0C\u652F\u6301\u89C6\u9891\u3001\u56FE\u7247\u7684\u7F16\u89E3\u7801\u529F\u80FD\u3002 \u5728 Linux \u8BBE\u5907\u4E2D\uFF0C\u6CE8\u518C\u4E3A\u5B57\u7B26\u8BBE\u5907\uFF0C\u901A\u8FC7\u4E2D\u95F4\u4EF6 MPP(Media Process Platform)\u5B9E\u73B0\u5BF9 VE \u5B57\u7B26\u8BBE\u5907\u9A71\u52A8\u7684\u8C03\u7528\uFF0C\u5B9E\u73B0\u5BF9\u89C6\u9891\u3001\u56FE\u7247\u591A\u5A92\u4F53\u6587\u4EF6\u7684\u7F16\u89E3\u7801\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E VE Video Engine \u89C6\u9891\u52A0\u901F\u5F15\u64CE MPP Media...","topics/sdk/ve/ve_design_guide.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@VE \u6E90\u4EE3\u7801\u4F4D\u4E8E linux-5.10/drivers/video/artinchip/ve/aic_ve.c \u3002...","topics/sdk/watchdog/watchdog-config.html@@@Watchdog \u914D\u7F6E@@@\u672C\u8282\u4ECB\u7ECD Watchdog \u7684\u914D\u7F6E\u5185\u5BB9\u3002 \u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers [*] Watchdog Timer Support <*> ArtInChip SoC watchdog support...","topics/sdk/watchdog/watchdog-data-structure.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@Watchdog \u6570\u636E\u7C7B\u578B\u53CA\u5176\u7ED3\u6784\u63CF\u8FF0\u5982\u4E0B\uFF1A aic_wdt_dev \uFF1A\u8BB0\u5F55 Watchdog \u63A7\u5236\u5668\u7684\u914D\u7F6E\u4FE1\u606F\u3002\u5176\u4E2D\u5305\u542B\u56DB\u4E2A Watchdog \u8BBE\u5907\uFF1A struct aic_wdt_dev { struct watchdog_device wdt_dev[WDT_CHAN_NUM]; void __iomem *base; struct attribute_group attrs; struct...","topics/sdk/watchdog/watchdog-debug.html@@@\u8C03\u8BD5\u6307\u5357@@@\u8C03\u8BD5\u5F00\u5173 \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF0C\u6253\u5F00\u8C03\u8BD5\u5F00\u5173\uFF1A Linux Kernel hacking ArtInChip Debug [*] Watchdog driver debug \u6253\u5F00 DEBUG \u9009\u9879\u540E\uFF1A \u9A71\u52A8\u4EE5 -O0 \u7F16\u8BD1\u3002 pr_dbg()...","topics/sdk/watchdog/watchdog-demo.html@@@Demo@@@\u672C Demo \u662F\u901A\u8FC7 ioctl \u63A5\u53E3\u6765\u8BBF\u95EE\u8BBE\u5907\u8282\u70B9 /dev/watchdog \uFF0C\u4EE3\u7801\u8BE6\u89C1 samples/test-watchdog/wdt.c #include <artinchip/sample_base.h> #include <sys/time.h> #include <linux/watchdog.h> /* Global macro and variables */ #...","topics/sdk/watchdog/watchdog-design.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E drivers/watchdog/artinchip_wdt.c Linux \u63D0\u4F9B\u4E86\u4E00\u4E2A Watchdog \u5B50\u7CFB\u7EDF\uFF08\u7B80\u79F0 Watchdog Core\uFF09\uFF0C\u4F7F\u5F97\u5728\u7528\u6237\u7A7A\u95F4\u53EF\u4EE5\u901A\u8FC7 /dev/watchdogX \u6765\u8BBF\u95EE Watchdog \u63A7\u5236\u5668\u3002\u4E3A\u4E86\u66F4\u65B9\u4FBF\u67E5\u770B\u786C\u4EF6\u72B6\u6001\u548C\u53C2\u6570\u8BBE\u7F6E\uFF0C\u672C\u9A71\u52A8\u53E6\u5916\u6269\u5C55\u4E86\u51E0\u4E2A sysfs \u8282\u70B9\u3002 \u6574\u4E2A\u8F6F\u4EF6\u6846\u67B6\u53EF\u4EE5\u7B80\u5355\u62BD\u8C61\u4E3A\u4E0B\u56FE\uFF1A \u56FE 1 . Linux...","topics/sdk/watchdog/watchdog-faq.html@@@\u5E38\u89C1\u95EE\u9898@@@\u65E0...","topics/sdk/watchdog/watchdog-interface-design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@\u4EE5\u4E0B\u63A5\u53E3\u662F Linux Watchdog \u5B50\u7CFB\u7EDF\u9700\u8981\u7684\u6807\u51C6\u63A5\u53E3\u3002 \u5916\u90E8\u63A5\u53E3 Linux \u5BF9\u7528\u6237\u6001\u63D0\u4F9B\u4E86\u4E00\u7EC4 Watchdog \u7684 ioctl \u63A5\u53E3\uFF0C\u7528\u6237\u6001\u53EF\u4EE5\u901A\u8FC7\u8BBE\u5907\u8282\u70B9 /dev/watchdogX \u6765\u8BBF\u95EE\uFF1A\uFF08\u8BE6\u89C1 include/upai/linux/watchdog.h \uFF09 struct watchdog_info { __u32 options; /* Options the...","topics/sdk/watchdog/watchdog-key-procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u521D\u59CB\u5316\u6D41\u7A0B WDT \u9A71\u52A8\u7684\u521D\u59CB\u5316\u8FC7\u7A0B\u89C1 aic_wdt_probe() \u51FD\u6570\uFF0C\u9664\u4E86\u666E\u901A platform \u8BBE\u5907\u7684\u5904\u7406\u8FC7\u7A0B\uFF08\u7533\u8BF7 regs \u8D44\u6E90\u3001clk\u3001reset\uFF09\u5916\uFF0C\u9700\u8981\u8C03\u7528 WDT \u5B50\u7CFB\u7EDF\u7684\u63A5\u53E3 devm_watchdog_register_device() \u6765\u6CE8\u518C WDT \u8BBE\u5907\u3002 int devm_watchdog_register_device( struct device *dev...","topics/sdk/watchdog/watchdog-test-guide.html@@@\u6D4B\u8BD5\u6307\u5357@@@\u51C6\u5907\u6D4B\u8BD5\u73AF\u5883 Watchdog \u6D4B\u8BD5\u6240\u9700\u7684\u6D4B\u8BD5\u73AF\u5883\u5982\u4E0B\uFF1A \u786C\u4EF6 \uFF1A\u5F00\u53D1\u677F\uFF0C\u6216 D211 \u7684 FPGA \u677F \u8F6F\u4EF6 \uFF1A PC \u7AEF\u7684\u4E32\u53E3\u7EC8\u7AEF\u8F6F\u4EF6\uFF0C\u7528\u4E8E PC \u548C\u5F00\u53D1\u677F\u8FDB\u884C\u4E32\u53E3\u901A\u4FE1 Luban \u4E2D\u5E26\u6709\u7684 test_wdt \u6D4B\u8BD5\u5DE5\u5177 \u6253\u5F00 test-wdt \u5728 Luban \u7684\u6839\u76EE\u5F55\u4E0B\u6267\u884C make menuconfig \u547D\u4EE4\uFF0C\u6253\u5F00 test-watchdog \u9009\u9879\uFF1A ArtInChip packages...","topics/sdk/watchdog/watchdog-time-data-lost.html@@@wdt \u8BBE\u7F6E pretimeout \u5931\u8D25@@@\u6267\u884C wdt -s x -p y \u5931\u8D25\uFF0C\u62A5\u65E0\u6548\u7684 timeout\u3002 Cause Linux \u7684 Watchdog \u5B50\u7CFB\u7EDF\u4E2D\u5BF9 timeout \u548C pretimeout \u53C2\u6570\u6709\u9650\u5236\uFF1Apretimeout \u5FC5\u987B\u5C0F\u4E8E timeout\uFF0C\u5982\u679C\u4E0D\u7B26\u5408\u8FD9\u4E2A\u6761\u4EF6\u5C31\u4F1A\u8BBE\u7F6E\u5931\u8D25\u3002 Remedy \u8FC7\u7A0B \u8BBE\u7F6E pretimeout \u5C0F\u4E8E timeout\u3002...","topics/sdk/watchdog/watchdog-user-guide.html@@@Watchdog \u4F7F\u7528\u6307\u5357@@@\u770B\u95E8\u72D7 (Watchdog, WDT) \u5B9A\u65F6\u5668\u53EF\u4EE5\u76D1\u63A7\u7CFB\u7EDF\u7684\u5065\u5EB7\u72B6\u6001\uFF0C\u5E76\u5728\u7CFB\u7EDF\u65E0\u6CD5\u6B63\u5E38\u4F7F\u7528\u65F6\uFF0C\u5F3A\u5236\u590D\u4F4D\u7CFB\u7EDF\u3002\u770B\u95E8\u72D7\u5185\u90E8\u6709\u4E00\u4E2A\u9012\u51CF\u8BA1\u6570\u5668\uFF0C\u5728\u7CFB\u7EDF\u6B63\u5E38\u8FD0\u884C\u671F\u95F4\uFF0C\u901A\u8FC7\u91CD\u7F6E\u8BA1\u6570\u53EF\u4EE5\u4FDD\u8BC1\u770B\u95E8\u72D7\u6A21\u5757\u4E0D\u89E6\u53D1\u590D\u4F4D\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E WDT Watchdog\uFF0C\u4E0B\u6587\u7B80\u79F0 wdt \u770B\u95E8\u72D7 clr_thd Clear threshold \u6E05\u770B\u95E8\u72D7\u7684\u8BA1\u6570\u65F6\uFF0C\u5F53\u524D\u8BA1\u6570\u5FC5\u987B\u8981\u6EE1\u8DB3\u6B64\u95E8\u9650...","topics/sdk/wifi/wifi-debug-guide.html@@@WiFi@@@...","topics/sdk/wifi/wifi-rtl8821cs.html@@@rtl8821CS@@@\u672C\u8282\u63CF\u8FF0\u4E86\u5728 Linux \u5185\u6838\u4E2D\u6DFB\u52A0\u548C\u914D\u7F6E Realtek RTL8821CS SDIO WiFi \u9A71\u52A8\u7A0B\u5E8F\u7684\u8BE6\u7EC6\u6B65\u9AA4\u3002 Luban \u7684 Kernel \u7248\u672C\u4E3A 5.10\uFF0C \u5EFA\u8BAE\u83B7\u53D6\u5B98\u65B9\u6700\u65B0\u9A71\u52A8\u7248\u672C\uFF0C\u4F7F\u7528 Kernel 5.10 \u6216\u66F4\u9AD8\u7248\u672C\u3002 \u6267\u884C\u4E0B\u5217\u6B65\u9AA4\u83B7\u53D6\u6E90\u7801\uFF1A \u5728 source/linux-5.10/drivers/net/wireless/realtek \u4E2D\u521B\u5EFA rtl8821CS...","topics/sdk/wri/wri-configuration.html@@@WRI \u914D\u7F6E@@@\u5185\u6838\u914D\u7F6E \u5728 SDK \u6839\u76EE\u5F55\u4E0B\uFF0C\u6267\u884C\u4E0B\u5217\u547D\u4EE4\uFF0C\u8FDB\u5165 kernel \u7684\u529F\u80FD\u914D\u7F6E\u754C\u9762\uFF1A make kernel-menuconfig \u6216\u4F7F\u7528\u7B80\u5199\u547D\u4EE4 make km \u5728\u5185\u6838\u914D\u7F6E\u754C\u9762\uFF0C\u6309\u5982\u4E0B\u9009\u62E9\uFF1A Linux Device Drivers Misc devices [*] WRI driver for ArtInChip Soc DTS \u53C2\u6570\u914D\u7F6E common/d211.dtsi \u4E2D\u7684\u53C2\u6570\u914D\u7F6E\uFF1A...","topics/sdk/wri/wri-data_structure.html@@@\u6570\u636E\u7ED3\u6784\u8BBE\u8BA1@@@WRI \u6570\u636E\u7C7B\u578B\u53CA\u5176\u7ED3\u6784\u63CF\u8FF0\u5982\u4E0B\uFF1A aic_wri_dev \uFF1A\u8BB0\u5F55 WRI \u63A7\u5236\u5668\u7684\u914D\u7F6E\u4FE1\u606F\u3002 struct aic_wri_dev { struct attribute_group attrs; struct platform_device *pdev; struct device *dev; void __iomem *regs; }; enum aic_warm_reset_type \uFF1A\u5B9A\u4E49...","topics/sdk/wri/wri-debug_guide.html@@@\u8C03\u8BD5\u6307\u5357@@@\u67E5\u770B Sysfs \u8282\u70B9\u72B6\u6001 \u5728 WRI \u9A71\u52A8\u521D\u59CB\u5316\u6210\u529F\u540E\uFF0C\u4F1A\u5728 Sysfs \u4E2D\u6CE8\u518C\u751F\u6210\u4E00\u4E2A reboot_reason \u8282\u70B9\uFF0C\u5176\u4E2D\u6253\u5370\u4E86\u5F53\u524D\u7684 reboot \u914D\u7F6E\u53CA\u72B6\u6001\u4FE1\u606F\uFF1A \u8FDB\u5165\u4E0E WRI \u76F8\u5173\u7684 Sysfs \u76EE\u5F55 cd /sys/devices/platform/soc/ 1900f 000.wri/ \u67E5\u770B reboot_reason \u8282\u70B9\u4FE1\u606F\uFF0C\u4EE5\u83B7\u53D6\u5F53\u524D\u7684 reboot \u914D\u7F6E\u53CA\u72B6\u6001\u4FE1\u606F\uFF1A...","topics/sdk/wri/wri-design_intro.html@@@\u8BBE\u8BA1\u8BF4\u660E@@@\u6E90\u4EE3\u7801\u4F4D\u4E8E WRI V1.0\uFF1A drivers/misc/artinchip-wri.c...","topics/sdk/wri/wri-interface_design.html@@@\u63A5\u53E3\u8BBE\u8BA1@@@WRI \u76F8\u5173\u7684\u5185\u90E8\u63A5\u53E3 \u8868 1 . aic_hw_type_get \u51FD\u6570\u539F\u578B enum aic_warm_reset_type aic_hw_type_get(void __iomem *regs) \u529F\u80FD\u8BF4\u660E \u8BFB\u53D6\u4E0A\u4E00\u6B21 reboot \u786C\u4EF6\u539F\u56E0 \u53C2\u6570\u5B9A\u4E49 regs - \u6307\u5411 WRI \u5BC4\u5B58\u5668\u7684\u6307\u9488 \u8FD4\u56DE\u503C \u6696\u590D\u4F4D\u539F\u56E0\u7C7B\u578B \u6CE8\u610F\u4E8B\u9879 - \u8868 2 . aic_judge_reboot_reason...","topics/sdk/wri/wri-key_procedures.html@@@\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1@@@\u672C\u8282\u63CF\u8FF0\u4E86 WRI \u6A21\u5757\u7684\u5173\u952E\u6D41\u7A0B\u8BBE\u8BA1\u3002 Reboot Reason \u7684\u8BBE\u8BA1 WRI \u6A21\u5757\u9700\u8981\u548C RTC \u6A21\u5757\u7684 SYS_BAK \u5BC4\u5B58\u5668\u4E00\u8D77\u914D\u5408\u6765\u5B8C\u6210 Reboot Reason \u7684\u5904\u7406\uFF1A WRI \u8D1F\u8D23\u8BB0\u5F55\u786C\u4EF6\u53EF\u76D1\u6D4B\u5230\u7684 Reboot \u539F\u56E0\uFF0C\u5982\u8FC7\u6E29\u4FDD\u62A4\u3001\u770B\u95E8\u72D7\u590D\u4F4D\u3001\u5916\u90E8\u8F93\u5165\u590D\u4F4D\u7B49\u3002 SYS_BAK \u8D1F\u8D23\u8BB0\u5F55\u8F6F\u4EF6\u53EF\u76D1\u6D4B\u5230\u7684 Reboot \u539F\u56E0\uFF0C\u5982...","topics/sdk/wri/wri-user-guide.html@@@WRI \u4F7F\u7528\u6307\u5357@@@Warm Reset Information (WRI) \u6A21\u5757\u7528\u4E8E\u8BB0\u5F55\u6696\u590D\u4F4D\u53D1\u751F\u7684\u72B6\u6001\u4FE1\u606F\uFF0C \u63D0\u4F9B\u5F15\u8D77\u6B7B\u673A\u91CD\u542F\u7684\u539F\u56E0\u5206\u6790\uFF0C\u5305\u62EC\u6709\u590D\u4F4D\u4EA7\u751F\u6765\u6E90\u8BB0\u5F55\u7B49\u3002 \u8868 1 . \u672F\u8BED\u5B9A\u4E49 \u672F\u8BED \u5B9A\u4E49 \u6CE8\u91CA\u8BF4\u660E WRI Warm Reset Information \u6696\u590D\u4F4D\u4FE1\u606F...","topics/tools/AiBurn-burn-image.html@@@\u70E7\u5199\u955C\u50CF (USB)@@@\u5F53\u8BBE\u5907\u8FDE\u4E0A PC \u540E\uFF0C \u8BBE\u5907 \u56FE\u6807\u4F1A\u53D8\u6210\u84DD\u8272\uFF0C\u8868\u793A\u8FDE\u63A5\u6210\u529F\u3002 \u6B64\u65F6\uFF0C \u5F00\u59CB \u6309\u94AE\u624D\u53EF\u7528\u3002 \u70E7\u5199\u8FC7\u7A0B\uFF0C \u5F00\u59CB \u6309\u94AE\u5C06\u53D8\u6210 \u505C\u6B62 \uFF0C\u652F\u6301\u7528\u6237\u4E2D\u6B62\u70E7\u5199\u8FC7\u7A0B\u3002\u70E7\u5199\u8FC7\u7A0B\u4E2D\u7981\u6B62\u5207\u6362\u5230 \u5236\u4F5C\u542F\u52A8\u5361 \u6807\u7B7E\u9875\u7684\u754C\u9762\uFF0C\u540C\u7406\uFF0C\u5728\u5236\u4F5C\u81EA\u52A8\u5361\u7684\u8FC7\u7A0B\u4E2D\u4E5F\u4F1A\u7981\u6B62\u5207\u6362\u5230 \u70E7\u5199\u955C\u50CF \u754C\u9762\u3002 \u70E7\u5199\u8FC7\u7A0B\u4E2D\uFF0C\u754C\u9762\u4E2D\u95F4\u533A\u57DF\u4F1A\u663E\u793A\u8FDB\u5EA6\u3001\u901F\u7387\u3001\u7528\u65F6\u7B49\u4FE1\u606F\uFF0C\u70E7\u5199\u7ED3\u675F\u540E\u4F1A\u663E\u793A\u7ED3\u679C\u3002..."];