mirror of
https://github.com/sipeed/sipeed_wiki.git
synced 2026-09-11 00:22:49 -05:00
update
This commit is contained in:
@@ -104,13 +104,6 @@ Video of M1s Dock and M0Sense:M1s Dock is before 3:15,and time after 3:15 is
|
||||
|
||||
### Function block
|
||||
|
||||
<!-- <table width=40%>
|
||||
<tr>
|
||||
<td><img alt="m1s_dock_function_block_top" src="./../../../zh/maix/m1s/assets/m1s_dock/m1s_dock_function_block_top.jpg"></td>
|
||||
<td><img alt="m1s_dock_function_block_top" src="./../../../zh/maix/m1s/assets/m1s_dock/m1s_dock_function_block_top.jpg"></td>
|
||||
</tr>
|
||||
</table> -->
|
||||
|
||||
<img alt="m1s_dock_function_block_top" src="./../../../zh/maix/m1s/assets/m1s_dock/m1s_dock_function_block_top.jpg" width=20%>
|
||||
<img alt="m1s_dock_function_block_top" src="./../../../zh/maix/m1s/assets/m1s_dock/m1s_dock_function_block_top.jpg" width=20%>
|
||||
|
||||
@@ -124,20 +117,20 @@ Video of M1s Dock and M0Sense:M1s Dock is before 3:15,and time after 3:15 is
|
||||
|
||||
## Comparison
|
||||
|
||||
| Item | Maix Bit | ESP32 cam | M1s Dock |
|
||||
| :------ | :----------------------- | :---------------------------- | :----------------------------------------- |
|
||||
| MainChip | K210 | ESP32 | M1s(BL808) |
|
||||
| Camera | 0.3MP DVP GC0328 | 2MP DVP OV2640 with flash LED | 2MP MIPI OV2685(two-side) with flash LED |
|
||||
| Screen | 2.4 inch 320x240 | | 1.68 inch 280x240 capacitive touch screen |
|
||||
| Audio | I2S MEMS MIC | | Analog MEMS MIC + LineOut |
|
||||
| SD Card Slot | SPI mode | SPI mode | · SDHC mode <br>· JTAG mode |
|
||||
| Key | Reset <br> Boot | Reset | · Reset <br>· Boot <br>· User x 2 |
|
||||
| USB | USB to Serial x 1 | | · USB to Dual Serial x 1 <br>· USB OTG HS |
|
||||
| Other | | | 4P x 1.25mm connector(UART port) |
|
||||
| Pin |· 2 x 18 pins <br>· bread board friendly| 2 x 8 pins |· 2 x 16 pins<br>· bread board friendly |
|
||||
| JTAG | | | Optional TF2JTAG |
|
||||
| SHell | | | Optional |
|
||||
| 尺寸 | 25 x 53 mm | 27 x 41 mm | 27 x 55 mm |
|
||||
| Item | Maix Bit | ESP32 cam | M1s Dock |
|
||||
| :----------- | :--------------------------------------- | :---------------------------- | :---------------------------------------- |
|
||||
| MainChip | K210 | ESP32 | M1s(BL808) |
|
||||
| Camera | 0.3MP DVP GC0328 | 2MP DVP OV2640 with flash LED | 2MP MIPI OV2685(two-side) with flash LED |
|
||||
| Screen | 2.4 inch 320x240 | | 1.68 inch 280x240 capacitive touch screen |
|
||||
| Audio | I2S MEMS MIC | | Analog MEMS MIC + LineOut |
|
||||
| SD Card Slot | SPI mode | SPI mode | · SDHC mode <br>· JTAG mode |
|
||||
| Key | Reset <br> Boot | Reset | · Reset <br>· Boot <br>· User x 2 |
|
||||
| USB | USB to Serial x 1 | | · USB to Dual Serial x 1 <br>· USB OTG HS |
|
||||
| Other | | | 4P x 1.25mm connector(UART port) |
|
||||
| Pin | · 2 x 18 pins <br>· bread board friendly | 2 x 8 pins | · 2 x 16 pins<br>· bread board friendly |
|
||||
| JTAG | | | Optional TF2JTAG |
|
||||
| Shell | | | Optional |
|
||||
| Size | 25 x 53 mm | 27 x 41 mm | 27 x 55 mm |
|
||||
|
||||
## Software
|
||||
|
||||
@@ -177,6 +170,112 @@ Video of M1s Dock and M0Sense:M1s Dock is before 3:15,and time after 3:15 is
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Operators list
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Operators</th>
|
||||
<th>Applicable Subset Spec.</th>
|
||||
<th>Processor</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="10">Convolution</td>
|
||||
<td rowspan="4">Conv </td>
|
||||
<td>Kernel: 1x1,3x3,5x5,7x7</td>
|
||||
<td rowspan="4">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dilation: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pad: same</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">Depthwise Conv</td>
|
||||
<td>Kernel: 1x1,3x3 (5x5, 7x7 TBD)</td>
|
||||
<td rowspan="4">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dilation: 1x1 (2x2 TBD)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pad: same</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">Transpose Conv</td>
|
||||
<td>Kernel: 3x3</td>
|
||||
<td rowspan="2">strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">Pooling</td>
|
||||
<td rowspan="2">MaxPool (NPU TBD)</td>
|
||||
<td>Kerenl: 2x2</td>
|
||||
<td rowspan="2">DSP</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">MaxPool</td>
|
||||
<td>Kerenl: 3x3</td>
|
||||
<td rowspan="2">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">Activation</td>
|
||||
<td>Relu</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Relu 6</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="5">Other processing</td>
|
||||
<td>BatchNormalization</td>
|
||||
<td>fused with conv</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add (shortcut)</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Concat (route)</td>
|
||||
<td>Channel wise (AXIS 3 in BHWC)</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fully Connected</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Upsample</td>
|
||||
<td>Nearest</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Links
|
||||
|
||||
- [Datasheet](https://dl.sipeed.com/shareURL/MAIX/M1s/M1s_Dock/1_Specification)
|
||||
@@ -190,7 +289,7 @@ Video of M1s Dock and M0Sense:M1s Dock is before 3:15,and time after 3:15 is
|
||||
|
||||
---
|
||||
|
||||
- [SDK](https://github.com/sipeed/M1s_BL808_SDK) (Github)
|
||||
- [SDK](https://github.com/sipeed/M1s_BL808_SDK) (Github)
|
||||
- [Examples](https://github.com/sipeed/M1s_BL808_example)(Github)
|
||||
- [Linux](https://github.com/sipeed/M1s_BL808_Linux_SDK)(Github)
|
||||
- [Telegram](https://t.me/sipeed)
|
||||
@@ -198,7 +297,6 @@ Video of M1s Dock and M0Sense:M1s Dock is before 3:15,and time after 3:15 is
|
||||
- [Reddit](https://www.reddit.com/r/Sipeed/)
|
||||
- [Online model platform](https://maixhub.com/)
|
||||
|
||||
|
||||
## Attention
|
||||
|
||||
<table>
|
||||
|
||||
@@ -239,6 +239,112 @@ Visit Schematic for details:[Click me](https://dl.sipeed.com/shareURL/MAIX/M1s
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Operators list
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Operators</th>
|
||||
<th>Applicable Subset Spec.</th>
|
||||
<th>Processor</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="10">Convolution</td>
|
||||
<td rowspan="4">Conv </td>
|
||||
<td>Kernel: 1x1,3x3,5x5,7x7</td>
|
||||
<td rowspan="4">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dilation: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pad: same</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">Depthwise Conv</td>
|
||||
<td>Kernel: 1x1,3x3 (5x5, 7x7 TBD)</td>
|
||||
<td rowspan="4">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dilation: 1x1 (2x2 TBD)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pad: same</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">Transpose Conv</td>
|
||||
<td>Kernel: 3x3</td>
|
||||
<td rowspan="2">strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">Pooling</td>
|
||||
<td rowspan="2">MaxPool (NPU TBD)</td>
|
||||
<td>Kerenl: 2x2</td>
|
||||
<td rowspan="2">DSP</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">MaxPool</td>
|
||||
<td>Kerenl: 3x3</td>
|
||||
<td rowspan="2">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">Activation</td>
|
||||
<td>Relu</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Relu 6</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="5">Other processing</td>
|
||||
<td>BatchNormalization</td>
|
||||
<td>fused with conv</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add (shortcut)</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Concat (route)</td>
|
||||
<td>Channel wise (AXIS 3 in BHWC)</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fully Connected</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Upsample</td>
|
||||
<td>Nearest</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Links
|
||||
|
||||
- [Datasheet](https://dl.sipeed.com/shareURL/MAIX/M1s/M1s/1_Specification)
|
||||
|
||||
@@ -18,7 +18,7 @@ The led lights up when M0sense is powered on, and the screen displays spectrum d
|
||||
|
||||
## Burn by U-Disk
|
||||
|
||||
M0sense can be burned by draging and dropoing firmware to u-disk.
|
||||
M0sense can be burned by dragging and dropping firmware to u-disk.
|
||||
|
||||
Hold BOOT key, then click RST key once, a removable disk is shown in computer.
|
||||
|
||||
@@ -28,9 +28,9 @@ Just drag the firmware you want to burn and drop it in the removable disk, the r
|
||||
|
||||

|
||||
|
||||
Here are some demos [Click me](https://dl.sipeed.com/shareURL/Maix-Zero/Maix-Zero/7_Example_demos), just use them by draging and dropoing firmware to u-disk to see their result, the source codes are in [github](https://github.com/sipeed/M0sense_BL702_example).
|
||||
Here are some demos [Click me](https://dl.sipeed.com/shareURL/Maix-Zero/Maix-Zero/7_Example_demos), just use them by dragging and dropping firmware to u-disk to see their result, the source codes are in [github](https://github.com/sipeed/M0sense_BL702_example).
|
||||
|
||||
And the result of each demo is as following:
|
||||
And the result of each demo is as follows:
|
||||
|
||||
### hello_world.uf2
|
||||
|
||||
@@ -40,7 +40,7 @@ Run serial application, and open the serial port, `Hello, World` is being printe
|
||||
|
||||
### blink_baremetal.uf2
|
||||
|
||||
Draging and dropoing this file to u-disk, then repower M0sense, LED flashes, open the serial port the LED states are printed.
|
||||
Dragging and dropping this file to u-disk, then repower M0sense, LED flashes, open the serial port and the LED states are printed.
|
||||
|
||||
- Open the serial port
|
||||
|
||||
@@ -52,7 +52,7 @@ Draging and dropoing this file to u-disk, then repower M0sense, LED flashes, ope
|
||||
|
||||
### blink_rtos.uf2
|
||||
|
||||
This demo is the same effect as the privious one, but this demo is based on RTOS.
|
||||
This demo has the same effect as the previous one, but this demo is based on RTOS.
|
||||
|
||||
- Open the serial port
|
||||
|
||||
@@ -88,7 +88,7 @@ The detailed usage can be analysised by reading <a href="https://github.com/Sipe
|
||||
|
||||
### audio_recording.uf2
|
||||
|
||||
Burn this demo to M0sense, the 16bit pcm format data of onboard microphone is printed by serial port.
|
||||
Burn this demo to M0sense, the 16bit pcm format data of the onboard microphone is printed by serial port.
|
||||
|
||||

|
||||
|
||||
@@ -185,7 +185,7 @@ M0sense_BL702_example/
|
||||
|
||||
Make sure you are in `M0sense_BL702_example` dictionary.
|
||||
|
||||
Before put the patch, we need set username and email, just set what you like.
|
||||
Before putting the patch, we need to set username and email, just set what you like.
|
||||
|
||||
```bash
|
||||
cd bl_mcu_sdk
|
||||
@@ -199,7 +199,7 @@ cd ..
|
||||
./build.sh patch
|
||||
```
|
||||
|
||||
When it shows `Apply patch for you!`, we succeed doing this.
|
||||
When it shows `Apply patch for you!`, we succeed in doing this.
|
||||
|
||||

|
||||
|
||||
@@ -238,7 +238,7 @@ If not set the path right, the command `riscv64-unknown-elf-gcc` will be shown n
|
||||
|
||||
Before compiling demo first time, we need to compile the firmware conversion application on the computer for dragging and burning firmware by u-disk.
|
||||
|
||||
Run followinf command in the dictionary of `M0sense_BL702_example` .
|
||||
Run following command in the dictionary of `M0sense_BL702_example` .
|
||||
|
||||
```bash
|
||||
sudo apt install gcc # Install gcc
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
"file": "maix/m1s/m1s_module.md"
|
||||
},
|
||||
{
|
||||
"label": "M1s Board",
|
||||
"label": "M1s Dock",
|
||||
"items": [
|
||||
{
|
||||
"label": "Introduction",
|
||||
@@ -99,6 +99,10 @@
|
||||
{
|
||||
"label": "M0sense Board",
|
||||
"file": "./maixzero/sense/maix_zero_sense.md"
|
||||
},
|
||||
{
|
||||
"label": "M0sense Guide",
|
||||
"file": "./maixzero/sense/start.md"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -33,13 +33,13 @@ M1s Dock 和 M0Sense 总览:3:15 之前的都是 M1s Dock。
|
||||
|
||||
## 板卡特点
|
||||
|
||||
- 主芯片 BL808 RISC-V 480Mhz + NPU BLAI-100
|
||||
- 板载 USB 转 UART 调试器(可实现一键点击烧录,无需按实体按键)
|
||||
- 板载显示屏座子(可选配 1.69 寸 240x280 电容触摸屏)
|
||||
- 板载 MIPI 摄像头座子(可选配 200W 像素摄像头)
|
||||
- 支持 2.4G WIFI / BT / BLE
|
||||
- 板载 1 个模拟麦克风、1 个 LED、1 个 TF 卡座
|
||||
- 引出一路 USB-OTG 到 USB Type-C 接口
|
||||
- 主芯片 BL808 RISC-V 480Mhz + NPU BLAI-100
|
||||
- 板载 USB 转 UART 调试器(可实现一键点击烧录,无需按实体按键)
|
||||
- 板载显示屏座子(可选配 1.69 寸 240x280 电容触摸屏)
|
||||
- 板载 MIPI 摄像头座子(可选配 200W 像素摄像头)
|
||||
- 支持 2.4G WIFI / BT / BLE
|
||||
- 板载 1 个模拟麦克风、1 个 LED、1 个 TF 卡座
|
||||
- 引出一路 USB-OTG 到 USB Type-C 接口
|
||||
|
||||
### 硬件参数
|
||||
|
||||
@@ -115,14 +115,6 @@ M1s Dock 和 M0Sense 总览:3:15 之前的都是 M1s Dock。
|
||||
|
||||
### 外设框图
|
||||
|
||||
<!-- <table>
|
||||
<tr>
|
||||
<td><img alt="m1s_dock_function_block_top" src="./assets/m1s_dock/m1s_dock_function_block_top.jpg" width=40%></td>
|
||||
<td><img alt="m1s_dock_function_block_top" src="./assets/m1s_dock/m1s_dock_function_block_top.jpg" width=40%></td>
|
||||
</tr>
|
||||
</table> -->
|
||||
|
||||
|
||||
<img alt="m1s_dock_function_block_top" src="./assets/m1s_dock/m1s_dock_function_block_top.jpg" width=20%>
|
||||
<img alt="m1s_dock_function_block_top" src="./assets/m1s_dock/m1s_dock_function_block_top.jpg" width=20%>
|
||||
|
||||
@@ -136,20 +128,20 @@ M1s Dock 和 M0Sense 总览:3:15 之前的都是 M1s Dock。
|
||||
|
||||
## 产品对比
|
||||
|
||||
| 项目 | Maix Bit | ESP32 cam | M1s Dock |
|
||||
| :------ | :----------------------- | :---------------------------- | :----------------------------------------- |
|
||||
| 处理器 | K210 | ESP32 | M1s(BL808) |
|
||||
| 摄像头 | 0.3MP DVP GC0328 | 2MP DVP OV2640 with flash LED | 2MP MIPI OV2685(two-side) with flash LED |
|
||||
| 显示屏 | 2.4 inch 320x240 | | 1.68 inch 280x240 带电容触摸 |
|
||||
| 音频 | I2S MEMS MIC | | Analog MEMS MIC + LineOut |
|
||||
| SD 卡槽 | SPI 模式 | SPI 模式 | · SDHC 模式 <br>· JTAG 模式 |
|
||||
| 按键 | Reset <br> Boot | Reset | · Reset <br>· Boot <br>· User x 2 |
|
||||
| USB | USB to Serial x 1 | | · USB to Dual Serial x 1 <br>· USB OTG HS |
|
||||
| 其他 | | | 4P x 1.25mm 连接器(串口) |
|
||||
| 引脚 | 2 x 18 pins,可用于面包板 | 2 x 8 pins | 2 x 16 pins,可用于面包板 |
|
||||
| JTAG | | | 可选 TF2JTAG |
|
||||
| 外壳 | | | 可选 |
|
||||
| 尺寸 | 25 x 53 mm | 27 x 41 mm | 27 x 55 mm |
|
||||
| 项目 | Maix Bit | ESP32 cam | M1s Dock |
|
||||
| :------ | :----------------------- | :---------------------------- | :---------------------------------------- |
|
||||
| 处理器 | K210 | ESP32 | M1s(BL808) |
|
||||
| 摄像头 | 0.3MP DVP GC0328 | 2MP DVP OV2640 with flash LED | 2MP MIPI OV2685(two-side) with flash LED |
|
||||
| 显示屏 | 2.4 inch 320x240 | | 1.68 inch 280x240 带电容触摸 |
|
||||
| 音频 | I2S MEMS MIC | | Analog MEMS MIC + LineOut |
|
||||
| SD 卡槽 | SPI 模式 | SPI 模式 | · SDHC 模式 <br>· JTAG 模式 |
|
||||
| 按键 | Reset <br> Boot | Reset | · Reset <br>· Boot <br>· User x 2 |
|
||||
| USB | USB to Serial x 1 | | · USB to Dual Serial x 1 <br>· USB OTG HS |
|
||||
| 其他 | | | 4P x 1.25mm 连接器(串口) |
|
||||
| 引脚 | 2 x 18 pins,可用于面包板 | 2 x 8 pins | 2 x 16 pins,可用于面包板 |
|
||||
| JTAG | | | 可选 TF2JTAG |
|
||||
| 外壳 | | | 可选 |
|
||||
| 尺寸 | 25 x 53 mm | 27 x 41 mm | 27 x 55 mm |
|
||||
|
||||
## 软件描述
|
||||
|
||||
@@ -187,6 +179,112 @@ M1s Dock 和 M0Sense 总览:3:15 之前的都是 M1s Dock。
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## 支持算子列表
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Operators</th>
|
||||
<th>Applicable Subset Spec.</th>
|
||||
<th>Processor</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="10">Convolution</td>
|
||||
<td rowspan="4">Conv </td>
|
||||
<td>Kernel: 1x1,3x3,5x5,7x7</td>
|
||||
<td rowspan="4">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dilation: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pad: same</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">Depthwise Conv</td>
|
||||
<td>Kernel: 1x1,3x3 (5x5, 7x7 TBD)</td>
|
||||
<td rowspan="4">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dilation: 1x1 (2x2 TBD)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pad: same</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">Transpose Conv</td>
|
||||
<td>Kernel: 3x3</td>
|
||||
<td rowspan="2">strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">Pooling</td>
|
||||
<td rowspan="2">MaxPool (NPU TBD)</td>
|
||||
<td>Kerenl: 2x2</td>
|
||||
<td rowspan="2">DSP</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">MaxPool</td>
|
||||
<td>Kerenl: 3x3</td>
|
||||
<td rowspan="2">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">Activation</td>
|
||||
<td>Relu</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Relu 6</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="5">Other processing</td>
|
||||
<td>BatchNormalization</td>
|
||||
<td>fused with conv</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add (shortcut)</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Concat (route)</td>
|
||||
<td>Channel wise (AXIS 3 in BHWC)</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fully Connected</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Upsample</td>
|
||||
<td>Nearest</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## 补充资料
|
||||
|
||||
- [规格书](https://dl.sipeed.com/shareURL/MAIX/M1s/M1s_Dock/1_Specification)
|
||||
@@ -200,7 +298,7 @@ M1s Dock 和 M0Sense 总览:3:15 之前的都是 M1s Dock。
|
||||
|
||||
---
|
||||
|
||||
- [SDK](https://gitee.com/sipeed/M1s_BL808_SDK) (gitee)
|
||||
- [SDK](https://gitee.com/sipeed/M1s_BL808_SDK) (gitee)
|
||||
- [Examples](https://gitee.com/sipeed/M1s_BL808_example)(gitee)
|
||||
- [Linux](https://github.com/sipeed/M1s_BL808_Linux_SDK)(Github)
|
||||
- 交流 QQ 群:`816177882` 。[点我加群](https://jq.qq.com/?_wv=1027&k=0fOkj3EB)
|
||||
|
||||
@@ -244,6 +244,112 @@ Sipeed M1s 模组是基于[博流智能科技](http://www.bouffalolab.com/)的 B
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## 支持算子列表
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Operators</th>
|
||||
<th>Applicable Subset Spec.</th>
|
||||
<th>Processor</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="10">Convolution</td>
|
||||
<td rowspan="4">Conv </td>
|
||||
<td>Kernel: 1x1,3x3,5x5,7x7</td>
|
||||
<td rowspan="4">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dilation: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pad: same</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">Depthwise Conv</td>
|
||||
<td>Kernel: 1x1,3x3 (5x5, 7x7 TBD)</td>
|
||||
<td rowspan="4">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dilation: 1x1 (2x2 TBD)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pad: same</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">Transpose Conv</td>
|
||||
<td>Kernel: 3x3</td>
|
||||
<td rowspan="2">strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">Pooling</td>
|
||||
<td rowspan="2">MaxPool (NPU TBD)</td>
|
||||
<td>Kerenl: 2x2</td>
|
||||
<td rowspan="2">DSP</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">MaxPool</td>
|
||||
<td>Kerenl: 3x3</td>
|
||||
<td rowspan="2">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">Activation</td>
|
||||
<td>Relu</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Relu 6</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="5">Other processing</td>
|
||||
<td>BatchNormalization</td>
|
||||
<td>fused with conv</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add (shortcut)</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Concat (route)</td>
|
||||
<td>Channel wise (AXIS 3 in BHWC)</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fully Connected</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Upsample</td>
|
||||
<td>Nearest</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## 模组资料
|
||||
|
||||
- [规格书](https://dl.sipeed.com/shareURL/MAIX/M1s/M1s/1_Specification)
|
||||
|
||||
@@ -75,7 +75,7 @@ M1s Dock 设计精巧,可以用来所很多有意思的事,这里简单说
|
||||
烧录进 M1s Dock 后,屏幕显示着 lvgl 测试效果,设置波特率为 2000000,串口号较小的串口打印着最后一次触摸屏幕位置。
|
||||
|
||||
<img src="./assets/start/example_lvgl.gif" alt="example_lvgl" width="45%">
|
||||
<img src="./assets/start/example_lvgl.jpg" alt="example_lvgl" width="45%">
|
||||
<img src="./assets/start/example_lvgl.jpg" alt="example_lvgl" width="45%">
|
||||
|
||||
### image_processing_demo
|
||||
|
||||
@@ -84,7 +84,7 @@ M1s Dock 设计精巧,可以用来所很多有意思的事,这里简单说
|
||||
烧录进 M1s Dock 后,屏幕上显示摄像头画面,按下两侧的按键可以切换不同的图像算子。设置波特率为 2000000,串口号较小的串口显示着上次按键和其他信息。
|
||||
|
||||
<img src="./assets/start/example_image_processing_demo.jpg" alt="example_image_processing_demo" width="45%">
|
||||
<img src="./assets/start/example_image_processing_demo_uart.jpg" alt="example_image_processing_demo_uart" width="45%">
|
||||
<img src="./assets/start/example_image_processing_demo_uart.jpg" alt="example_image_processing_demo_uart" width="45%">
|
||||
|
||||
### tinymaix_mnist_demo
|
||||
|
||||
@@ -93,7 +93,7 @@ M1s Dock 设计精巧,可以用来所很多有意思的事,这里简单说
|
||||
烧录进 M1s Dock 后,屏幕中间的红框识别数字。设置波特率为 2000000,串口号较小的串口打印着识别信息。
|
||||
|
||||
<img src="./assets/start/example_tinymaix_mnist_demo.jpg" alt="example_tinymaix_mnist_demo" width="45%">
|
||||
<img src="./assets/start/example_tinymaix_mnist_demo_uart.jpg" alt="example_tinymaix_mnist_demo_uart" width="45%">
|
||||
<img src="./assets/start/example_tinymaix_mnist_demo_uart.jpg" alt="example_tinymaix_mnist_demo_uart" width="45%">
|
||||
|
||||
### pikascript_demo
|
||||
|
||||
@@ -102,6 +102,7 @@ M1s Dock 设计精巧,可以用来所很多有意思的事,这里简单说
|
||||
烧录进 M1s Dock 后,屏幕白屏,无内容。设置波特率为 2000000,打开串口号较小的串口来进行命令行交互。
|
||||
|
||||
在命令行中输入这些指令:
|
||||
|
||||
```bash
|
||||
arc = lv.arc(lv.scr_act())
|
||||
arc.set_end_angle(200)
|
||||
@@ -133,7 +134,7 @@ arc.center()
|
||||
|
||||

|
||||
|
||||
启动软件后选择 bl808 ,紧接着软件的 IOT 页面选择分区表文件[点我下载](https://dl.sipeed.com/fileList/MAIX/M1s/M1s_Dock/7_Firmware/partition/partition_cfg_16M_m1sdock.toml)(图里②)。
|
||||
启动软件后选择 bl808 ,紧接着软件的 IOT 页面选择分区表文件[点我下载](https://dl.sipeed.com/fileList/MAIX/M1s/M1s_Dock/7_Firmware/partition/partition_cfg_16M_m1sdock.toml)(图里 ②)。
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
@@ -260,7 +261,7 @@ git clone https://gitee.com/sipeed/M1s_BL808_SDK.git
|
||||
最终结构树如下
|
||||
|
||||
```bash
|
||||
sipeed@DESKTOP:~$ tree -L 1
|
||||
sipeed@DESKTOP:~$ tree -L 1
|
||||
.
|
||||
├── M1s_BL808_example # 例程文件夹
|
||||
└── M1s_BL808_SDK # SDK 文件夹
|
||||
@@ -324,7 +325,7 @@ export BL_SDK_PATH=/home/lee/bl808/M1s_BL808_SDK
|
||||
|
||||
执行 M1s_BL808_example/c906_app 目录下的 build.sh ,后面追加上想要编译的 demo 就可以完成了。
|
||||
|
||||
Demo 如下(编辑于2022-12-13):
|
||||
Demo 如下(编辑于 2022-12-13):
|
||||
|
||||
```bash
|
||||
c906_app
|
||||
@@ -365,6 +366,7 @@ cd M1s_BL808_example/c906_app
|
||||
cd M1s_BL808_example/e907_app
|
||||
./build.sh firmware
|
||||
```
|
||||
|
||||
然后编译出来的固件就会在 M1s_BL808_example/e907_app/build_out 目录下,名称为 `firmware.bin`,博流官方的烧录工具烧录进去即可。
|
||||
|
||||
### 常见问题
|
||||
@@ -410,7 +412,7 @@ cd M1s_BL808_example/e907_app
|
||||
|
||||
前往 [下载站](https://dl.sipeed.com/shareURL/MAIX/M1s/M1s_Dock/9_Driver/cklink) 下载适合自己电脑的驱动。
|
||||
|
||||
#### 安装驱动
|
||||
#### Windows
|
||||
|
||||
解压 `T-Head-DebugServer-windows` 压缩包后,运行加压后的 `Setup` 程序来安装驱动。
|
||||
|
||||
@@ -432,7 +434,7 @@ cd M1s_BL808_example/e907_app
|
||||
|
||||

|
||||
|
||||
#### 安装驱动
|
||||
#### Linux
|
||||
|
||||
获得驱动:[点我](https://dl.sipeed.com/shareURL/MAIX/M1s/M1s_Dock/9_Driver/cklink)
|
||||
|
||||
@@ -524,11 +526,13 @@ sudo ./T-Head-DebugServer-linux-x86_64-V5.16.5-20221021.sh -i
|
||||
```bash
|
||||
.\DebugServerConsole.exe -h
|
||||
```
|
||||
|
||||

|
||||
|
||||
```bash
|
||||
.\DebugServerConsole.exe -port 65535
|
||||
```
|
||||
|
||||

|
||||
|
||||
就可以通过 65535 端口来调试了。
|
||||
@@ -544,6 +548,115 @@ sudo ./T-Head-DebugServer-linux-x86_64-V5.16.5-20221021.sh -i
|
||||
```bash
|
||||
DebugServerConsole -port 12345
|
||||
```
|
||||
|
||||

|
||||
|
||||
## blai_npu
|
||||
## blai_npu
|
||||
|
||||
### 支持算子
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Operators</th>
|
||||
<th>Applicable Subset Spec.</th>
|
||||
<th>Processor</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="10">Convolution</td>
|
||||
<td rowspan="4">Conv </td>
|
||||
<td>Kernel: 1x1,3x3,5x5,7x7</td>
|
||||
<td rowspan="4">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dilation: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pad: same</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">Depthwise Conv</td>
|
||||
<td>Kernel: 1x1,3x3 (5x5, 7x7 TBD)</td>
|
||||
<td rowspan="4">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dilation: 1x1 (2x2 TBD)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pad: same</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">Transpose Conv</td>
|
||||
<td>Kernel: 3x3</td>
|
||||
<td rowspan="2">strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">Pooling</td>
|
||||
<td rowspan="2">MaxPool (NPU TBD)</td>
|
||||
<td>Kerenl: 2x2</td>
|
||||
<td rowspan="2">DSP</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">MaxPool</td>
|
||||
<td>Kerenl: 3x3</td>
|
||||
<td rowspan="2">:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stride: 1x1, 2x2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">Activation</td>
|
||||
<td>Relu</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Relu 6</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="5">Other processing</td>
|
||||
<td>BatchNormalization</td>
|
||||
<td>fused with conv</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add (shortcut)</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Concat (route)</td>
|
||||
<td>Channel wise (AXIS 3 in BHWC)</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fully Connected</td>
|
||||
<td></td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Upsample</td>
|
||||
<td>Nearest</td>
|
||||
<td>:strong:<code>NPU</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -120,7 +120,9 @@
|
||||
"dark": true,
|
||||
"env":{
|
||||
"main_color": "#FF6B63"
|
||||
}
|
||||
},
|
||||
"code_highlight_css": "/static/css/prism.css",
|
||||
"code_highlight_js": "/static/js/prism.js"
|
||||
}
|
||||
},
|
||||
"teedoc-plugin-search":{
|
||||
|
||||
6
static/css/prism.css
Normal file
6
static/css/prism.css
Normal file
@@ -0,0 +1,6 @@
|
||||
/* PrismJS 1.29.0
|
||||
https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+bash+c+cpp+cmake+coffeescript+docker+go+ini+java+json+json5+kotlin+latex+less+lua+makefile+markdown+markup-templating+objectivec+php+powershell+python+jsx+tsx+ruby+rust+sass+scss+shell-session+sql+swift+textile+typescript+verilog+yaml&plugins=line-numbers+highlight-keywords+toolbar+copy-to-clipboard+match-braces */
|
||||
code[class*=language-],pre[class*=language-]{color:#ccc;background:0 0;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
|
||||
pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}
|
||||
div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:10;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:rgba(224,224,224,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none}
|
||||
.token.punctuation.brace-hover,.token.punctuation.brace-selected{outline:solid 1px}.rainbow-braces .token.punctuation.brace-level-1,.rainbow-braces .token.punctuation.brace-level-5,.rainbow-braces .token.punctuation.brace-level-9{color:#e50;opacity:1}.rainbow-braces .token.punctuation.brace-level-10,.rainbow-braces .token.punctuation.brace-level-2,.rainbow-braces .token.punctuation.brace-level-6{color:#0b3;opacity:1}.rainbow-braces .token.punctuation.brace-level-11,.rainbow-braces .token.punctuation.brace-level-3,.rainbow-braces .token.punctuation.brace-level-7{color:#26f;opacity:1}.rainbow-braces .token.punctuation.brace-level-12,.rainbow-braces .token.punctuation.brace-level-4,.rainbow-braces .token.punctuation.brace-level-8{color:#e0e;opacity:1}
|
||||
47
static/js/prism.js
Normal file
47
static/js/prism.js
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user