From be156e5232ee736477afabf73415030a29d2cee7 Mon Sep 17 00:00:00 2001 From: hzc1998 <2323168280@qq.com> Date: Tue, 12 Apr 2022 03:31:25 +0800 Subject: [PATCH] build(*): build book --- _book/index.html | 2 +- _book/programing-manual/base/framework.html | 2 +- _book/programing-manual/base/start.html | 2 +- .../interrupt/delay_queue.html | 2 +- _book/programing-manual/interrupt/irq.html | 2 +- _book/programing-manual/mm/buddy.html | 2 +- _book/programing-manual/mm/heap.html | 2 +- _book/programing-manual/mm/mm.html | 2 +- _book/programing-manual/mm/vmspace.html | 2 +- _book/programing-manual/platform/i386.html | 2 +- _book/programing-manual/platform/k210.html | 2 +- .../platform/qemu_riscv64.html | 2 +- .../port/riscv/figures/pte-rwx.png | Bin 0 -> 44007 bytes .../port/riscv/figures/sv39-full.png | Bin 0 -> 141865 bytes .../port/riscv/figures/sv39-pte.png | Bin 0 -> 12849 bytes _book/programing-manual/port/riscv/riscv.html | 454 +++++++++++++++--- _book/programing-manual/process/process.html | 2 +- _book/programing-manual/process/syscall.html | 2 +- _book/programing-manual/sched/sched.html | 2 +- _book/programing-manual/sched/smp.html | 2 +- _book/programing-manual/sched/thread.html | 2 +- _book/programing-manual/timer/timer.html | 2 +- _book/programing-manual/user/api.html | 2 +- _book/search_index.json | 2 +- _book/tutorial/code-style.html | 2 +- _book/tutorial/commit-rule.html | 2 +- _book/tutorial/menuconfig.html | 2 +- _book/tutorial/quick-start.html | 2 +- _book/tutorial/toolchains.html | 2 +- _book/tutorial/utest.html | 2 +- 30 files changed, 422 insertions(+), 84 deletions(-) create mode 100644 _book/programing-manual/port/riscv/figures/pte-rwx.png create mode 100644 _book/programing-manual/port/riscv/figures/sv39-full.png create mode 100644 _book/programing-manual/port/riscv/figures/sv39-pte.png diff --git a/_book/index.html b/_book/index.html index 923c572..92189ee 100644 --- a/_book/index.html +++ b/_book/index.html @@ -812,7 +812,7 @@ diff --git a/_book/programing-manual/base/framework.html b/_book/programing-manual/base/framework.html index 116c7e0..1b4df94 100644 --- a/_book/programing-manual/base/framework.html +++ b/_book/programing-manual/base/framework.html @@ -839,7 +839,7 @@ diff --git a/_book/programing-manual/base/start.html b/_book/programing-manual/base/start.html index 961f33a..0098a39 100644 --- a/_book/programing-manual/base/start.html +++ b/_book/programing-manual/base/start.html @@ -715,7 +715,7 @@ diff --git a/_book/programing-manual/interrupt/delay_queue.html b/_book/programing-manual/interrupt/delay_queue.html index 9407451..0d61c94 100644 --- a/_book/programing-manual/interrupt/delay_queue.html +++ b/_book/programing-manual/interrupt/delay_queue.html @@ -745,7 +745,7 @@ diff --git a/_book/programing-manual/interrupt/irq.html b/_book/programing-manual/interrupt/irq.html index fb3de80..d4326a3 100644 --- a/_book/programing-manual/interrupt/irq.html +++ b/_book/programing-manual/interrupt/irq.html @@ -731,7 +731,7 @@ diff --git a/_book/programing-manual/mm/buddy.html b/_book/programing-manual/mm/buddy.html index 7fac11c..a27b9c4 100644 --- a/_book/programing-manual/mm/buddy.html +++ b/_book/programing-manual/mm/buddy.html @@ -760,7 +760,7 @@ diff --git a/_book/programing-manual/mm/heap.html b/_book/programing-manual/mm/heap.html index 202bfde..814bf45 100644 --- a/_book/programing-manual/mm/heap.html +++ b/_book/programing-manual/mm/heap.html @@ -730,7 +730,7 @@ diff --git a/_book/programing-manual/mm/mm.html b/_book/programing-manual/mm/mm.html index 0f95408..146d64e 100644 --- a/_book/programing-manual/mm/mm.html +++ b/_book/programing-manual/mm/mm.html @@ -706,7 +706,7 @@ diff --git a/_book/programing-manual/mm/vmspace.html b/_book/programing-manual/mm/vmspace.html index 46f7c60..0da022e 100644 --- a/_book/programing-manual/mm/vmspace.html +++ b/_book/programing-manual/mm/vmspace.html @@ -742,7 +742,7 @@ diff --git a/_book/programing-manual/platform/i386.html b/_book/programing-manual/platform/i386.html index b7d7b32..f856a5e 100644 --- a/_book/programing-manual/platform/i386.html +++ b/_book/programing-manual/platform/i386.html @@ -726,7 +726,7 @@ make run -j8 # -jN是多线程&#x diff --git a/_book/programing-manual/platform/k210.html b/_book/programing-manual/platform/k210.html index 5c37ae7..c4fc08b 100644 --- a/_book/programing-manual/platform/k210.html +++ b/_book/programing-manual/platform/k210.html @@ -738,7 +738,7 @@ make run -j8 UART=com3 # windows: -jN是 diff --git a/_book/programing-manual/platform/qemu_riscv64.html b/_book/programing-manual/platform/qemu_riscv64.html index 21723cb..63fc355 100644 --- a/_book/programing-manual/platform/qemu_riscv64.html +++ b/_book/programing-manual/platform/qemu_riscv64.html @@ -730,7 +730,7 @@ make run -j8 # -jN是多线程&#x diff --git a/_book/programing-manual/port/riscv/figures/pte-rwx.png b/_book/programing-manual/port/riscv/figures/pte-rwx.png new file mode 100644 index 0000000000000000000000000000000000000000..e2c20df53c4233b111d6066411f8aeaa2d057649 GIT binary patch literal 44007 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

J8+azc$Axz}iS8qGd08R;;O1YjS-f@zy|lp(0R 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 XfxRNTJ-aN+Ym literal 0 HcmV?d00001 diff --git a/_book/programing-manual/port/riscv/figures/sv39-full.png b/_book/programing-manual/port/riscv/figures/sv39-full.png new file mode 100644 index 0000000000000000000000000000000000000000..5678542eb3eefe7f421d84f8f5ba2ecf1e7496ec GIT binary patch literal 141865 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 literal 0 HcmV?d00001 diff --git a/_book/programing-manual/port/riscv/figures/sv39-pte.png b/_book/programing-manual/port/riscv/figures/sv39-pte.png new file mode 100644 index 0000000000000000000000000000000000000000..7f693907429c67ad64a0f1e731fa76c7aa0348eb GIT binary patch literal 12849 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 JiJVEm{{Zb|GRpt} literal 0 HcmV?d00001 diff --git a/_book/programing-manual/port/riscv/riscv.html b/_book/programing-manual/port/riscv/riscv.html index 9da2edb..d973f1d 100644 --- a/_book/programing-manual/port/riscv/riscv.html +++ b/_book/programing-manual/port/riscv/riscv.html @@ -689,63 +689,6 @@ RISC-V指令集的设计考虑了&#

Supervisor模式的中断的打开与关闭是由状态寄存器 SSTATUS 中的 SIE 控制的,置为1则表示使能中断,置为0则表示禁用中断。

4. MMU内存管理单元

RISC-V的MMU支持多种模式,有Sv32/Sv39/Sv48/Sv57/Sv64等。不同的模式映射的页面等级,页面大小是有差异的。在64位处理器种最常用的是Sv39,它是3级4KB页面大小映射。

-

监管者模式的页表的地址是由地址转换寄存器 SATP 保存的,其格式如下: -地址转换

-

具体字段的解析如下:

-
    -
  • Mode - MMU 地址翻译模式
  • -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueNameDescription
0BareNo translation or protection
1-7-Reserved
8Sv39Page-based 39-bit virtual addressing
9Sv48Page-based 48-bit virtual addressing
10Sv57Reserved for page-based 57-bit virtual addressing
11Sv64Reserved for page-based 64-bit virtual addressing
12-15-Reserved
-

当 Mode 为 0 时,MMU 关闭。

-
    -
  • ASID – 当前 ASID。表示当前程序的 ASID 号。
  • -
  • PPN – 硬件回填根 PPN。第一级硬件回填使用的 PPN (Phsical Page Number)。
  • -

三、代码移植

移植一个新的平台需要实现如下内容: |内容 |描述 | @@ -1591,6 +1534,401 @@ NX_INTERFACE struct NX_MmuOps NX_MmuOpsInterfa .vir2Phy = NX_HalVir2Phy, }; +

监管者模式的页表的地址是由地址转换寄存器 SATP 保存的,其格式如下: +地址转换

+

具体字段的解析如下:

+
    +
  • Mode - MMU 地址翻译模式
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ValueNameDescription
0BareNo translation or protection
1-7-Reserved
8Sv39Page-based 39-bit virtual addressing
9Sv48Page-based 48-bit virtual addressing
10Sv57Reserved for page-based 57-bit virtual addressing
11Sv64Reserved for page-based 64-bit virtual addressing
12-15-Reserved
+

当 Mode 为 0 时,MMU 关闭。

+
    +
  • ASID – 当前 ASID。表示当前程序的 ASID 号。
  • +
  • PPN – 硬件回填根 PPN。第一级硬件回填使用的 PPN (Phsical Page Number)。
  • +
+

接下来,我们给出 SV39 地址转换的全过程图示(来源于 MIT 6.828 课程)来介绍多级页表原理的介绍: +sv39-full

+

SV39 模式中我们采用三级页表,即将 27 位的虚拟页号分为三个等长的部分, +第 26-18 位为三级索引 VPN2,第 17-9 位为二级索引 VPN1,第 8-0 位为一级索引 VPN0

+

我们也将页表分为三级页表,二级页表,一级页表。 +每个页表都用 9 位索引的,因此有 2的9次方=512 个页表项, +而每个页表项都是 8 字节, +因此每个页表大小都为 512 x 8 = 4KiB 。 +正好是一个物理页的大小。 +我们可以把一个页表放到一个物理页中,并用一个物理页号来描述它。 +事实上,三级页表的每个页表项中的物理页号可描述一个二级页表; +二级页表的每个页表项中的物理页号可描述一个一级页表; +一级页表中的页表项内容则和我们刚才提到的页表项一样,其内容包含物理页号,即描述一个要映射到的物理页。

+

具体来说,假设我们有虚拟地址 (VPN2,VPN1,VPN0,offset) :

+
    +
  • 我们首先会记录装载「当前所用的三级页表的物理页」的页号到 satp 寄存器中;

    +
  • +
  • VPN2 作为偏移在第三级页表的物理页中找到第二级页表的物理页号;

    +
  • +
  • VPN1 作为偏移在第二级页表的物理页中找到第一级页表的物理页号;

    +
  • +
  • VPN0 作为偏移在第一级页表的物理页中找到要访问位置的物理页号;

    +
  • +
  • 物理页号对应的物理页基址(即物理页号左移12位)加上 就是虚拟地址对应的物理地址。

    +
  • +
+

这样处理器通过这种多次转换,终于从虚拟页号找到了一级页表项, +从而得出了物理页号和虚拟地址所对应的物理地址。 +刚才我们提到若页表项满足 R,W,X 都为 0,表明这个页表项指向下一级页表。 +在这里三级和二级页表项的 R,W,X 为 0 应该成立,因为它们指向了下一级页表。

+

页面属性的定义如下:

+
    +
  • 文件:src/arch/riscv64/include/arch/mmu.h
  • +
+
// page table entry (PTE) fields
+#define PTE_V     0x001 // Valid
+#define PTE_R     0x002 // Read
+#define PTE_W     0x004 // Write
+#define PTE_X     0x008 // Execute
+#define PTE_U     0x010 // User
+#define PTE_G     0x020 // Global
+#define PTE_A     0x040 // Accessed
+#define PTE_D     0x080 // Dirty
+#define PTE_SOFT  0x300 // Reserved for Software
+#define PTE_S     0x000 // system
+
+#define NX_PAGE_ATTR_RWX    (PTE_X | PTE_W | PTE_R)
+
+#define NX_PAGE_ATTR_KERNEL (PTE_V | NX_PAGE_ATTR_RWX | PTE_S | PTE_G)
+#define NX_PAGE_ATTR_USER   (PTE_V | NX_PAGE_ATTR_RWX | PTE_U | PTE_G)
+
+

以上描述摘自rcore book

+

NX_HalMapPage 中调用了 __MapPage__MapPage 会先计算需要映射的页面数量,然后循环映射页面。

+

由于每个虚拟地址都需要有一个对应的物理地址,因此调用物理页面分配函数 NX_PageAlloc 来分配页面。然后调用 MapOnePage 来映射一个页面。

+
NX_PRIVATE void *__MapPage(NX_Mmu *mmu, NX_Addr virAddr, NX_Size size, NX_UArch attr)
+{
+    NX_Addr addrStart = virAddr;
+    NX_Addr addrEnd = virAddr + size - 1;
+
+    NX_SSize pages = GET_PF_ID(addrEnd) - GET_PF_ID(addrStart) + 1;
+    NX_Size mappedPages = 0;
+    void *phyAddr;
+
+    while (pages > 0)
+    {
+        phyAddr = NX_PageAlloc(1);
+        if (phyAddr == NX_NULL)
+        {
+            NX_LOG_E("map page: alloc page failed!");
+            goto err;
+        }
+
+        if (MapOnePage(mmu, virAddr, (NX_Addr)phyAddr, attr) != NX_EOK)
+        {
+            NX_LOG_E("map page: vir:%p phy:%p attr:%x failed!", virAddr, phyAddr, attr);
+            goto err;
+        }
+        virAddr += NX_PAGE_SIZE;
+        phyAddr += NX_PAGE_SIZE;
+        pages--;
+        mappedPages++;
+    }
+    return (void *)addrStart;
+err:
+    if (phyAddr != NX_NULL)
+    {
+        NX_PageFree(phyAddr);
+    }
+    __UnmapPage(mmu, addrStart, mappedPages);
+    return NX_NULL;
+}
+
+

MapOnePage 中,会先检测该地址是否已经映射,没有映射才能映射。

+

需要调用一个最为核心的函数,就是 PageWalk。 +它会根据虚拟地址来做页表遍历,如果 allocPage 为假,那么在遍历过程中,某个等级的页表不存在就会返回空。 +这就意味着这个地址是没有映射。

+

如果 allocPage 为真,那么就会在遍历过程中分配不存在的页表。 +例如在页目录表中,会有页表项,如果发现该页表项为空,则会分配一个物理页,作为下一级的页表。

+

该函数最后返回的是 VPN0 的页表项,页表项存放了物理页的地址。

+

MapOnePage 中,allocPage 为真,那就意味着如果虚拟地址没有映射物理地址,就会一级一级地分配页表。

+

返回 pte 后,需要填写也表项,其内容是物理地址和页面的属性R,W,X等。

+

页表项格式如下:

+

pte格式

+

物理页的属性如下:

+

pte格式rwx属性

+
NX_PRIVATE MMU_PTE *PageWalk(MMU_PDE *pageTable, NX_Addr virAddr, NX_Bool allocPage)
+{
+    NX_ASSERT(pageTable);
+
+    /* The page table in sv39 mode has 3 levels */
+    int level;
+    for (level = 2; level > 0; level--)
+    {
+        MMU_PTE *pte = &pageTable[GET_LEVEL_OFF(level, virAddr)];
+
+        if (PTE_USED(*pte))
+        {
+            pageTable = (MMU_PDE *)PTE2PADDR(*pte);
+            NX_ASSERT(pageTable);
+        }
+        else
+        {
+            if (allocPage == NX_False)
+            {
+                return NX_NULL;
+            }
+            pageTable = (MMU_PDE *)NX_PageAlloc(1);
+            if (pageTable == NX_NULL)
+            {
+                NX_LOG_E("riscv64 mmu-sv39: page walk with no enough memory!");
+                return NX_NULL;
+            }
+            NX_MemZero(NX_Phy2Virt(pageTable), NX_PAGE_SIZE);
+
+            /* increase last level page table reference */
+            void *levelPageTable = (void *)(NX_Virt2Phy((NX_Addr)pte) & NX_PAGE_ADDR_MASK);
+            NX_ASSERT(pageTable);
+            NX_PageIncrease(levelPageTable);
+
+            *pte = PADDR2PTE(pageTable) | PTE_V;
+        }
+        pageTable = (MMU_PDE *)NX_Phy2Virt(pageTable);
+    }
+    return &pageTable[GET_LEVEL_OFF(0, virAddr)];
+}
+
+NX_PRIVATE NX_Error MapOnePage(NX_Mmu *mmu, NX_Addr virAddr, NX_Addr phyAddr, NX_UArch attr)
+{
+    if (IsVirAddrMapped(mmu, virAddr) == NX_True)
+    {
+        NX_LOG_E("map page: vir:%p was mapped!", virAddr);
+        return NX_EINVAL;
+    }
+
+    MMU_PDE *pageTable = (MMU_PDE *)mmu->table;
+
+    MMU_PTE *pte = PageWalk(pageTable, virAddr, NX_True);
+    if (pte == NX_NULL)
+    {
+        NX_LOG_E("map page: walk page vir:%p failed!", virAddr);
+        return NX_EFAULT;
+    }
+    if (PTE_USED(*pte))
+    {
+        NX_PANIC("Map one page but PTE had used!");
+    }
+    /* increase last level page table reference */
+    void *levelPageTable = (void *)(NX_Virt2Phy((NX_Addr)pte) & NX_PAGE_ADDR_MASK);
+    NX_PageIncrease(levelPageTable);
+
+    *pte = PADDR2PTE(phyAddr) | attr;
+
+    return NX_EOK;
+}
+
+

NX_HalMapPageWithPhy 中,会调用 __MapPageWithPhy

+

只是现在不需要在分配物理地址而已,因为已经指定了物理地址了。

+
NX_PRIVATE void *__MapPageWithPhy(NX_Mmu *mmu, NX_Addr virAddr, NX_Addr phyAddr, NX_Size size, NX_UArch attr)
+{
+    NX_Addr addrStart = virAddr;
+    NX_Addr addrEnd = virAddr + size - 1;
+
+    NX_SSize pages = GET_PF_ID(addrEnd) - GET_PF_ID(addrStart) + 1;
+    NX_Size mappedPages = 0;
+
+    while (pages > 0)
+    {
+        if (MapOnePage(mmu, virAddr, phyAddr, attr) != NX_EOK)
+        {
+            NX_LOG_E("map page: vir:%p phy:%p attr:%x failed!", virAddr, phyAddr, attr);
+            __UnmapPage(mmu, addrStart, mappedPages);
+            return NX_NULL;
+        }
+        virAddr += NX_PAGE_SIZE;
+        phyAddr += NX_PAGE_SIZE;
+        pages--;
+        mappedPages++;
+    }
+    return (void *)addrStart;
+}
+
+

NX_HalUnmapPage 中,会调用 __UnmapPage 来解除页面的映射。

+

在解除页面映射的时候,循环调用 UnmapOnePage 解除每一个页面。

+

UnmapOnePage 中,会通过 PageWalkPTE 去遍历3级页表,获取虚拟地址 virAddr 对应的页表项。将结果保存到 +pteArray[] 数组中,pteArray[0] 保存了 VPN0 的页表项,pteArray[1] 保存了 VPN1 的页表项,pteArray[2] 保存了 VPN2 的页表项。

+

首先会释放叶子页面,也就是虚拟地址最终对应的物理地址,而页表是非叶子页面。

+

非叶子页面,就是页表,在释放的时候调用 NX_PageFree 会减少页面的引用计数,为0的时候才真正释放。

+
/**
+ * walk addr for get pte level 0, 1, 2
+ */
+NX_PRIVATE NX_Error PageWalkPTE(MMU_PDE *pageTable, NX_Addr virAddr, MMU_PTE *pteArray[3])
+{
+    /* The page table in sv39 mode has 3 levels */
+    int level;
+    for (level = 2; level > 0; level--)
+    {
+        MMU_PTE *pte = &pageTable[GET_LEVEL_OFF(level, virAddr)];
+        pteArray[level] = pte;
+
+        if (PTE_USED(*pte))
+        {
+            pageTable = (MMU_PDE *)PTE2PADDR(*pte);        
+            pageTable = (MMU_PDE *)NX_Phy2Virt(pageTable);
+        }
+        else
+        {
+            NX_LOG_E("map walk pte: pte on vir:%p not used!", virAddr);
+            return NX_EFAULT;
+        }
+    }
+    pteArray[0] = &pageTable[GET_LEVEL_OFF(0, virAddr)];
+    return NX_EOK;
+}
+
+NX_PRIVATE NX_Error UnmapOnePage(NX_Mmu *mmu, NX_Addr virAddr)
+{
+    MMU_PDE *pageTable = (MMU_PDE *)mmu->table;
+    MMU_PTE *pte;
+    NX_Addr phyPage;
+    void *levelPageTable;
+
+    MMU_PTE *pteArray[3] = {NX_NULL, NX_NULL, NX_NULL};
+    NX_ASSERT(PageWalkPTE(pageTable, virAddr, pteArray) == NX_EOK);
+
+    pte = pteArray[0];
+    NX_ASSERT(pte != NX_NULL);
+    NX_ASSERT(PTE_USED(*pte));
+    NX_ASSERT(PAGE_IS_LEAF(*pte));
+    phyPage = PTE2PADDR(*pte);
+    NX_ASSERT(phyPage);
+    NX_PageFree((void *)phyPage);   /* free leaf page*/
+    *pte = 0; /* clear pte in level 0 */
+
+    /* free none-leaf page */
+    levelPageTable = (void *)(((NX_Addr)pte) & NX_PAGE_ADDR_MASK); /* get level page table by pte */
+    if (NX_PageFree(levelPageTable) == NX_EOK)
+    {
+        pte = pteArray[1];
+        NX_ASSERT(PTE_USED(*pte));
+        NX_ASSERT(!PAGE_IS_LEAF(*pte));
+        NX_ASSERT((NX_Addr)levelPageTable == PTE2PADDR(*pte));
+        *pte = 0;   /* clear pte in level 1 */
+
+        levelPageTable = (void *)(((NX_Addr)pte) & NX_PAGE_ADDR_MASK);
+        if (NX_PageFree(levelPageTable) == NX_EOK)
+        {
+            pte = pteArray[2]; 
+            NX_ASSERT(PTE_USED(*pte));
+            NX_ASSERT(!PAGE_IS_LEAF(*pte));
+            NX_ASSERT((NX_Addr)levelPageTable == PTE2PADDR(*pte));
+            *pte = 0;   /* clear pte in level 2 */
+        }
+    }
+    return NX_EOK;
+}
+
+NX_INLINE NX_Error __UnmapPage(NX_Mmu *mmu, NX_Addr virAddr, NX_Size pages)
+{
+    while (pages > 0)
+    {
+        UnmapOnePage(mmu, virAddr);
+        virAddr += NX_PAGE_SIZE;
+        pages--;
+    }
+    return NX_EOK;
+}
+
+

NX_HalVir2Phy 中,根据虚拟地址 virAddr,转换为物理地址。 +之前介绍过 PageWalk 这个函数,如果 allocPage 为假,那么在遍历过程中,不存在就会出错,存在就会返回页表项,里面存放了物理页的地址。

+

通过 PTE2PADDR(*pte) 取出物理页面的地址,返回的时候加上页内偏移 (pagePhy + pageOffset)

+

+NX_PRIVATE void *NX_HalVir2Phy(NX_Mmu *mmu, NX_Addr virAddr)
+{
+    NX_ASSERT(mmu);
+
+    NX_Addr pagePhy;
+    NX_Addr pageOffset;
+
+    MMU_PDE *pageTable = (MMU_PDE *)mmu->table;
+
+    MMU_PTE *pte = PageWalk(pageTable, virAddr, NX_False);
+    if (pte == NX_NULL)
+    {
+        NX_PANIC("vir2phy walk fault!");
+    }
+
+    if (!PTE_USED(*pte))
+    {
+        NX_PANIC("vir2phy pte not used!");
+    }
+
+    pagePhy = PTE2PADDR(*pte);
+    pageOffset = virAddr % NX_PAGE_SIZE;
+    return (void *)(pagePhy + pageOffset);
+}
+
+

设置页表的时候,需要将页表基地址写入 satp 寄存器。然后刷新快表。 +这里的快表可以理解为缓存,可以加快虚拟地址到物理地址的转换。

+
NX_INLINE void SFenceVMA()
+{
+    NX_CASM("sfence.vma");
+}
+
+#define MMU_FlushTLB() SFenceVMA()
+
+NX_PRIVATE void NX_HalSetPageTable(NX_Addr addr)
+{
+    WriteCSR(satp, MAKE_SATP(addr));
+    MMU_FlushTLB();
+}
+
+

获取也表的时候,需要读取 satp 寄存器,并转换出页表的地址。

+
NX_PRIVATE NX_Addr NX_HalGetPageTable(void)
+{
+    NX_Addr addr = ReadCSR(satp);
+    return (NX_Addr)GET_ADDR_FROM_SATP(addr);
+}
+

9. 进程管理

NX_HalProcessInitUserSpace 用于在进程创建的时候,创建进程的页表 ,并复制内核的页表项。

NX_HalProcessFreePageTable 用于在进程退出的时候释放页表。

@@ -1853,7 +2191,7 @@ NX_INTERFACE struct NX_SMP_Ops NX_SMP_OpsInter diff --git a/_book/programing-manual/process/process.html b/_book/programing-manual/process/process.html index 42defb3..ce25626 100644 --- a/_book/programing-manual/process/process.html +++ b/_book/programing-manual/process/process.html @@ -725,7 +725,7 @@ diff --git a/_book/programing-manual/process/syscall.html b/_book/programing-manual/process/syscall.html index e1500ef..907f3f9 100644 --- a/_book/programing-manual/process/syscall.html +++ b/_book/programing-manual/process/syscall.html @@ -716,7 +716,7 @@ diff --git a/_book/programing-manual/sched/sched.html b/_book/programing-manual/sched/sched.html index 5721b45..76a429f 100644 --- a/_book/programing-manual/sched/sched.html +++ b/_book/programing-manual/sched/sched.html @@ -709,7 +709,7 @@ diff --git a/_book/programing-manual/sched/smp.html b/_book/programing-manual/sched/smp.html index ee782b3..2bd2737 100644 --- a/_book/programing-manual/sched/smp.html +++ b/_book/programing-manual/sched/smp.html @@ -723,7 +723,7 @@ diff --git a/_book/programing-manual/sched/thread.html b/_book/programing-manual/sched/thread.html index 607b841..8c3c8c5 100644 --- a/_book/programing-manual/sched/thread.html +++ b/_book/programing-manual/sched/thread.html @@ -798,7 +798,7 @@ diff --git a/_book/programing-manual/timer/timer.html b/_book/programing-manual/timer/timer.html index ed7ea29..a70200d 100644 --- a/_book/programing-manual/timer/timer.html +++ b/_book/programing-manual/timer/timer.html @@ -731,7 +731,7 @@ NX_Timer *NX_TimerCreate(NX_UArch milliseconds, diff --git a/_book/programing-manual/user/api.html b/_book/programing-manual/user/api.html index d5570e3..ae2e64b 100644 --- a/_book/programing-manual/user/api.html +++ b/_book/programing-manual/user/api.html @@ -1120,7 +1120,7 @@ diff --git a/_book/search_index.json b/_book/search_index.json index 00952c5..7287230 100644 --- a/_book/search_index.json +++ b/_book/search_index.json @@ -1 +1 @@ -{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["...","2.0",":","amd64","apach","arch","arm32","arm64","buddy伙伴算法","develop","do","doc","heapcache算法","i386","issus","k210","linux","longarch","mmu","nxo","nxos是next","nxos采用","nxos采用混合内核架构,即宏内核和微内核相结合。优势是减小内核代码,增加功能可扩展性,功能模块是独立的进程,添加和删除模块就是进程的创建和关闭。","oper","platform","pr","qemu","qemu平台支持gdb调试,并搭配了vscode图形化调试","riscv64","sdk","smp","smp多核调度","statu","system的意思,是一个跨平台的简洁、高性能、高稳定性的支持多核的混合内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。","todo","v0.1","windowsnt","x86","x86_64","xbook","一、nxo","三、内核功能","中断管理框架,以及延迟中断队列机制","二、nxo","五、许可协议","以线程为最小调度单元","其他功能正在开发中,敬请期待!","内核就只负责基础功能的支持,平台移植和驱动的移植,具体如何使用,可以根据用户态的","内核是同一个数量级的。","内核,","分支","功能","可以运行用户态的程序","可以通过串口输出调试,也可以通过串口输入按键","和服务,应用程序去构建应用。","四、平台支持","在mmu的基础上对内核和进程进行隔离","基于","基于ticks实现的定时器,基于线性链表实现","多核,多架构,多平台。","如果您在文档中发现了问题或者想参与文档的编写,可以在文档仓库提出","开源协议,可以自由的复制和修改代码,只需要保留版权说明即可,无潜在的商业风险。","彩色日志输出","我们以简洁、高效、稳定为核心,用比较简洁且高效的方式去实现一些功能,去掉一些复杂,冗杂的功能,化繁为简。","或者提交","描述","支持","支持gdb调试内核","支持vf","支持中断管理","支持串口输入输出","支持定时器","支持线程绑定核,处理器均衡负载","支持虚拟地址","支持进程","支持配置日志输出时间,格式,名称,颜色,消息等级等","文档版本","是一个分时多进程/多线程(也支持实时优先级),支持","物理内存管理","的初期目标是运行在一些高性能的嵌入式设备上,比如手机终端,游戏掌机等。后期目标是能够作为服务器使用,甚至是桌面操作系统使用。","的现代操作系统,它和","目标","简介","线程管理","虚拟内存管理","虚拟文件系统,目前支持cpio只读文件系统实现"],"tutorial/quick-start.html":["#","&&","(cmder)","(git)下载后安装即可。","(python)下载后安装即可。","1.","2.","2.04","3.","a.","apt","b.","clean","ctrl+a","ctrl+d","defconfig","gdb","genisoimag","git","grub2","hat/fedora/centos:","i386","instal","linux:","linux下设置i386环境并设置platform=x86","linux下设置riscv64环境platform=riscv64","linux环境","make","menuconfig","mkf","mtool","nxo","prepar","python","qemu","qemu_riscv64","red","riscv64","run","saveconfig","setup.bat","setup.sh","sourc","sudo","system","tools/","tools/genisoimag","tools/grub","tools/mkf","tools/mtool","tools服务器下载(速度较慢,请耐心等待)","truncat","ubuntu/kali","window","windows下设置i386环境并设置platform=x86","windows下设置riscv64环境platform=riscv64","windows环境","x","yum","一、开发环境搭建","下载后需要解压出来,然后将每一个目录配置到path系统环境变量中(最好是配置到环境变量的最前面,避免和其它系统已经存在的工具冲突),解压后您将会有:","下载链接:https://qemu.weilnetz.de/w64/","为了方便,我们将其他比较小的工具已经打包在一个工具包里面了,下载解压后,手动添加对应的工具到系统环境变量即可。","为选中的平台做初始化(仅仅第一次编译的时候需要),会为每一个平台下载平台特别需要的工具到平台中。","二、编译和运行","仅仅编译源码","使用菜单配置进行个性化剪裁。可以选择打开或者关闭某些功能,设置一些变量等。配置完成后需要按esc键退出,退出后会生成新的配置头文件。","其他工具","其他涉及到的工具:python","加载平台的默认配置,会读取选中的平台的默认menuconfig配置到工作区中。","可以直接在终端中输入命令安装:","在获取nxos的系统源码后,您需要下载编译nxos的工具链(点我跳转),下载好后,进行环境变量的配置。","快速体验","快速入门","我们采用的是世界上最流行的qemu虚拟机,各种平台都有支持,刚好有我们需要的版本。","推荐的一个不错的终端(非必须)下载后安装即可。","本文档将带您从入门到劝退。","欢迎来到nxos内核!nxos是一个跨平台的简洁的高性能,高稳定性的操作系统内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。","步骤拆解","第一次执行时,为平台做初始化","第一次编译一个新的平台的时候需要clean一下","编译器工具链","编译源码并运行","编译源码并运行,默认使用qemu虚拟机模拟运行,按下小写的ctrl+x后再按下a则可以退出qemu运行。","虚拟平台运行","虚拟机","设置临时环境变量,在目录中有脚本来设置,直接运行即可。windows使用bat,linux使用sh。","设置环境变量","调试完成后,需要将配置信息和文件保存到对应平台中,使得配置永久生效。","输入","进入到nxos目录中,在目录中打开一个终端。","退出","选择最新版本下载即可。下载后,安装到一个路径,再把路径配置到path系统环境变量中即可。","配置环境并运行"],"programing-manual/base/framework.html":["(fatfs,","(x86,","+","...)",".vscode","/","1.","2.","3.","app","arch","arm,","config","d1","doc","driver","extfs,","fs","hardwar","hub","i/o驱动框架和中断管理","i386,","includ","init","io","ipc","irq","k210,","kdriver","kernel","kservic","mm","netstack)","nt","nxbase","nxo","pc","platform","process","riscv,","riscv64","riscv64,","riscv64等","rt","sched","script","smart。","src","syscal","system","test","thread","time","timer","udriv","userverc","util","vf","virt","vmm","vscode的一些配置文件,有gdb调试配置","window","x86","xnu","|","一、混合内核框架","二、目录框架","内存管理模块","内核、苹果","内核一些功能的文档说明","内核其余模块","内核初始化以及main核心","内核源码目录","内核的源码","内核,还有国产开源系统","头文件","常用的功能组件,小工具,log显示以及字符串操作等","平台","平台支持,存放具体的平台,比如pc平台或者一个开发板","平台框架","平台配置文件,配置了支持的平台","描述","整体框架","文件系统框架以及各种文件系统支持","时间模块,时钟和定时器","架构","架构相关代码,x86,","框架","测试模块,测试框架和测试代码","用到的xbuild脚本和kconfig脚本等","目录","调度模块,线程和smp的内容,以及同步机制","进程管理,系统调用相关内容","进程间通信","采取架构和平台分离的措施,其原因在于,一个架构可能有多个平台,分离后可以服用架构的代码。","采用混合内核框架,也就是结合宏内核和微内核。这样的系统有","项目目录","驱动程序,磁盘,输入输出设备等"],"programing-manual/base/start.html":["(smp初始化)","(内核的主函数)","(初始化调用)","(平台初始化,","(平台初始化二阶段,可以使用内核的功能:","(平台的主函数,什么都可以使用:","(调度第一个线程)","...",">","_start","_start,当执行到这个地方的时候,内核就开始运行了。","nx_callsinit","nx_halplatforminit","nx_halplatformmain","nx_halplatformstage2","nx_main","nx_schedtofirstthread","nx_smp_main","nx_smp_preload","nxo","showlogvers","不能使用内核的功能:","内核功能初始化","内核执行路径","启动流程","在设备开机后,处理器会跳到一个地址去执行代码,一般都是固定的,然后再从这些固定代码跳转到程序员自己编写的程序。程序员自己写的程序就是裸机,rtos或者操作系统。在nxos中,不同的平台会有不同的执行地址,所以我们需要指定内核程序的入口地址,在链接的时候指定一个标签","平台开发者实现)"],"programing-manual/mm/mm.html":["一.","三.","二.","内存管理","内存管理分为物理内存管理、虚拟内存管理、进程虚拟内存管理这三个大模块。","内存管理是操作系统中最为核心和重要的部分,这是由于很多其它模块的运行都需要内存的分配和释放。","内核虚拟堆内存管理,使用基于缓存的链表实现","物理内存管理,使用伙伴算法实现。","进程虚拟内存管理,基于线性链表实现"],"programing-manual/mm/buddy.html":["*","*mem,","*nx_buddyallocpage(nx_buddysystem*","*ptr);","+","/**","0x82000000","bootload","buddi","buddy伙伴算法","count","count);","layout:","memori","nx_buddycreate(void","nx_buddyfreepage(nx_buddysystem*","nx_buddyincreasepage(nx_buddysystem*","nx_buddysystem*","nx_error","nx_page*","nx_pagefromptr(nx_buddysystem*","nx_size","nxo","physic","qemu","riscv64","size);","system","system,","top","void","一.","三、框架图","个页面。在mmu映射和虚拟内存管理器中会使用到。","中使用","之间的这部分内存。简单的说就是对一段或者多段空闲的内存地址进行管理,可以进行分配与释放,让操作系统去使用。","二.","优缺点","伙伴内存管理算法。为了便于页面的维护,将多个页面组成内存块,每个内存块都有2的方幂个页,方幂的指数被称为阶。在操作内存时,经常将这些内存块分成大小相等的两个块,分成的两个内存块被称为伙伴块,采用一位二进制数来表示它们的伙伴关系。当这个位为1,表示其中一块在使用;当这个位为0,表示两个页面块都空闲或者都在使用。系统根据该位为0或位为1来决定是否使用或者分配该页面块。系统每次分配和回收伙伴块时都要对它们的伙伴位跟1进行异或运算。所谓异或是指刚开始时,两个伙伴块都空闲,它们的伙伴位为0,如果其中一块被使用,异或后得1;如果另一块也被使用,异或后得0;如果前面一块回收了异或后得1;如果另一块也回收了异或后得0。","内存是操作系统运行的根基,处理器从内存中取出指令来执行,在进入操作系统之前,一般会有引导器","内存管理最基本的接口就是分配和释放。为了能够支持分页机制,为页表映射提供内存的支持,将内存分为页面大小进行管理会比较合适。","原理","另外拆分和合并涉及到","四.","在","在使用页面的过程中,可能会需要把一个地砖转换成其对应的页面结构,来访问该结构里面的成员,这在虚拟内存管理器","在初始化的时候,会创建一个","在释放页面的时候,需要引用计数为0的时候,才会去正在释放这个页面。","实现的时候有使用到。","尽管伙伴内存算法在内存碎片问题上已经做的相当出色,但是该算法中,一个很小的块往往会阻碍一个大块的合并,一个系统中,对内存块的分配,大小是随机的,一片内存中仅一个小的内存块没有释放,旁边两个大的就不能合并。","我们需要管理的内存就是","我们需要管理的物理内存是除了保留地址和操作系统占用以外的空闲的内存,这部分内存就是需要在操作系统运行的过程中进行静态/动态分配的内存。","所以,4kb也就延续到64位系统了。所以,我们使用4kb作为一个页面的大小。","所以,分配和释放的基础单位就是页面。通常来说,页面大小是4kb,也可以更大,但是由于4kb在32位操作系统中可以很好地对4gb内存进行映射,","把内核加载到内核中,然后跳转进去执行。","接口","描述","有必要的时候,也会在需要物理内存的时候,直接调用该分配。","有的情况下,当一个页面被多次使用的时候,需要去增加其引用计数,来避免被释放掉。","来管理一段连续的物理内存。需要制定物理内存地址和物理内存大小。","物理内存分配/释放管理之伙伴算法(buddy)","的","算法中有一定的浪费现象,伙伴算法是按2的幂次方大小进行分配内存块,当然这样做是有原因的,即为了避免把大的内存块拆的太碎,更重要的是使分配和释放过程迅速。但是他也带来了不利的一面,如果所需内存大小不是2的幂次方,就会有部分页面浪费。有时还很严重。比如原来是1024个块,申请了16个块,再申请600个块就申请不到了,因为已经被分割了。","算法的具体实现不进行讲解,除非你需要来优化这部分代码,才需要了解到,如果只是去使用,那么就只需要熟悉接口即可。","系统中分配的页面。","虚拟平台中,内存布局如下:","较多的链表和位图操作,开销还是比较大的。","这样的话,内核也就占用了一部分的内存,那么我们应该去管理哪部分内存呢?","里面分配","里面释放某个地址指针,该指针必须是从","页面分配函数,可以从一个","页面释放函数,从一个"],"programing-manual/mm/heap.html":["#defin","*nx_heapalloc(nx_s","*object);","112,","128等。","1mb)内存对象。","32,","48,","64,","80,","96,",">","cach","free","heap","heapcache虚拟内存管理","malloc","nx_error","nx_heapalloc","nx_heapalloc(size)","nx_heapfree(ptr)","nx_heapfree(void","nx_heapgetobjectsize(void","nx_memalloc","nx_memalloc(size)","nx_memfre","nx_memfree(ptr)","nx_memfree。","nx_size","nxo","size","size);","void","一、描述","三、框架图","中,内存对象被划分成3类,小(16byte","二、原理","使用的时候需要注意,必须是通过","内存释放堆内存的时候,需要传入内存对象地址,并返回释放的状态。","内核分配堆内存的接口,需要传入待分配内存的大小,即可获取一个内存地址,如果为空,那么就是分配失败了。","内核虚拟内存管理之堆内存","分配的内存对象。","去分配内存。","去释放内存。","和","四、接口","在","对于中内存对象,就是使用一个链表来管理。","对于大内存对象,就直接从物理内存管理器分配和释放,不使用链表管理。","对于小内存对象,会划分得比较细,如:16,","对于应用程序来说,可以使用","我们是使用基于缓存的链表来管理堆,这种方式的原理是,在释放一个页面后,会放到一个链表上面,下次分配的时候,直接从链表获取内存对象即可。","所以,需要在内核中实现同样的功能,在","来动态地分配内存,那么,对于内核来说,也需要这样的功能。","没有对象才重新从物理内存管理器中分配,有的话就直接从链表上面摘取。","的大小。","算法中,每个小的对象都有一个对应的链表来管理内存对象,分配的时候先去链表上获取对象,","通常,内核会使用","释放的时候,也是先释放到链表上面,当链表超出了最大链表长度阈值的时候,才会释放到物理内存分配器中。","里面,它们是","除此之外,还提供了一个获取某个内存对象大小的功能,传入地址即可获取内存对象所在的"],"programing-manual/mm/vmspace.html":["**outaddr);","*/","*space,","/*","addr,","attr,","elf","flags,","nx_addr","nx_error","nx_size","nx_u32","nx_vmspacemap(nx_vmspac","nx_vmspacemapwithphy(nx_vmspac","nx_vmspaceunmap(nx_vmspac","paddr,","size);","size,","vaddr,","vmnode","vmnode,节点记录了地址的信息以及这段地址的属性。","vmspace虚拟地址空间","void","一、描述","三、框架图","不同用法的地址。","二、原理","以及在做进程的堆分配和栈扩展的时候,都会使用到。","以及这个地址对应的内存大小,内存节点的属性,已经一些扩展的标志。","值得注意的是,映射的时候,还会去对内存进行物理内存映射,只有映射后,进程才能访问该地址。","删除。","四、接口","在解析","在进程的运行过程中也会涉及到堆的分配,栈的扩展等。","地址空间通过映射和解除映射来进行管理,类似于分配和释放的操作。","对进程的内存管理,是对它的虚拟地址进行管理。由于会有多个进程的存在,所以会对每个进程的虚拟地址","指定了虚拟地址需要映射到的物理地址,映射的时候,就把虚拟地址映射到该物理地址(未来做共享内存的时候会用到)","映射某段空间的时候,会先检测地址是否被使用,如果已经被使用了,就不能直接使用这块地址。没有被使用,就可以在地址空间中添加一个","映射的物理内存。","格式的可执行程序的时候,需要映射一段内存来储存代码和数据,就会用到映射功能。","虚拟地址在映射的时候,需要指定对应的地址空间,然后就是传入一个想要映射的地址,如果为0,那么就会自动分配一个地址。","解除地址映射的时候,需要制定虚拟地址和内存大小,如果在已经映射的内存空间中匹配到vmnode,就可以将其解除映射,并释放其","解除映射的时候,会先判断该地址是否映射,已经映射才能解除。会先解除物理内存映射,然后再把","进程在启动前,需要加载对应的代码、数据到内存中,然后才开始执行。","进程地址空间(vmspace)就是用来管理进程的虚拟地址的。由于不同地址会有不同的用途,于是会有虚拟地址节点(vmnode)来管理","进程地址空间的管理使用链表来维护每一个节点,节点是根据虚拟地址的值来进行线性排序,低地址在链表的开头,高地址在链表的结尾。","进程虚拟内存管理之虚拟空间","进行独立的管理,于是进程地址空间就出现了。"],"programing-manual/sched/sched.html":["一.","二.","在内核中,涉及到多任务的是线程管理,调度算法,多核调度。","在嵌入式领域,rtos的实时性是非常重要的。简单来说,就是一个优先级最高的任务在执行的时候,低优先级的任务得不到执行,如果有更高","在现代操作系统中,多任务已成为标配,也就是一个处理器可以“同时”执行多个任务,这样可以最大化利用处理器,并且支持更多的功能。","多核调度","由于任务数量众多,如何管理它们,是要做到公平运行还是谁先谁后,这和应用场景密切相关。","的任务被唤醒,就得立即切换过去执行。","线程管理","而在桌面和服务器领域,需要保证任务的公平性,即使优先级比较低,也要能够得到运行。","调度管理"],"programing-manual/sched/thread.html":["#defin","(nx_thread_max_priority_nr","(nx_thread_priority_high","*/","*arg,","*name,","*nx_threadcreate(const","*nx_threadself(void);","*stack;","*stackbase;","*thread);","*thread,","*threadarg;","+",",","/*","0","1","1)","1]","1ms~100m","3","6","6]","[0,","[7,","alloc","arg","base","case","chang","char","core","coreaffinity;","coreid);","deamon","dynam","exitlist;","fail","fix","fixedpriority;","globallist;","handler","handler,","handler;","high","id,","idl","info","isterminated;","level","list","list;","lock","lock;","low","max","mean","microsecond","microseconds);","min","name","name[nx_thread_name_len];","needsched;","normal","nx_error","nx_i32","nx_list","nx_schedtofirstthread","nx_size","nx_spin","nx_thread","nx_thread;","nx_thread_priority_high","nx_thread_priority_idl","nx_thread_priority_low","nx_thread_priority_norm","nx_thread_priority_rt_max","nx_thread_priority_rt_min","nx_threadcreat","nx_threaddestroy(nx_thread","nx_threadexit","nx_threadexit(void);","nx_threadhandl","nx_threadresourc","nx_threadself","nx_threadsetaffinity(nx_thread","nx_threadsleep(nx_uarch","nx_threadstart","nx_threadstart(nx_thread","nx_threadstat","nx_threadtermin","nx_threadterminate(nx_thread","nx_threadyield","nx_threadyield(void);","nx_u32","nx_u8","nx_uarch","nxo","oncore;","prioriti","priority);","priority,","priority;","priority,即可创建一个线程,返回线程的地址。","process","processlist;","real","resourc","resource;","run","sched","schedul","share","stack","stacksize;","state;","struct","thread","ticks;","tid;","time","timeslice;","top","typedef","void","{","};","一.","三、框架图","中,分为实时优先级和分时优先级。实时优先级是,只要有高的优先级,就不能运行低的优先级。而分时优先级是高低优先级线程都能得到运行,只是低优先级线程运行的时间更少而已。优先级","二.","产生时钟中断的时候,会去减少线程的时间片,时间片为0后,再去切换线程,这是属于线程被动切换。","以及参数","以线程为最小调度单元的好处是可以很方便支持内核态以及用户态的多线程,并且层次框架也比较好,容易实现。","传入线程的名字","但是注意,此时只是创建了线程,还没有启动线程。","内核中,休眠的单位是毫秒,休眠","内核的最小调度单位是线程,每个线程都有自己独立的栈,寄存器组,以及一些运行信息等。","函数即可退出当前线程的运行。","原理","去终止线程,传入线程指针即可。","同时运行。比如你一边听歌,一边写代码,其实就是音乐播放器和代码编辑器这两个任务在快速切换而形成的效果。","四.","在","在创建一个线程后,可以运行该线程,可以让线程去完成一些独立的工作。内核中的","在完成内核的初始化后,会创建","在线程创建后,如果需要把线程绑定到某个处理器,则可以设置处理器亲和性,使得该线程被绑定在指定的线程上运行。","在线程结构体中,有链表,基础信息,栈信息,调度信息,以及内核的资源。","就会发起一次切换。这样,在人看来,就是多个任务在","就可以启动线程,线程就可以开始运行了。","就可以让出执行权。值得注意的是,本线程不会阻塞,会在下一个时机再次被调度。","属于分时优先级,优先级","属于实时优先级。在使用过程中,通常使用宏,而不是直接使用数字。优先级宏如下:","当前实现的线程结构体如下:","当处理器调用","当线程需要休眠的时候,就需要传入休眠的时间,","很多情况下,需要获取当前线程,可以使用","拿到1个线程执行,避免内核跑飞。","接口","描述","时间长度后,就会被唤醒,继续往后执行。","最开始,内核是没有线程概念的,处理器只有一个执行流。","有时候需要终止某个线程的运行,就需要使用","此时,处理器就进入线程环境,开启线程调度生涯。","每个线程执行一段时间后,就会切换到其它线程执行。这个切换可能是主动的,也可能是被动的。线程在阻塞(block)和让出(yield)的时候是属于线程主动发起切换。在","每个线程都有一个其对应的线程结构体,使用其来记录线程的信息,比如线程链表,线程状态,线程栈等基础信息。","由于线程的切换速度非常快,一般在","的时候,就去获取一个线程来运行。","线程创建好后,需要启动线程,调用","线程完成了自己的工作后,可以主动退出运行,调用","线程是具有优先级的,优先级高的线程先运行,优先级低的线程后运行。在","线程有一个让出当前执行的操作,就是暂时不允许,希望把运行机会让给其它线程,做一个\"好人\",此时调用","线程的创建是","线程等都有自己独立的工作任务。","线程管理","线程,","线程,来保证处理器至少能够","获取自己的线程指针。","还有重要的优先级","销毁一个线程是只需要传入线程地址即可。注意,销毁不代表把线程从运行队列中摘除,只是释放线程占用的内存。",",线程处理函数"],"programing-manual/sched/smp.html":["ap","processor)。","processor)启动后,进入内核,完成初始化,再由引导处理器去唤醒其它处理器,通常称为应用处理器(appl","smp多核启动流程","smp多核调度","smp负载均衡","一.","一般情况下,第一个引导处理器(boot","三、框架图","二.","原理","启动后,会进行一些初始化,然后参加到调度工作中。而调度队列的实现就需要依赖于原子操作来保证对公共队列访问的正确性。","多核中很重要的一个机制就是自旋锁,当需要访问公共资源的时候,就需要自旋锁来上锁,才能保证多个核同时访问数据的正确性。自旋锁依赖于原子操作,而原子操作又需要硬件做支持。","多核的实现是需要硬件支持的,操作系统内核只是根据硬件做一定的抽象,做好多核间的同步与互斥。","多核调度","描述","自从进入21世纪,处理器的性能就有了瓶颈,不再迅猛增长。此时就有人提出多个处理器一起工作的方式,来弥补处理器性能的问题。"],"programing-manual/process/process.html":["*name,","*path,","+","0xf0000000","32mb","char","exitcode);","flags);","flags。","mmu","name","nx_error","nx_processexit(int","nx_processlaunch(char","nx_u32","path","void","一.","三、框架图","二.","以内进行数据存取。","内核崩溃。","内的物理地址,","内的物理地址,就能正确地进行数据存取,不然,则会产生页面故障。","再去对物理地址进行存取。比如虚拟地址是","创建进程的时候,需要从文件系统上加载程序的代码和数据,然后再去执行进程的代码。","到","前,访问的地址都是物理地址,","即直接访问的是内存的地址。比如内存只有","原理","后,访问的地址会发生变化。因此,为了能够保证访问内核的时候是正确的,在映射","后,访问的地址就是虚拟地址了。此时访问的地址,会通过","启动进程的时候,需要传入进程的名字","四.","寄存器,访问的地址都是新的","就可以升级为进程。除此之外,还会有一些其它进程独有的资源。","当开启","接口","描述","映射的虚拟地址。","映射表,切换进程的时候需要修改硬件","是虚拟地址转换成为物理地址的硬件机制。在开启","由于切换了","的内存范围,但是,只要在访问前映射","的时候,内核也能够正常运行,新进程的地址访问也不会出错。","的时候,每个进程都会把部分","究竟是何物?mmu","线程","转换成那","进程执行独立的程序,程序运行出故障也不会导致系统出现故障。因此可以把一些服务程序放到用户态作为进程执行,当服务出错的时候不会导致","进程执行结束的时候,需要退出,并传入退出时候的状态码。","进程是具有独立的线性地址空间的线程集合,是线程的容器。在现代操作系统中,硬件的","进程的实现依赖于","进程管理","那么","页表项映射到内核,并设置权限为内核才能访问,这样就能实现切换","(内存管理单元)为虚拟内存的实现奠定基础。",",以及进程标志",",显然超过了",",来实现进程的虚拟地址空间。每个进程都有一个",",要加载程序的路径",",那么访问的地址就只能是在"],"programing-manual/process/syscall.html":["api","api);","nx_syscallgethandler(nx_syscallapi","nx_syscallhandl","ring1,","ring2,","ring3),在","riscv","supervisor,","user)。","x86","一.","三、框架图","二.","值得注意的是,在执行系统调用期间,需要打开中断,避免在系统调用时出现死循环,导致内核卡死。","值,就能获取到对应的内核服务功能,然后以函数指针的方式去调用执行即可。","原理","只能通过系统调用执行内核提供好的服务。在","四.","在现代操作系统中,分为了内核态和用户态。内核态是内核程序本身,可以对设备资源进行管理核控制。而用户态只能够去调用内核提供的服务,不能够直接对资源进行访问。","接口","描述","支持特权保护的处理器架构中,都提供了模式切换的指令。至少需要有两个特权级,一个用于内核态,特权更高,可以直接访问硬件。另外一个用于用户态,","架构中,有3个特权级(machine,","架构中,有4个特权级(ring0,","系统调用","系统调用是指用户态程序通过特殊的指令陷入到内核态,执行内核态提供的服务程序,然后再返回到用户态。","系统调用的实现,是基于特权级切换指令实现的,一般都是中断或者异常。用户态通过调用这些指令,就会产生一个中断或者异常,处理器会去中断表中查找系统调用指令对应的处理函数,然后就根据系统调用的","系统调用表是在内核固定下来的,不同的架构只要根据固定的","这么做的目的是为了避免用户恶意程序对系统的损坏,对设备进行恶意操作。于是用户态核与内核态之间的接口就出现了,它就是系统调用。","进行内核服务的分发,去调用对应的内核函数。"],"programing-manual/interrupt/irq.html":["#defin","*data);","*data,","*name,","char","cow","flags);","handler,","irqno);","irqno,","kill","nx_error","nx_irq_bind(nx_irq_numb","nx_irq_controllerinterface.disable()","nx_irq_controllerinterface.enable()","nx_irq_controllerinterface.restorelevel(level)","nx_irq_controllerinterface.savelevel()","nx_irq_dis","nx_irq_disable()","nx_irq_en","nx_irq_enable()","nx_irq_handl","nx_irq_mask(nx_irq_numb","nx_irq_restorelevel","nx_irq_restorelevel(level)","nx_irq_savelevel","nx_irq_savelevel()","nx_irq_unbind(nx_irq_numb","nx_irq_unmask(nx_irq_numb","nx_u32","void","。","。由于有的时候只是为了暂时关闭中断,处理完后需要恢复中断的状态,于是则需要使用保存中断的状态和恢复中断的状态,即","一、描述","三、框架图","中断是可以全局打开和关闭的,打开后才会响应中断。除此之外,对于每一个具体的中断,都可以打开和关闭,在禁止了网卡中断后,即使打开了全局中断,也收不到网络数据包了。但是,异常是不可以屏蔽的,异常是来告诉内核出现一些问题了,需要根据具体的异常做处理。有的异常是不可以修复的,会导致系统死机,有的异常时可以修复的,比如页故障,可以拿来实现页面延迟映射,","中断是由处理器支持的一个临时打断当前执行流的功能,可分为设备中断和处理器异常。设备中断就是当网卡设备收到数据后会产生一个中断,打断处理器当前在处理的事情,去处理网络数据包。异常中断就是当处理器执行了一个不存在的指令或者访问了一个没有权限的内存地址,处理器就会中断当前的执行流,去对异常做一个处理,一般都是","中断管理","中断管理的实现是基于处理器的中断管理机制的,不同的架构具体实现机制可能有差别,但是在大体逻辑上都是一致的,因此可以抽象出一套统一的接口来供上层使用。","中断系统","二、原理","函数,相反关闭则是","前面有讲到关于全局中断的打开和关闭,全局中断的打开是","和","四、接口","当前的进程。","当需要注销某个中断的时候,只需要传入中断号以及注册时的数据即可。相当于解除了中断函数的绑定。","注册了中断后,并不能产生中断,还需要解除中断的屏蔽(unmask),相当于打开中断。除此之外,如果不希望产生该中断,则需要屏蔽某个中断(mask),相当于关闭中断。","由于中断数量会比较多,因此,都会有一个中断表来注册中断。然后由一个寄存器或者多个寄存器来记录该表的地址。产生中断的时候会去查表,根据具体的中断号去找对应的中断处理函数,简单来说就是去调用中断的回调函数。","等机制。","需要注册某个中断的时候,需要传入中断号,绑定中断处理函数,设置中断的参数数据,设置中断的名字。"],"programing-manual/interrupt/delay_queue.html":["*arg,","*nx_irq_delayworkcreate(nx_irq_workhandl","*work);","*work,","0,","=","enum","flags);","handler,","linux","nx_error","nx_irq_delayqueu","nx_irq_delayqueueenter(nx_irq_delayqueu","nx_irq_delayqueueleave(nx_irq_delayqueu","nx_irq_delaywork","nx_irq_delayworkdestroy(nx_irq_delaywork","nx_irq_delayworkhandl","nx_irq_delayworkhandle(nx_irq_delaywork","nx_irq_delayworkinit(nx_irq_delaywork","nx_irq_fast_queu","nx_irq_normal_queue,","nx_irq_period_queue,","nx_irq_queue_nr,","nx_irq_sched_queu","nx_irq_sched_queue,","nx_irq_slow_queu","nx_irq_slow_queue,","nx_irq_workhandl","nx_u32","queue,","void","{","};","一、描述","三、框架图","中断延迟队列","中断延迟队列在某个驱动或者内核组件中会进行初始化。当产生中断的时候,在中断处理函数中,只对中断产生时的数据进行保存,不对中断产生时的数据进行处理,","中断延迟队列是一种延迟处理中断的机制,类似于","中断机制中的中断下半部分,用来进行具体的中断处理。","中断的要求是快速地响应中断,并且是关闭了全局中断的,然后回到之前的工作。而延迟队列就是来完成这个工作的,产生了中断后,只进行最少的工作,","二、原理","优先级最低。","优先级最高,","内核的定时器属于","创建一个延迟的中断工作,需要传入中断工作处理函数入口,以及函数执行时的参数,就可以创建一个延迟的工作对象。","创建了一个中断工作对象,就需要将其加入到某个延迟队列中,只需要传入队列和工作对象的地址即可。","和加入延迟队列相反,有离开延迟队列,那么和加入的参数一样,只是意思相反而已。","四、接口","如果是一个静态对象,不需要创建,那么可以直接调用初始化,并传入该对象的地址即可,参数同上。","对象即可,传入工作对象的地址即可。","工作队列的优先级如下,其中","延迟队列","是在该延迟中断工作初始化的时候设定的。","最后,当有中断产生的时候,就可以去激活中断工作,那么则需要调用","有创建工作,那么就有销毁工作,只需要传入工作对象的地址即可。","来处理工作","然后激活中断队列工作,然后就返回,完成了本次中断。等到没有中断的时候,再去从延迟队列中获取一个工作来处理其对应的中断下半部分处理工作。","由于中断是具有一定优先级的,有的中断需要先处理,而有的中断则可以后处理,因此就有了多个中断队列,每个队列的优先级是不同的。至于需要加入哪种队列,","而内核的任务调度属于","而是处理中断延迟工作,然后就直接返回。等到响应了该中断之后,再去调用延迟队列中的工作。",",及时调度的精度低一点也没有太大影响。",",这样才能保证时间的精度。"],"programing-manual/timer/timer.html":["#defin","(*handler)(struct","*,","*/","*arg),","*arg,","*nx_timercreate(nx_uarch","*timer);","*timer,","/*","0x01","0x02","arg,","flags);","flags。","handler","int","millisecond","milliseconds,","nx_bool","nx_error","nx_timer","nx_timer_oneshot","nx_timer_period","nx_timerdestroy(nx_tim","nx_timerdestroy,","nx_timerinit","nx_timerinit(nx_tim","nx_timerstart","nx_timerstart(nx_tim","nx_timerstop","nx_timerstop(nx_tim","nx_uarch","on","oneshot","period","shot","timer","type","void","一、描述","三、框架图","二、原理","以及定时器的标志","创建定时器后需要调用","创建定时器需要指定需要超时的时间","即可。","只需要传入定时器对象地址即可。","启动它,才可以在超时后调用回调函数。","四、接口","在定时器还没开始运行的时候,可以销毁一个定时器,调用","如果是对静态的定时器进行初始化,只需要调用","定时器","定时器是基于系统时钟实现的,精度比较低(1ms~10ms),可以用于线程的休眠,以及对于休眠精度不高的场景。","就会将他们全部处理,调用定时器超时处理函数,然后更新最近超时定时器的ticks。","并传入定时器的地址即可。","当时钟中断产生的时候,会改变ticks的值,与此同时也会去检测是否有定时器超时,如果有定时器超时,则会去处理定时器超时函数。","当有一个定时器的ticks到达了最近超时定时器的ticks值的时候,就去检测定时器链表,如果有多个同样超时的定时器,","当需要停止定时器的时候,调用","最先超时的定时器会插入到链表头,超时时间比较久的定时器会被加入到链表的末尾。","有一个定时器链表来记录所有等待超时的定时器,值得注意的是,它们是通过线性的方式插入到链表中的。","来进行超时。","标志有多重,表明不同类型的定时器。","表示只超时一次,","表示周期性地按照","除此之外,还有一个最近超时的时间变量,来记录下一个即将超时的定时器,可以用它来检测是否需要去检测定时器链表。",",处理函数参数",",超时后调用的处理函数"],"programing-manual/port/riscv/riscv.html":["!=","\"=r\"(ret));","\"clock\"","\"init\"","\"multi","\"syscall\"","#defin","#els","#endif","#ifdef","#includ","%","%0\"","%p\",","%p,","%x\",","%x,","&","(!attr)","(!pte_used(*pte))","(\"rdtime","(1","(1);","(a0)","(a1)","(c)","(coreid","(for","(irqno","(level","(mmu_pd","(nx_addr)&trapentry0)","(nx_addr)&trapentry1)","(nx_addr)&trapentry2)","(nx_addr)&trapentry3)","(nx_addr)get_addr_from_satp(addr);","(nx_addr)nx_virt2phy(pagetablevir);","(nx_halcontext","(nx_syscallwitharghandler)nx_syscallgethandler((nx_syscallapi)fram","(nx_u8","(nx_uarch)(((nx_uarch)stack)","(nx_uarch)arg;","(nx_uarch)exitentry;","(nx_uarch)startentry;","(pagetablephi","(phsical","(pte","(tabl","(trapentri","(void","*","*)(pagephi","*)mmu","*)nx_align_down((nx_uarch)stack,","*)stack;","*)stacktop;","*/","*addr","*arg,","*args)","*args,","*atomic)","*atomic,","*context","*exitentry,","*frame)","*from","*kernelstack,","*mmu,","*nextsp","*nx_halcontextinit(void","*nx_halmappage(nx_mmu","*nx_halmappagewithphy(nx_mmu","*nx_halprocessgetkernelpagetable(void)","*nx_halvir2phy(nx_mmu","*paget","*pagetablevir)","*process,","*pte","*stack","*stacktop)","*startentry,","*tabl","*text,","*userstack);","*userstack,","*vmspace)","+","+=",".ack",".add",".align",".barrier",".barrierinstruct",".barrierread",".barrierwrit",".ca",".clearmask",".data.stack",".dec",".disabl",".enabl",".executeus",".extern",".freepaget",".get",".getkernelpaget",".getpaget",".global",".globl",".inc",".init",".inituserspac",".jpg)",".mappag",".mappagewithphi",".mask",".restorelevel",".savelevel",".section",".set",".setmask",".setpaget",".space",".sub",".swap",".switchnext",".switchpaget",".switchprevnext",".text",".text.start",".unmappag",".unmask",".vir2phi","/","/*","/**","//","0","0);","01","0;","0x2","0x80020000,","0x80200000,","0~nx_multi_cores_nr","1","1);","1.","10","10.","10000000","10mhz","11","12","15","16","16550a","1;","1。","2","2.","2.0","2018","2021","2022","2022,","2;","3","3.","31","39","3;","4.","48","4;","5.","57","6.","64","7","7.","8","8.","8192","9","9.",":","=","==",">a0",">a0);",">a0,",">a1,",">a2,",">a3,",">a4,",">a5,",">a6);",">a7",">a7);",">a7,",">epc",">mmu.tabl",">mmu.table);",">ra",">sp",">sstatu",">table;",">valu",">value),",">value,",">value;",">vmspace.mmu,","__assembly__","__mappage(mmu,","__mappagewithphy(mmu,","__sync_fetch_and_add(&atom","__sync_fetch_and_and(&atom","__sync_fetch_and_or(&atom","__sync_fetch_and_sub(&atom","__sync_lock_test_and_set(&((atomic)","__sync_synchron","__sync_synchronize();","__sync_val_compare_and_swap(&atom","__unmappage(mmu,","_entermain","_entermain:","_setsp0","_setsp0:","_setsp1","_setsp1:","_setsp2","_setsp2:","_setsp3","_setsp3:","_start","_start:","`pc`","`ra`","`ra`,","`sepc`","`sp`","`sret`,","`trap","a0","a0,","a0~a7","access","addr","addr)","addr;","addrend","address","addrstart","allow","anyth","apach","api","api:","arg","arg0:%x,","arg1:%x,","arg2:%x,","arg3:%x,","arg4:%x,","arg5:%x,","arg6:%x\",","asid","asid。表示当前程序的","atom","atomic.c、barrier.c、clock.c、context.c、interrupt.c即可。","atomic.c、barrier.c即可。","attr)","attr);","author","avoid","bare","barrier","base","befor","beq","bit","bootcoreid)","bootcoreid);","bss","build","bytes)","call","can't","chang","clean","clear","clearcsr(sie,","clock","config_nx_platform_k210","config_nx_uart0_from_sbi","const","contains:","context","control","copyright","core","core\"","coreid","coreid)","coreid;","corestack2:","corestack3:","cpu","cpu_inittrap(coreid);","cpu_stack0:","cpu_stack1:","cpu_stacktop0","cpu_stacktop0:","cpu_stacktop1","cpu_stacktop1:","cpu_stacktop2","cpu_stacktop2:","cpu_stacktop3","cpu_stacktop3:","csr","csrc","csrw","ctx_sp_off","data","date","descript","develop","differ","direct","disabl","driver","ecal","enabl","enter","entri","entry`","epc","err","err;","exitentry,","fault!\");","fenc","fence.i","first","five”)是一个基于精简指令集(risc)原则的开源指令集架构(isa)。","frame","frequenc","function","gcc","get_pf_id(addrend)","get_pf_id(addrstart)","gettimercounter()","hal","handler","handler(fram","hash","here","hold","http://byterunner.com/16550.html","hypervisor","hypervisor,supervisor,","i.","id","identifier:","id。","ier","ier_rx_en","if(vmspac","init","input","instead","instruct","interrupt","interupt","irqno)","irqno);","is:%d\",","isa)也处在草案版本1.10。","isa),而特权指令集(privileg","j","jasonhu","k210","k210,","kernel","la","level","level)","li","licens","load","logs:","long","loop","loop:","low","make","make_satp(addr));","manag","mask)","mask);","mean","memori","memory,","memroy","mhartid,","mmu","mmu_flushtlb();","mmu_pd","mmu_pt","mmu内存管理单元","mmu虚拟内存管理","mode","mode,","multi","mv","name","need","never","newvalue)","newvalue);","nextsp);","note","note:","notice:","number)。","nx_addr","nx_assert(handler);","nx_assert(mmu);","nx_assert(vmspace);","nx_atom","nx_atomicop","nx_atomicopsinterfac","nx_casm","nx_casm(\"fence\":::\"memory\");","nx_casm(\"fence.i\":::\"memory\");","nx_clocktickgo();","nx_contextop","nx_contextopsinterfac","nx_efault;","nx_einval;","nx_enomem;","nx_enor","nx_eok;","nx_error","nx_false);","nx_halatomicadd(nx_atom","nx_halatomicadd,","nx_halatomiccas(nx_atom","nx_halatomiccas,","nx_halatomicclearmask(nx_atom","nx_halatomicclearmask,","nx_halatomicdec(nx_atom","nx_halatomicdec,","nx_halatomicget(nx_atom","nx_halatomicget,","nx_halatomicinc(nx_atom","nx_halatomicinc,","nx_halatomicset(nx_atom","nx_halatomicset,","nx_halatomicsetmask(nx_atom","nx_halatomicsetmask,","nx_halatomicsub(nx_atom","nx_halatomicsub,","nx_halatomicswap(nx_atom","nx_halatomicswap,","nx_halclearbss();","nx_halclockhandler(void)","nx_halconsoleoutchar","nx_halcontext","nx_halcontextinit","nx_halcontextinit,","nx_halcontextswitchnext","nx_halcontextswitchnext(nx_addr","nx_halcontextswitchnext,","nx_halcontextswitchnext:","nx_halcontextswitchprevnext","nx_halcontextswitchprevnext(nx_addr","nx_halcontextswitchprevnext,","nx_halcontextswitchprevnext:","nx_halcorebootapp(nx_uarch","nx_halcorebootapp。","nx_halcoreenterapp,","nx_halcoregetindex(void)","nx_halcoregetindex。该索引是在处理器数组中的索引,不管什么处理器","nx_haldirectuartinit();","nx_haldirectuartstage2","nx_haldirectuartstage2();","nx_halen","nx_halenable(void)","nx_halenable,","nx_halgetkernelpagetable(),","nx_halgetkernelpagetable();","nx_halgetpaget","nx_halgetpagetable(void)","nx_halgetpagetable,","nx_halinitclock(void)","nx_halirqack(nx_irq_numb","nx_halirqack,","nx_halirqack。","nx_halirqdis","nx_halirqdisable(void)","nx_halirqdisable,","nx_halirqen","nx_halirqenable(void)","nx_halirqenable,","nx_halirqmask","nx_halirqmask(nx_irq_numb","nx_halirqmask,","nx_halirqrestorelevel(nx_uarch","nx_halirqrestorelevel,","nx_halirqrestorelevel。","nx_halirqsavelevel","nx_halirqsavelevel(void)","nx_halirqsavelevel,","nx_halirqunmask","nx_halirqunmask(nx_irq_numb","nx_halirqunmask,","nx_halmappag","nx_halmappage,","nx_halmappagewithphi","nx_halmappagewithphy,","nx_halmembarrier(void)","nx_halmembarrier,","nx_halmembarrierinstruction(void)","nx_halmembarrierinstruction,","nx_halmembarrierread(void)","nx_halmembarrierread,","nx_halmembarrierwrite(void)","nx_halmembarrierwrite,","nx_halpagezoneinit();","nx_halplatforminit","nx_halplatforminit(nx_uarch","nx_halplatformstage2(void)","nx_halplatformstage2中,可以使用内核的功能,内存分配,中断注册等。","nx_halprocessenterusermode(args,","nx_halprocessenterusermode(void","nx_halprocessexecuteus","nx_halprocessexecuteuser(const","nx_halprocessexecuteuser,","nx_halprocessfreepaget","nx_halprocessfreepagetable(nx_vmspac","nx_halprocessfreepagetable,","nx_halprocessgetkernelpaget","nx_halprocessgetkernelpagetable,","nx_halprocessinituserspac","nx_halprocessinituserspace(nx_process","nx_halprocessinituserspace,","nx_halprocessswitchpaget","nx_halprocessswitchpagetable(void","nx_halprocessswitchpagetable,","nx_halprocesssyscalldispatch","nx_halprocesssyscalldispatch(nx_haltrapfram","nx_halsetpaget","nx_halsetpagetable(nx_addr","nx_halsetpagetable,","nx_halunmappag","nx_halunmappage(nx_mmu","nx_halunmappage,","nx_halvir2phi","nx_halvir2phy,","nx_import","nx_interfac","nx_irq_control","nx_irq_controllerinterfac","nx_irq_restorelevel(level);","nx_irq_savelevel();","nx_log_*","nx_log_d(\"riscv64","nx_log_i(\"boot","nx_log_i(\"hello,","nx_log_i(\"stage2!\");","nx_log_info","nx_log_level","nx_log_nam","nx_main","nx_memalloc(nx_page_size);","nx_membarrierop","nx_membarrieropsinterfac","nx_memcopy(table,","nx_memfree(vmspac","nx_memzero(context,","nx_memzero(table,","nx_mmugetpagetable())","nx_mmuinit(&process","nx_mmuop","nx_mmuopsinterfac","nx_mmusetpagetable(pagetablephy);","nx_nr_irqs)","nx_null)","nx_null;","nx_page_addr_mask;","nx_page_alignup(size);","nx_page_size);","nx_page_size;","nx_panic(\"should","nx_panic(\"vir2phi","nx_printf","nx_privat","nx_processop","nx_processopsinterfac","nx_size","nx_syscallwitharghandl","nx_thread","nx_ticks_per_second","nx_ticks_per_second;","nx_timer_clk_freq","nx_u64","nx_u8","nx_uarch","nxo","old","old,","opensbi","opensbi,","output","page","pageoffset","pageoffset);","pageoffset;","pagephi","pagephy;","pages);","pagetablephi","pagewalk(pagetable,","pc","phyaddr","phyaddr,","platfrom","plic","plic_complete(nx_smp_getbootcore(),","plic_disableirq(nx_smp_getbootcore(),","plic_enableirq(nx_smp_getbootcore(),","plic_init(nx_true);","ppn","ppn。第一级硬件回填使用的","prevsp,","process","protect","pte","pte2paddr(*pte);","qemu","ra","rdtime","read","readcsr(satp);","readcsr(sstatus)","readcsr(sstatus);","readcsr(stvec);","receiv","regbytes(sp)","regist","registers.","reserv","restor","restore_context","ret;","return","return,","return:","rhr","risc","riscv(rv32)具有32个整数寄存器组(取名为:x0~x31),其中31个是通用寄存器(x1~x31),它们存储整数数值,寄存器x0是硬件连线的常数0。当你设计的riscv架构处理器实现了浮点扩展时,还必须有32个浮点寄存器f0~f31。对于rv32,其x寄存器是32位宽度的,xlen=32,对于rv64,它们是64位宽度的,xlen=64。","riscv64","riscv64!\");","riscv架构移植","routin","rto","rustsbi","rustsbi,其内核的入口地址为","same","satp","save","save_context","sbi","sbi,","sbi_entry.","sbi_init();","sbi_print_version();","sbi_set_timer(gettimercounter()","seciton,","see","sepc,","set","setcsr(sie,","sie","sie_stie);","size","size)","size,","sizeof(nx_halcontext));","sizeof(nx_halcontext);","sizeof(nx_uarch));","skip","smp多核","sp","sp,","space","spdx","src/arch/riscv64/port","sret","sscrach","sscratch","sscratch,","sstatu","sstatus,","sstatus_si","sstatus_sie));","sstatus_sie);","sstatus_sie;","sstatus_spi","sstatus_spie;","sstatus_spp","sstatus_sum","stack","stack,","stacktop","startentri","store","struct","stvec","supervisor","supervisor模式的中断的打开与关闭是由状态寄存器","support","sure","sv39","sv39,3级页表,页表和物理页都是4kb大小。","sv48","sv57","sv64","switch","syscal","system","t0,","t1","t1,","tabl","table,","team","text,","thr","thread","thread,","tickdelta","tickdelta);","timer","translat","transmit","trap","trapentri","trapentry0;","trapentry1;","trapentry2;","trapentry3;","tri","uart","uart.","updat","us","used!\");","user","user\");","user:","userstack);","user)。","v","valu","value)","value);","value;","viraddr","viraddr)","viraddr,","viraddr;","virstart,","virtual","void","vs","v中c语言函数参数是","v中断分为两种类型,一种是同步中断,即ecall、ebreak等指令所产生的中断,另一种是异步中断,即gpio、uart等外设产生的中断。","v已经确立了版本2.22的用户空间的指令集(userspac","v指令集可以自由地用于任何目的,允许任何人设计、制造和销售risc","v指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。","v架构移植","v的mmu支持多种模式,有sv32/sv39/sv48/sv57/sv64等。不同的模式映射的页面等级,页面大小是有差异的。在64位处理器种最常用的是sv39,它是3级4kb页面大小映射。","v的中断管理由处理器核局部中断clint(corelocalinterrupt)和平台级中断控制器plic(platformlevelinterruptcontroller)组成。clint分为软件中断核计时器中断,负责响应处理器的异常核和计时器中断。plic负责处理外设的中断。","v目前有4种特权模式(machine,","v芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。","v被设计成可扩展的,可以配置的,根据不同的应用场景可以生产带有不同功能扩展的处理器。","v(发音为“risk","walk","within","write.","writecsr(satp,","writecsr(sstatus,","{","|","|内容","|描述","}","};","~mask);","~sstatus_sie);","–","。","一、描述","三、代码移植","上下文切换是多线程实现的根基","上下文的切换分为上下文的初始化,从当前线程切换到下一个线程,直接切换到下一个线程。","上图为机器模式状态寄存器(rv32)","上图为机器模式状态寄存器(rv64)","不同的架构内核入口代码有差异,需要根据架构来实现","与大多数指令集相比,risc","中断只需要对","中断管理","中断管理接口对内核以及驱动都是至关重要的","中断表地址需要写入管理者模式的向量基址寄存器","中的","中这个频率是","中,使用了","中,多了对当前线程的上下文的保存的工作,然后切换到下一个线程。","中,获取了栈的值后,就从栈中恢复寄存器上下文,然后调用","中,进行初始化,初始化完串口后,就能使用打印功能了。","中,需要构建的上下文参数是线程的入口","串口可以配置为调用","串口来输出是非常方便的。","为","之下,最后返回栈低。","二、架构简述","以及线程运行时的参数","位保存和恢复。","位做置位和清理的操作即可。","作为机器模式的固件,qemu_riscv64平台选择了","使用这种方式的话,就非常方便移植到其它架构上。","保存的,其格式如下:","保存,因为上下文切换的时候会模拟一次异常返回,返回后就到这个异常地址处执行。","保存,它是返回地址的意思,表示线程返回后就去执行该函数。","值,","值,其返回值范围为","做了一些兼容,使用起来比较简单。","入口地址使用","入口地址在链接脚本中写的是","关闭。","具体字段的解析如下:","内存屏障","内存屏障前的所有读写操作完成后才能执行屏障后的读写操作","内存读/写屏障使用","内核入口","内置了原子操作的函数,","内置函数","内置的原子操作即可。","函数后,就可以使用","函数来打印消息。","初始化完成后,会跳转到","初始化线程上下文是在栈上构建一个线程的上下文,当第一次切换到该线程的时候,寄存器就会使用栈中的值。","原子操作","原子操作用于对数据的加减运算不会被打断,以及一些原子级别的数据交换等","原子操作需要实现对数据的原子设置,获取,加法,减法,数据交换等。由于","去实现,而获取操作可以直接通过","只需要实现","可以获取页表的地址。","可以通过虚拟地址找到其映射的物理地址。","号。","和","和禁用","和线程结束时执行的函数","和裸机开发种,很多时候都是直接使用机器模式。","唤醒后,应用核会进入","唤醒应用核只需要调用","四、移植总结","因此","在","在上下文切换的时候,需要注意的是,传入的是线程的栈的地址,可以从地址中取出线程当前栈的值。","在中断中,使能","在做时钟定时器初始化的时候,需要先关闭","在函数","在平台初始化","在调试过程中会遇到很多问题,需要耐心地调试。","地址翻译模式","如果只是需要运行起来,不需要线程环境,那么就只需要","如果当前定时器的值超过了超时定时器寄存器的值的时候,就会触发一个中断。注意:前提是打开了定时器中断。","如果支持多核,就可以在这个时候去唤醒其他核。不支持的话返回","实现","实现输出,也可以通过自己操作寄存器实现。在早期,调用","实现,","寄存器","寄存器保存。","寄存器的","对于","对处理器多核的启动和初始化","就注册了串口中断,可以接受输入。","平台初始化","应用核只需要设置中断表地址,初始化自己的中断控制器即可。","引导核初始化完成后,会初始化内核,在内核初始化完成后,就会进入启动应用核的阶段","当","当前","当超时后,就会产生一个中断,于是就设置下一个中断产生时的超时值。","截至2017年5月,risc","所以需要计算出产生一次中断,需要间隔多少个tick即可。","所有需要对接的接口都存放在","执行。","执行结束后,会从机器模式跳转到位于监护者模式的内核中,并且寄存器","执行,那么入口程序的移植就完成了。","指令去实现。内存指令屏障使用","指令实现。","指令获取。","指令集","指定的地址就行了。使用","控制的,置为1则表示使能中断,置为0则表示禁用中断。","提供的唤醒核心功能即可。","操作系统更多运行在","文件:src/arch/riscv64/kernel/context.","文件:src/arch/riscv64/kernel/sbi_entry.","文件:src/arch/riscv64/port/atomic.c","文件:src/arch/riscv64/port/barrier.c","文件:src/arch/riscv64/port/clock.c","文件:src/arch/riscv64/port/context.c","文件:src/arch/riscv64/port/interrupt.c","文件:src/arch/riscv64/port/mmu.c","文件:src/arch/riscv64/port/process.c","文件:src/arch/riscv64/port/smp.c","文件:src/platform/qemu_riscv64/drivers/direct_uart.c","文件:src/platform/qemu_riscv64/hal/init.c","新架构的移植,都是按照一套统一的接口去实现的。","时,mmu","映射虚拟地址,但是会指定物理地址,就不用自动分配物理地址了。","是使能","是映射虚拟地址,会自动分配物理地址并映射页面。","更贴近,也不用管太多机器模式需要做的事情。通常,","最开始是可以不开启","机器模式用于固件程序代码执行,例如","架构中,内存全(读和写)屏障使用","模式去调用内核提供的服务。","模式的定时器中断,然后再设置超时定时器的值。","模式(因为线程的切换是在内核中完成的)。","模式,进入内核。内核只需要链接到","模式,降低开发的复杂度。","没有资源即可。","然后再初始化中断,初始化物理内存管理。","特权模式","特权级寄存器的命名规则,特权模式+寄存器名字,表示只能在该特权级使用。比如status寄存器,在机器模式有mstatus,监管模式有sstatus。","用于分发系统调用,不同的架构传参数的方式会有区别,因此需要特殊处理。","用于在进程切换的时候切换页表。","用于在进程创建的时候,创建进程的页表","用于在进程退出的时候释放页表。","用于获取内核的页表。","用于进程从内核跳到用户态执行。","用户模式就是应用程序执行的模式,需要通过系统调用进入到","由于","由于我们想实现1秒钟产生","的","的好处是,可以直接使用串口的输入输出,很方便调试,不用自己从机器模式跳转到","的封装。","的设置,","的,最开始不需要跑进程,","监管者模式的页表的地址是由地址转换寄存器","监管者模式,这样可以和","目前支持的是mmu","目录下面,新的平台只需要支持这些接口的功能即可。","硬件回填根","硬件时钟会按照一定的频率去增长当前定时器寄存器的值,在","移植一个新的平台需要实现如下内容:","移植过程是需要慢慢琢磨,长期积累,才能实现更好的代码。","等于","等,但是在","线程上下文","线程栈使用","结束时执行的函数使用","至于在","虚拟化模式用于使用虚拟化的场景,目前还在开发阶段。","虚拟地址的实现和访问,mmu的切换,映射和解除页面映射","解除地址映射,解除后就不能访问了。","计时器时钟","计时器时钟用于驱动多线程的切换和内核定时器","记录了当前处理器核心的","设置了线程的入口地址,那么","设置页表的地址到硬件寄存器中,当访问虚拟地址的时候,会根据设置的页表进行地址转换。","该代码简单地设置了栈就进入了","该操作只是多了对","该项目2010年始于加州大学伯克利分校,但许多贡献者是该大学以外的志愿者和行业工作者。","调用平台的初始化代码","返回。","返回后就可以让","还有一个很重要的地方就是对状态寄存器","还有值得注意的是,获取处理器的索引","这3个接口都是对","这个符号,因此会进入","这是操作需要通过","这里只需要调用","进程管理","进程管理相关操作是实现进程的必要条件","选择了","通常,都是在启动后尽快地实现串口调试,以便能够知道自己跑到什么地方了。","都会被映射成索引,相当于是处理器","针对","除此之外就是对某个中断的使能","除此之外,还提供了对当前中断状态保存和恢复的操作","需要能够访问用户态的内存,需要在返回后开启中断以及设置为","预留一个上下文空间后,设置参数为","(一般在100~1000)次定时器中断的效果,","(以上摘自百度百科)",",产生中断后,就去该寄存器保存的中断向量表地址找中断号对应的中断服务。",",以及中断处理完后的应答处理",",以及将这些数据构建在栈顶",",其内核的入口地址为",",可以根据寄存器的值来判断处理器",",因为risc",",并复制内核的页表项。",",所有地址都变成虚拟地址了。",",那么就切换到线程里面去了。"],"programing-manual/platform/i386.html":["#","+","1.","16","1978","1985","2.","3.","32","32位的pc电脑基本都是x86架构,而最早的一款处理器就是i386。因此,几乎所有的32位电脑都兼容i386。","4.","5.","80186、80286、80386","80386","80486。","8086","[","[x]","]","cpu。intel","cpu,而之前的都是","ctrl","defconfig","gdb调试","grub2引导","i386","i386平台简介","intel","j8","jn是多线程编译","linux","make","mmu支持","run","setup.bat","setup.sh","smp多核","sourc","window","x86","z","上下文切换","中断管理","串口输入输出","之后又推出了包括","从","以及","位","位。","位的扩展,实现了","内存屏障","内存管理","初始化环境","功能支持","原子操作","定时器时钟","年","年推出的","开始,intel","执行用户态程序","架构进行","架构首度出现在","系统调用支持","编译运行","获取默认配置","运行方法","进入nxos源码,打开终端。","退出qemu","通过单元测试和集成测试","通过对"],"programing-manual/platform/qemu_riscv64.html":["#","+","1.","2.","3.","4.","5.","[x]","ctrl","defconfig","gdb调试","j8","jn是多线程编译","linux","make","mmu支持","opensbi固件","qemu_riscv64","qemu_riscv64平台简介","qemu是一种通用的开源计算机仿真器和虚拟器。本平台就是qemu对riscv64架构的仿真支持。","riscv64","run","setup.bat","setup.sh","smp多核","sourc","window","z","上下文切换","中断管理","串口输入输出","内存屏障","内存管理","初始化环境","功能支持","原子操作","定时器时钟","执行用户态程序","系统调用支持","编译运行","获取默认配置","运行方法","进入nxos源码,打开终端。","退出qemu","通过单元测试和集成测试"],"programing-manual/platform/k210.html":["#","(dmac)","(fpioa)","(rv64gc)","+","/","0.8tflop","1.","2.","3.","4.","400mhz(可超频到600mhz)","5.","64","64bit","8mib","[","[x]","]","aes,","bit","cpu","ctrl","defconfig","fpu","gdb调试","i2c,","i2s,","io","j8","jn是多线程编译,","k210","k210平台简介","k210是嘉楠科技公司推出的基于risc","linux","linux:","make","mmu支持","pwm,","risc","riscv64","rtc,","run","rustsbi固件","rv64imafdc","setup.bat","setup.sh","sha256","smp多核","sourc","spi,","sram(6mib通用sram+2mib的ai专用sram)","uart,","uart=/dev/ttyusb0","uart=com3","uart是串口设备,需要在设备列表查看是哪个设备,默认是/dev/ttyusb0,可以不写。","uart是串口设备,需要在设备管理器查看,k210的设备是哪个串口。","v","v架构的64位双核soc。","window","windows:","上下文切换","中断管理","串口输入输出","内存屏障","内存管理","初始化环境","功能支持","加速器","勘智kendryt","原子操作","双核","双硬件512点16位复数fft","双精度","可编程","定时器支持","定时器时钟","执行用户态程序","片上","直接内存存取控制器","神经网络处理器(kpu)","系统调用支持","编译运行","获取默认配置","运行方法","进入nxos源码,打开终端。","退出k210的运行","通过单元测试和集成测试","阵列","音频处理器(apu)"],"programing-manual/user/api.html":["*addr)","*addr,","*arg)","*arg,","*buf,","*cond)","*directoryread(nx_dir","*memalloc(us","*mutex)","*object)","*path)","*path,","*time)","*value)","addr,","api应用程序接口","api设计","attr)","attr,","bytes)","char","cmd,","cond,","condit","conditioncreate(int","conditiondelete(condit","conditioninit(condit","conditionsleep(condit","conditionwake(condit","conditionwakeall(condit","dest,","dev)","dev,","deviceclose(int","devicecontrol(int","devicecreate(char","devicedelete(char","deviceopen(char","deviceread(int","devicewrite(int","dir)","directoryclose(nx_dir","directoryopen(char","directoryrewind(nx_dir","env)","exitcode)","fd)","fd,","flags)","flags,","handler,","int","isiz","len,","memcopy(void","memfill(void","memfree(void","memmap(void","memmove(void","memunmap(void","memzero(void","mutex","mutex)","mutex,","mutexacquire(mutex","mutexcreate(int","mutexdelete(mutex","mutexinit(mutex","mutexrelease(mutex","mutextryacquire(mutex","name)","name,","nx_bool","nx_dir","nx_directorycreate(char","nx_directorydelete(char","nx_direntri","nx_error","nx_fd","nx_fileaccess(char","nx_fileclose(nx_fd","nx_filecreate(char","nx_filedelete(char","nx_fileisend(nx_fd","nx_fileopen(char","nx_fileread(nx_fd","nx_fileseek(nx_fd","nx_filetelloffset(nx_fd","nx_filewrite(nx_fd","nxos的api接口分为几个大类。进程,线程,内存管理,时间管理,枢纽系统,文件系统,设备管理,网络管理,图形管理,安全管理,用户态驱动框架。","offset","offset)","offset,","path,","pid)","pid,","processcreate(char","processexit(int","processgetid(void)","processterminate(int","processwait(int","seekmethod)","size)","size,","src,","ssize","stacksize,","system设计好了再设计接口,目前还没有概念","threadcreate(threadhandl","threadexit(int","threadgetid(void)","threadresume(int","threadsuspend(int","threadterminate(int","threadwait(int","tid)","tid,","timegetclock(void)","timegetcurrent(timesytem","timeout,","timesetcurrent(timesytem","tlsalloc(void)","tlsfree(int","tlsgetvalue(int","tlsindex)","tlsindex,","tlssetvalue(int","u8","usiz","value)","void","休眠等待条件变量","关闭文件","关闭目录","关闭设备","内存管理","写入文件","写入设备","函数","分配一个tl","分配内存","创建互斥体","创建文件","创建条件变量","创建目录","创建线程","创建设备","创建进程","初始化互斥体","初始化条件变量","删除互斥体","删除文件","删除条件变量","删除目录","删除设备","功能","参考socket套接字接口设计","唤醒休眠等待条件的全部线程","唤醒休眠等待条件的单个线程","图形系统","填充内存","复制内存","安全管理","尝试获取互斥体","恢复线程","打开文件","打开目录","打开设备","挂起线程","文件系统","时间管理","映射内存","暂不设计,等内核基本功能完成后再设计","暂不需要","本文档存放的是用户程序的编程接口的设计说明。","枢纽系统","检查文件结束","清空内存","用户态驱动框架","移动内存","等hub","等内核基础功能完成后实现","等待线程退出","等待进程退出","索引文件","线程管理","终止线程","终止进程","网络系统","获取tls的值","获取互斥体","获取当前的时间","获取文件偏移","获取系统运行的时间","获取线程id","获取进程id","解除映射内存","设备管理","设置tls的值","设置当前的时间","读取文件","读取目录","读取设备","进程管理","退出线程","退出进程","释放一个tl","释放互斥体","释放内存","重置读取位置"],"tutorial/code-style.html":["\"\"","\"_\"","\"{\"","#defin","#els","#else,","#endif","#endif这种时,需要在开头和结尾后面写上注释来帮助开发这快速找到对应的宏。","#ifdef","#ifndef","(","(*soundcallbackhandler)(void","(*write)(void","(c)","(condition)","(data)","(x","*","*/","*buffer,","*cpugetcurrent(void)","*deviceptr;","*param,","*stackbase,","*threadname,","...","/*","/**","//","1","1.目录名称","10","10.注释编写","11.缩进以及分行","12","12.大括号与空格","13.函数指针类型定义","14.函数参数太多","15.宏条件定义","16;","2.0","2.文件名称","2018","2021","2021,","3.头文件定义","32","4","4.头文件注释","5.变量命名","6.函数命名","7.结构体定义","8.枚举定义","9","9.宏定义","=","\\","__driver_keyboard__","__file__","add","apach","author","bad!!!","booko","break;","buffer","bufsiz","case","chang","char","code","comment","consoleprint(str);","consoleprintcolor(color,","consolerestorecolor()","consolesetcolor(color);","contains:","content","copyright","cpu","c语言头文件为了避免多次重复包含,需要定义一个符号。这个符号的定义形式请采用如下的风格:","data1:","data2:","date","default:","develop","devic","device_name_len","enum","exampl","file","header","identifier:","if、for、while、switch","init","int","jasonhu","len);","licens","line","line1","line2","log","logs:","multi","mythread,","name[sound_device_name_len];","note","nx_createthread(char","nx_has_onecor","nx_has_smp","nx_size","nx_thread","nxo","priority)","reference;","set","singl","size","sndhandler;","sound_ac97,","sound_hd,","sound_pc,","soundcallbackhandl","sounddevic","sounddevice;","soundtyp","soundtype;","spdx","stacksize,","str)","struct","style","switch","team","threadfindbynam","threadhandl","threadhandler,","tmpfilebuff","typedef","vfs_createfil","void","x","x:","xxx","yyi","{","}","};","个空格的方式。如果没有什么特殊意义,请在","从代码阅读角度,建议每个大括号单独占用一行,而不是跟在语句的后面,例如:","代码风格","以避免重名,另外也可以根据文件名中是否包含多个词语而采用","使用大写作为名字,单词间使用\"_\"隔开,例如:","例如采用如上的形式。","例如:","其中\"{\"和\"}\"需要单独使用一行。","函数采用大驼峰命名风格,即每个单词的首字母都大写,如果单词是用的缩写,那么单词之间需要用\"_\"隔开,例如:","匹配的大括号单独占用一行,代码阅读起来就会有相应的层次而不会容易出现混淆的情况。空格建议在非函数方式的括号调用前留一个空格以和前面的进行区分,例如:","即定义的符号两侧采用","变量采用小驼峰命名风格,即首字母小写,后续单词首字母大写,例如:","后进行分行,并在下一行都采用缩进的方式,例如:","唯一的例外是","在使用函数指针类型定义的时候,需要使用handler后缀,来表示是一个处理函数。","在每个源文件文件头上,应该包括相应的版权信息,文件描述,chang","如果函数参数为空,必须使用void作为入口函数,例如:","如果需要在类型定义中使用指针,则需要使用ptr后缀或者其他可以表达意思的单词指明。","对齐的方式,","建议在括号前留出一个空格(涉及的包括","当使用宏条件#if,","当函数参数过多的时候,一行写不下,那么就需要把每个参数写成一行。","当宏需要使用多行的时候,则使用空格+\"\\\"的形式进行换行,例如:","总结","文件名称也是使用首字母大写,如果有缩写,可以全部都大写。文件命名尽量不要使用通用化、使用频率高的名称。例如:mutexlock.c","有一个例外,就是如果遇到循环函数,里面不会执行代码的情况,括号就直接写在右边。","本文档是关于nxos的代码编程风格的描述。开发者必须遵守本文档规范进行开发。nxos系统内核使用c语言作为主要开发语言,因此以下规则仅仅适用于c语言代码。","枚举结构名也是用大驼峰,枚举成员使用全大写,单词间用\"_\"隔开。","注意,\"//\"注释只能放到右边。","源代码的注释不应该过多,更多的说明应该是代码做了什么,仅当个别关键点才需要一些相应提示性的注释以解释一段复杂的算法它是如何工作的。对语句的注释只能写在它的上方或右方,其他位置都是非法的。","目录名称采用首字母大写的形式,子目录应该是属于父目录的内容,需要有相关性。例如:drivers/disk/","相信看到最后,您已经对我们的编程规范有了一定的了解,那么就开始您的nxos开发之旅吧!","结构体命名使用大驼峰风格,结构体成员使用小驼峰命名,如果成员是函数指针,则使用大驼峰。","结构体的类型定义是为了消除struct关键字,可以和结构体名一致。","编程风格","缩进请采用","记录:","语句),而运算表达式中,运算符与字符串间留一个空格。另外,不要在括号的表达式两侧留空格,例如:","语句与","语句采用","语句,switch","请使用英文做为注释,使用中文注释将意味着在编写代码时需要来回不停的切换中英文输入法从而打断编写代码的思路。并且使用英文注释也能够比较好的与中国以外的技术者进行交流。除非必须引用原来的文本的时候,就可以写中文。","连接起来。例如:"],"tutorial/commit-rule.html":["():",":","add","alloc","bodi","buddi","bug","build","chang","chore","code,","commit","doc","docs(mm):","docs:文档(documentation)","exfat.","fat12,","fat12:","fat16,","fat32,","fat32:","fatfs,","feat(mm):","feat:新功能(feature)","fix(mm):","fix:修补bug","floppi","function","header","header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。","kernel","log","log,建议是不要。","messag","nx_","page","prefix","refactor(mm):","refactor:重构(即不是新增功能,也不是修改bug的代码变动)","revert","revert:","scope","scope用于说明","sdcard/harddisk","simpl","style(*):","style:","subject","subject是","suport","system","test(mm):","test:增加测试","type","updat","us","utest","weel.","work","xbuild改成了xmak","不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。","举例","之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入","代码提交日志规则commitrul","以动词开头,使用第一人称现在时,比如change,而不是changed或chang","使用第一人称现在时,比如使用change而不是changed或changes。","例如在mm,thread,fs等。","其中,header","其他注意事项:","可以省略。","如","如果type为feat和fix,则该","如果你的修改影响了不止一个scope,你可以使用*代替。","将肯定出现在","应该说明代码变动的动机,以及与以前行为的对比。","当我们添加代码要提交到git仓库中时,我们需要统一下规范,这样不会显得整个项目乱糟糟的,当然是需要花点时间来学习和改变的。每次提交的代码尽量短小,涉及范围不要太广,专注于某个领域。","影响的范围,比如文件系统,进程管理,内存管理等等,视项目不同而不同。","提交规则","撤销上一次的","改变了build工具","是必需的,bodi","有两个注意点:","构建过程或辅助工具的变动,比如把grub改成了uefi。","格式(不影响代码运行的变动)","每次提交,commit","永远别忘了第2行是空行","用于说明","的类别,只允许使用下面7个标识。","的详细描述,可以分成多行。下面是一个范例。","目的的简短描述,不超过50个字符。","第一个字母小写","结尾不加句号(.)","部分是对本次","都包括两个部分:header和body。"],"tutorial/menuconfig.html":["#","defconfig","make","menuconfig","menuconfig是一个可以在终端显示的图形化配置界面,他不仅可以极大的方便我们对于配置文件的修改,","menuconfig简介","nxos使用了一个python开发的menuconfig,它的跨平台性以及易用性成为了我们的首选。","run","saveconfig","只编译","在nxos中使用menuconfig","在根目录中,打开一个终端,在配置了环境变量之后,就可以使用配置了。","完成配置后,就可以进行编译了,编译的时候就会根据最新的配置进行编译。","对于开发者而言,我们已经做好了配置,你只需要知道如何去使用即可。","当你要使用某个平台的配置时,需要通过设置默认配置来进行选择。","更新配置文件","最后,如果想要保存当前的配置到选中的平台,则需要在执行save操作才行。操作完后,你所修改的配置就保存了,当切换到其它平台后,这个配置依然存在,只需要重复第一步,更新一下配置即可。","编译并运行","菜单配置","还能自动处理依赖关系。","进行菜单配置,就可以选择你想要的功能或者进行某些功能的配置。配置完后,可以根据菜单的提示进行退出或者保存。"],"tutorial/toolchains.html":["64/i386工具链:","64/i386工具链:apt","apt","elf","gcc","gcc\\bin","instal","linux工具链只需要从软件包管理器下载安装即可:","risc","riscv64","toolchains\\x86_64","unknown","v64/32工具链:","v64工具链:","x86","一、windows环境工具","下载到本地后,需要手动解压到一个目录下面,然后对工具链的bin路径配置环境变量。","下载工具链","二、linux环境工具","例如:","工具链","服务器下载(较慢)","本文档存放了工具链的下载地址,搭建编译环境的时候需要下载工具链后再进行编译。","百度网盘链接,提取码:nxo","解压到工具目录下面","解压到路径:nxo","配置环境变量时的路径:nxo"],"tutorial/utest.html":["\"hello!\";","\"hello\");","\"world!\");","\"world!\";","\"world\");","#","(char","*)","*/","*p","*q","*s","/*","0,","0x1000;","0x20,","0x30,};","0x50,","0x60,};","1);","1,","2,","3);","32);","4);","5);","=","assert_false(...)","assert_true(...)","buf0[32]","buf1,","buf1[32]","buf2,","buf2[32]","char","except_false(...)","except_true(...)","make","nx_assert_bufeq(buf0,","nx_assert_bufne(buf1,","nx_assert_eq(1,","nx_assert_false(0);","nx_assert_false(nx_false);","nx_assert_ge(3,","nx_assert_gt(4,","nx_assert_in_range(1,","nx_assert_in_range(4,","nx_assert_in_range(5,","nx_assert_le(3,","nx_assert_lt(3,","nx_assert_ne(0,","nx_assert_ni_range(0,","nx_assert_ni_range(1,","nx_assert_ni_range(5,","nx_assert_ni_range(6,","nx_assert_not_null(q);","nx_assert_null(p);","nx_assert_streq(\"hello\",","nx_assert_streq(s,","nx_assert_strne(\"hello\",","nx_assert_strne(s,","nx_assert_true(1);","nx_assert_true(nx_true);","nx_eok;","nx_null;","nx_test(test)","nx_test(test1)","nx_test(test2)","nx_test(test3)","nx_test(testunitname)","nx_test(yyy)","nx_test_case(testcasename);","nx_test_case(utest);","nx_test_case(xxx);","nx_test_case_clean(testcasename)","nx_test_case_clean(utest)","nx_test_case_setup(testcasename)","nx_test_case_setup(utest)","nx_test_clean(test)","nx_test_clean(testunitname)","nx_test_setup(test)","nx_test_setup(testunitname)","nx_test_table(testcasename)","nx_test_table(utest)","nx_test_table(xxx)","nx_test_unit(test),","nx_test_unit(test1),","nx_test_unit(test2),","nx_test_unit(test3),","nx_test_unit(testunitname),","nx_test_unit(yyy),","nx_test_unit_clean(testunitname),","nx_test_unit_setup(testunitname),","nx_test_unit_setup_clean(test),","nx_test_unit_setup_clean(testunitname),","return","run","s","tc=i","tc是testcase的缩写,表示启用测试案例。","{","{0x10,","{0x40,","}","};","不带setup和clean的单元","举例:单元测试自身测试","使用方法","单元测试","单元测试表,填写要测试的单元","在menuconfig中,打开单元测试功能,选取需要测试的单元,退出保存。","在命令行中输入命令即可开始测试:","定义一个单元测试","带clean的单元","带setup和clean的单元","带setup的单元","最小的单元测试","最精简框架:","测试","着重点:参数,返回值,功能。","进入一个单元测试时执行","进入单元时执行","退出一个单元测试时执行","退出单元时执行","针对函数单元进行测试,测试函数的基本功能,稳定性,健壮性,覆盖率。"]},"length":26},"tokenStore":{"root":{"0":{"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00209819555182543}},"x":{"0":{"1":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}},"2":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}},"docs":{}},"1":{"0":{"0":{"0":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"docs":{}},"docs":{}},"2":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"3":{"0":{"docs":{},",":{"docs":{},"}":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}}}},"docs":{}},"5":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"6":{"0":{"docs":{},",":{"docs":{},"}":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}},"docs":{}},"8":{"0":{"0":{"2":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"2":{"0":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"2":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"f":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.02531645569620253}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}},"~":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"n":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},".":{"8":{"docs":{},"t":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}},"docs":{}}},"1":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0029374737725556023},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"注":{"docs":{},"释":{"docs":{},"编":{"docs":{},"写":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"m":{"docs":{},"h":{"docs":{},"z":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"1":{"2":{"docs":{},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},".":{"docs":{},"缩":{"docs":{},"进":{"docs":{},"以":{"docs":{},"及":{"docs":{},"分":{"docs":{},"行":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},"2":{"8":{"docs":{},"等":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.002517834662190516},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},".":{"docs":{},"大":{"docs":{},"括":{"docs":{},"号":{"docs":{},"与":{"docs":{},"空":{"docs":{},"格":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},"3":{"docs":{},".":{"docs":{},"函":{"docs":{},"数":{"docs":{},"指":{"docs":{},"针":{"docs":{},"类":{"docs":{},"型":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}},"4":{"docs":{},".":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"太":{"docs":{},"多":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},"5":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},".":{"docs":{},"宏":{"docs":{},"条":{"docs":{},"件":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}},"6":{"5":{"5":{"0":{"docs":{},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}},"docs":{}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"9":{"7":{"8":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"docs":{}},"8":{"5":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"docs":{}},"docs":{}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003357112882920688},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},".":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"目":{"docs":{},"录":{"docs":{},"名":{"docs":{},"称":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"m":{"docs":{},"b":{"docs":{},")":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}},"s":{"docs":{},"~":{"1":{"0":{"0":{"docs":{},"m":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"docs":{}},"docs":{}},"docs":{}}}},")":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},"]":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.022727272727272728}}}},"2":{"0":{"1":{"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"docs":{}},"2":{"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00419639110365086},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947}}}},"docs":{}},"docs":{}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},".":{"0":{"4":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"文":{"docs":{},"件":{"docs":{},"名":{"docs":{},"称":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"3":{"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"2":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.02197802197802198},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}},"m":{"docs":{},"b":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.06329113924050633}}}},"位":{"docs":{},"的":{"docs":{},"p":{"docs":{},"c":{"docs":{},"电":{"docs":{},"脑":{"docs":{},"基":{"docs":{},"本":{"docs":{},"都":{"docs":{},"是":{"docs":{},"x":{"8":{"6":{"docs":{},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"而":{"docs":{},"最":{"docs":{},"早":{"docs":{},"的":{"docs":{},"一":{"docs":{},"款":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"就":{"docs":{},"是":{"docs":{},"i":{"3":{"8":{"6":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"几":{"docs":{},"乎":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"3":{"2":{"docs":{},"位":{"docs":{},"电":{"docs":{},"脑":{"docs":{},"都":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"i":{"3":{"8":{"6":{"docs":{},"。":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}}},"9":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},".":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.013636363636363636}}}}},"4":{"0":{"0":{"docs":{},"m":{"docs":{},"h":{"docs":{},"z":{"docs":{},"(":{"docs":{},"可":{"docs":{},"超":{"docs":{},"频":{"docs":{},"到":{"6":{"0":{"0":{"docs":{},"m":{"docs":{},"h":{"docs":{},"z":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}},"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}},"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"注":{"docs":{},"释":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}}},"5":{"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"变":{"docs":{},"量":{"docs":{},"命":{"docs":{},"名":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.03636363636363636}}}}},"6":{"4":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"/":{"docs":{},"i":{"3":{"8":{"6":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},":":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"]":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"函":{"docs":{},"数":{"docs":{},"命":{"docs":{},"名":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}},"8":{"0":{"1":{"8":{"6":{"docs":{},"、":{"8":{"0":{"2":{"8":{"6":{"docs":{},"、":{"8":{"0":{"3":{"8":{"6":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"3":{"8":{"6":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"docs":{}},"docs":{}},"4":{"8":{"6":{"docs":{},"。":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}},"docs":{}},"docs":{}},"8":{"6":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"docs":{}},"docs":{},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}},"1":{"9":{"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}},"docs":{}},"docs":{}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"枚":{"docs":{},"举":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"m":{"docs":{},"i":{"docs":{},"b":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"9":{"6":{"docs":{},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"宏":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.05},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},")":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"v":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}},"i":{"docs":{},"r":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"docs":{}}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"d":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"e":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.002517834662190516}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"i":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"j":{"docs":{},"p":{"docs":{},"g":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}}},"u":{"docs":{},"b":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.024793388429752067}}},"a":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}},"~":{"docs":{},"a":{"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"docs":{}}}},"docs":{},"m":{"docs":{},"d":{"6":{"4":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"docs":{}},"docs":{}}},"p":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"t":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}},"p":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"i":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.0625},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},")":{"docs":{},";":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"应":{"docs":{},"用":{"docs":{},"程":{"docs":{},"序":{"docs":{},"接":{"docs":{},"口":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"设":{"docs":{},"计":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":10}}}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0136986301369863}}}},"m":{"3":{"2":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"docs":{}},"6":{"4":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"docs":{}},"docs":{},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"g":{"0":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"1":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"2":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"3":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"4":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"5":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"6":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},"\"":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}},".":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}},"d":{"docs":{},"d":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.05785123966942149}},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"s":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00209819555182543}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.015544041450777202}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"i":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"、":{"docs":{},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"、":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{},"c":{"docs":{},"、":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"、":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}},"w":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"。":{"docs":{},"表":{"docs":{},"示":{"docs":{},"当":{"docs":{},"前":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"算":{"docs":{},"法":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":10}}}}}}},"i":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.05434782608695652},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.05785123966942149}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}},"f":{"0":{"docs":{},"[":{"3":{"2":{"docs":{},"]":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"docs":{}}},"1":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"[":{"3":{"2":{"docs":{},"]":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"docs":{}}},"2":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"[":{"3":{"2":{"docs":{},"]":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"docs":{}}},"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},"g":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}},".":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"k":{"docs":{},"o":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"d":{"docs":{},"i":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.01652892561983471}}}}},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}},"r":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"d":{"docs":{},"!":{"docs":{},"!":{"docs":{},"!":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"q":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}},"i":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.002517834662190516},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"s":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}}}}},"d":{"1":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}},"i":{"docs":{},"c":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},"a":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"t":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}},"o":{"docs":{"./":{"ref":"./","tf":0.030303030303030304}},"c":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"s":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},":":{"docs":{},"文":{"docs":{},"档":{"docs":{},"(":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"1":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"2":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"i":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043}},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"算":{"docs":{},"法":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":10}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"部":{"docs":{},"分":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"行":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"三":{"docs":{},"个":{"docs":{},"字":{"docs":{},"段":{"docs":{},":":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},"必":{"docs":{},"需":{"docs":{},")":{"docs":{},"、":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},"可":{"docs":{},"选":{"docs":{},")":{"docs":{},"和":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"必":{"docs":{},"需":{"docs":{},")":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"a":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},":":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}}}}}}}}}}}}}}},"r":{"docs":{},"d":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"(":{"docs":{},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}},"s":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"u":{"docs":{},"b":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"o":{"docs":{},"l":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"1":{"6":{"5":{"5":{"0":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}},"i":{"2":{"docs":{},"c":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"s":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"3":{"8":{"6":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.020100502512562814},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":10}},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"平":{"docs":{},"台":{"docs":{},"简":{"docs":{},"介":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}},"docs":{}},"docs":{}},"docs":{},"s":{"docs":{},"s":{"docs":{},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}},":":{"docs":{},"%":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"a":{"docs":{},")":{"docs":{},"也":{"docs":{},"处":{"docs":{},"在":{"docs":{},"草":{"docs":{},"案":{"docs":{},"版":{"docs":{},"本":{"1":{"docs":{},".":{"1":{"0":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}},",":{"docs":{},"而":{"docs":{},"特":{"docs":{},"权":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}}}},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.03015075376884422},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"i":{"docs":{},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.005455308434746118},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"f":{"docs":{},"o":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.12435233160621761},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}}},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"l":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"/":{"docs":{},"o":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"框":{"docs":{},"架":{"docs":{},"和":{"docs":{},"中":{"docs":{},"断":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}},"o":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"p":{"docs":{},"c":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"r":{"docs":{},"q":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"n":{"docs":{},"o":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}},";":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.03389830508474576},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}},",":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.03389830508474576}}}}}}},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"_":{"docs":{},"r":{"docs":{},"x":{"docs":{},"_":{"docs":{},"e":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"f":{"docs":{},"(":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"、":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"、":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"、":{"docs":{},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}},"k":{"2":{"1":{"0":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":10.016806722689076}},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"平":{"docs":{},"台":{"docs":{},"简":{"docs":{},"介":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"是":{"docs":{},"嘉":{"docs":{},"楠":{"docs":{},"科":{"docs":{},"技":{"docs":{},"公":{"docs":{},"司":{"docs":{},"推":{"docs":{},"出":{"docs":{},"的":{"docs":{},"基":{"docs":{},"于":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}},"l":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00209819555182543}},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},":":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"下":{"docs":{},"设":{"docs":{},"置":{"docs":{},"i":{"3":{"8":{"6":{"docs":{},"环":{"docs":{},"境":{"docs":{},"并":{"docs":{},"设":{"docs":{},"置":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"=":{"docs":{},"x":{"8":{"6":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"环":{"docs":{},"境":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"=":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}},"环":{"docs":{},"境":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"软":{"docs":{},"件":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}}}}}}}}}}}}}},"e":{"1":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"2":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}},"s":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947}},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}},"c":{"docs":{},"k":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"w":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"a":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"g":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"s":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},",":{"docs":{},"建":{"docs":{},"议":{"docs":{},"是":{"docs":{},"不":{"docs":{},"要":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},":":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003357112882920688}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"n":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},")":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}},"m":{"docs":{},"m":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"u":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.16455696202531644},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}},"_":{"docs":{},"f":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"h":{"docs":{},"t":{"docs":{},"l":{"docs":{},"b":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}}}}},"p":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"单":{"docs":{},"元":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}},"支":{"docs":{},"持":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.06532663316582915},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.02197802197802198},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.029411764705882353},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.025210084033613446},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.19230769230769232},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"_":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"p":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}},"x":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"s":{"docs":{},"k":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"终":{"docs":{},"端":{"docs":{},"显":{"docs":{},"示":{"docs":{},"的":{"docs":{},"图":{"docs":{},"形":{"docs":{},"化":{"docs":{},"配":{"docs":{},"置":{"docs":{},"界":{"docs":{},"面":{"docs":{},",":{"docs":{},"他":{"docs":{},"不":{"docs":{},"仅":{"docs":{},"可":{"docs":{},"以":{"docs":{},"极":{"docs":{},"大":{"docs":{},"的":{"docs":{},"方":{"docs":{},"便":{"docs":{},"我":{"docs":{},"们":{"docs":{},"对":{"docs":{},"于":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},",":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"介":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"r":{"docs":{},"o":{"docs":{},"y":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"y":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"k":{"docs":{},"f":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}}}},"i":{"docs":{},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"s":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}},"s":{"docs":{},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},"a":{"docs":{},"c":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":5.05050505050505},"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.03015075376884422},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0273972602739726},"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.021739130434782608},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.005455308434746118},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"s":{"docs":{},"是":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}},"采":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"混":{"docs":{},"合":{"docs":{},"内":{"docs":{},"核":{"docs":{},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"即":{"docs":{},"宏":{"docs":{},"内":{"docs":{},"核":{"docs":{},"和":{"docs":{},"微":{"docs":{},"内":{"docs":{},"核":{"docs":{},"相":{"docs":{},"结":{"docs":{},"合":{"docs":{},"。":{"docs":{},"优":{"docs":{},"势":{"docs":{},"是":{"docs":{},"减":{"docs":{},"小":{"docs":{},"内":{"docs":{},"核":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"增":{"docs":{},"加":{"docs":{},"功":{"docs":{},"能":{"docs":{},"可":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"性":{"docs":{},",":{"docs":{},"功":{"docs":{},"能":{"docs":{},"模":{"docs":{},"块":{"docs":{},"是":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"进":{"docs":{},"程":{"docs":{},",":{"docs":{},"添":{"docs":{},"加":{"docs":{},"和":{"docs":{},"删":{"docs":{},"除":{"docs":{},"模":{"docs":{},"块":{"docs":{},"就":{"docs":{},"是":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"接":{"docs":{},"口":{"docs":{},"分":{"docs":{},"为":{"docs":{},"几":{"docs":{},"个":{"docs":{},"大":{"docs":{},"类":{"docs":{},"。":{"docs":{},"进":{"docs":{},"程":{"docs":{},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"时":{"docs":{},"间":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"枢":{"docs":{},"纽":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"设":{"docs":{},"备":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"网":{"docs":{},"络":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"图":{"docs":{},"形":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"安":{"docs":{},"全":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},",":{"docs":{},"它":{"docs":{},"的":{"docs":{},"跨":{"docs":{},"平":{"docs":{},"台":{"docs":{},"性":{"docs":{},"以":{"docs":{},"及":{"docs":{},"易":{"docs":{},"用":{"docs":{},"性":{"docs":{},"成":{"docs":{},"为":{"docs":{},"了":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"首":{"docs":{},"选":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"_":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}},"s":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"(":{"docs":{},"\"":{"docs":{},"f":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},":":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}}}}}}}},".":{"docs":{},"i":{"docs":{},"\"":{"docs":{},":":{"docs":{},":":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"o":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"2":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"中":{"docs":{},"断":{"docs":{},"注":{"docs":{},"册":{"docs":{},"等":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"s":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"。":{"docs":{},"该":{"docs":{},"索":{"docs":{},"引":{"docs":{},"是":{"docs":{},"在":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"数":{"docs":{},"组":{"docs":{},"中":{"docs":{},"的":{"docs":{},"索":{"docs":{},"引":{"docs":{},",":{"docs":{},"不":{"docs":{},"管":{"docs":{},"什":{"docs":{},"么":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"docs":{}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"r":{"docs":{},"q":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"r":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"docs":{}}}}},"s":{"docs":{},"_":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}}},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}}},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043}},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"y":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"t":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.021739130434782608},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.046153846153846156},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00209819555182543},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.021739130434782608},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.046153846153846156},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.017123287671232876},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.06779661016949153},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.0641025641025641},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.043010752688172046},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.005035669324381032},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.012953367875647668}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"o":{"docs":{},"k":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.002517834662190516},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.01818181818181818}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"l":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"v":{"docs":{},"i":{"docs":{},"r":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"docs":{}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"f":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.01594628619387327}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.06153846153846154},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00839278220730172}}}}},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}}}},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"e":{"docs":{},"q":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}}}}},"n":{"docs":{},"e":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"1":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"(":{"1":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.013636363636363636}}}}},"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"(":{"3":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}},"t":{"docs":{},"(":{"4":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}},"i":{"docs":{},"n":{"docs":{},"_":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"1":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},"4":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"5":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"(":{"3":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},"docs":{}}},"t":{"docs":{},"(":{"3":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}},"n":{"docs":{},"e":{"docs":{},"(":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}},"i":{"docs":{},"_":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"1":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"5":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"6":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}}}}}}},"o":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"q":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"s":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}},"n":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"s":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.013636363636363636}}}}},"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}},"u":{"3":{"2":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.06153846153846154},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.023972602739726026},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564}}},"docs":{}},"6":{"4":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}},"docs":{}},"8":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0037767519932857744}}}}}}},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}},"i":{"3":{"2":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"docs":{}},"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},".":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.038461538461538464}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}},"e":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}},"e":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.038461538461538464}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"d":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"r":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0029374737725556023}}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0037767519932857744}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.0136986301369863}}}}},"o":{"docs":{},"g":{"docs":{},"_":{"docs":{},"*":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}},"docs":{}},"docs":{}}}}}}}}},"i":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"2":{"docs":{},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"docs":{}}}}}}}},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.0136986301369863},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"_":{"docs":{},"h":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"i":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"i":{"docs":{},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"t":{"docs":{},"a":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.03225806451612903}},"_":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"d":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"c":{"docs":{},"l":{"docs":{},"k":{"docs":{},"_":{"docs":{},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"_":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"2":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"3":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}},"y":{"docs":{},"y":{"docs":{},"y":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"_":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}},"2":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}},"3":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}},"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}},"y":{"docs":{},"y":{"docs":{},"y":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"_":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}},"_":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"e":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}},"n":{"docs":{},"r":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"s":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}},"e":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"w":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}},"x":{"docs":{},"t":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}}}}}},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"[":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"]":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"]":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"t":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"n":{"docs":{},"s":{"docs":{},"b":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"固":{"docs":{},"件":{"docs":{"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}}}}}}}}}},"n":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"l":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"u":{"docs":{},"t":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.012953367875647668}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"i":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},"_":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},"_":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},"_":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}},"v":{"docs":{},"s":{"docs":{},"p":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"o":{"docs":{},"r":{"docs":{},")":{"docs":{},"。":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}},"启":{"docs":{},"动":{"docs":{},"后":{"docs":{},",":{"docs":{},"进":{"docs":{},"入":{"docs":{},"内":{"docs":{},"核":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"再":{"docs":{},"由":{"docs":{},"引":{"docs":{},"导":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"去":{"docs":{},"唤":{"docs":{},"醒":{"docs":{},"其":{"docs":{},"它":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"称":{"docs":{},"为":{"docs":{},"应":{"docs":{},"用":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"(":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.0273972602739726}}},"y":{"docs":{},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}}}},"c":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"h":{"docs":{},"y":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}},"t":{"docs":{},"h":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"g":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0029374737725556023},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"y":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"s":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"l":{"docs":{},"k":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"d":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}}}}}},"p":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"。":{"docs":{},"第":{"docs":{},"一":{"docs":{},"级":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"回":{"docs":{},"填":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"2":{"docs":{},"p":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"(":{"docs":{},"*":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"w":{"docs":{},"m":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.04040404040404041},"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.02512562814070352},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}},"平":{"docs":{},"台":{"docs":{},"支":{"docs":{},"持":{"docs":{},"g":{"docs":{},"d":{"docs":{},"b":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"并":{"docs":{},"搭":{"docs":{},"配":{"docs":{},"了":{"docs":{},"v":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"图":{"docs":{},"形":{"docs":{},"化":{"docs":{},"调":{"docs":{},"试":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.020100502512562814},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":10.029411764705882}},"平":{"docs":{},"台":{"docs":{},"简":{"docs":{},"介":{"docs":{"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}}}}}}},"docs":{}},"docs":{}}}}}}},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"通":{"docs":{},"用":{"docs":{},"的":{"docs":{},"开":{"docs":{},"源":{"docs":{},"计":{"docs":{},"算":{"docs":{},"机":{"docs":{},"仿":{"docs":{},"真":{"docs":{},"器":{"docs":{},"和":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"器":{"docs":{},"。":{"docs":{},"本":{"docs":{},"平":{"docs":{},"台":{"docs":{},"就":{"docs":{},"是":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"对":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"仿":{"docs":{},"真":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564}}}}}}}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0037767519932857744},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}},"v":{"6":{"4":{"docs":{"./":{"ref":"./","tf":0.020202020202020204},"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.020100502512562814},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.029411764705882353},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"等":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"docs":{}},"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"(":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},")":{"docs":{},"具":{"docs":{},"有":{"3":{"2":{"docs":{},"个":{"docs":{},"整":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"组":{"docs":{},"(":{"docs":{},"取":{"docs":{},"名":{"docs":{},"为":{"docs":{},":":{"docs":{},"x":{"0":{"docs":{},"~":{"docs":{},"x":{"3":{"1":{"docs":{},")":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"3":{"1":{"docs":{},"个":{"docs":{},"是":{"docs":{},"通":{"docs":{},"用":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"x":{"1":{"docs":{},"~":{"docs":{},"x":{"3":{"1":{"docs":{},")":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"存":{"docs":{},"储":{"docs":{},"整":{"docs":{},"数":{"docs":{},"数":{"docs":{},"值":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"x":{"0":{"docs":{},"是":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"连":{"docs":{},"线":{"docs":{},"的":{"docs":{},"常":{"docs":{},"数":{"0":{"docs":{},"。":{"docs":{},"当":{"docs":{},"你":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"架":{"docs":{},"构":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"时":{"docs":{},",":{"docs":{},"还":{"docs":{},"必":{"docs":{},"须":{"docs":{},"有":{"3":{"2":{"docs":{},"个":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"f":{"0":{"docs":{},"~":{"docs":{},"f":{"3":{"1":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},",":{"docs":{},"其":{"docs":{},"x":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"是":{"3":{"2":{"docs":{},"位":{"docs":{},"宽":{"docs":{},"度":{"docs":{},"的":{"docs":{},",":{"docs":{},"x":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"=":{"3":{"2":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"r":{"docs":{},"v":{"6":{"4":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"是":{"6":{"4":{"docs":{},"位":{"docs":{},"宽":{"docs":{},"度":{"docs":{},"的":{"docs":{},",":{"docs":{},"x":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"=":{"6":{"4":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}},"docs":{}},"docs":{}}}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}},"架":{"docs":{},"构":{"docs":{},"移":{"docs":{},"植":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":10}}}}}}}}},"n":{"docs":{},"g":{"1":{"docs":{},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"2":{"docs":{},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"3":{"docs":{},")":{"docs":{},",":{"docs":{},"在":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}},"docs":{}}}},"e":{"docs":{},"d":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}},"a":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"c":{"docs":{},"s":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"p":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"t":{"docs":{},"v":{"docs":{},"e":{"docs":{},"c":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"g":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"t":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.015107007973143098},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.01818181818181818}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},":":{"docs":{},"重":{"docs":{},"构":{"docs":{},"(":{"docs":{},"即":{"docs":{},"不":{"docs":{},"是":{"docs":{},"新":{"docs":{},"增":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"是":{"docs":{},"修":{"docs":{},"改":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"动":{"docs":{},")":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}},"u":{"docs":{},"n":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"b":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}},",":{"docs":{},"其":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"固":{"docs":{},"件":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"o":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"c":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}},"d":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"h":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"v":{"6":{"4":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"f":{"docs":{},"d":{"docs":{},"c":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}},"docs":{}},"docs":{}}},"s":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"d":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"/":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"k":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"多":{"docs":{},"核":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"调":{"docs":{},"度":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":10}}}},"启":{"docs":{},"动":{"docs":{},"流":{"docs":{},"程":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}},"负":{"docs":{},"载":{"docs":{},"均":{"docs":{},"衡":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"。":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"c":{"docs":{},"k":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003357112882920688}},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00209819555182543},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"v":{"docs":{},"e":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"y":{"docs":{},"l":{"docs":{},"e":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"(":{"docs":{},"*":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.020100502512562814},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.03260869565217391},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.049586776859504134}},"的":{"docs":{},"意":{"docs":{},"思":{"docs":{},",":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"跨":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"简":{"docs":{},"洁":{"docs":{},"、":{"docs":{},"高":{"docs":{},"性":{"docs":{},"能":{"docs":{},"、":{"docs":{},"高":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"性":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"核":{"docs":{},"的":{"docs":{},"混":{"docs":{},"合":{"docs":{},"内":{"docs":{},"核":{"docs":{},",":{"docs":{},"它":{"docs":{},"将":{"docs":{},"应":{"docs":{},"用":{"docs":{},"于":{"docs":{},"桌":{"docs":{},"面":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},"以":{"docs":{},"及":{"docs":{},"移":{"docs":{},"动":{"docs":{},"终":{"docs":{},"端":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.043478260869565216}}},"设":{"docs":{},"计":{"docs":{},"好":{"docs":{},"了":{"docs":{},"再":{"docs":{},"设":{"docs":{},"计":{"docs":{},"接":{"docs":{},"口":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"还":{"docs":{},"没":{"docs":{},"有":{"docs":{},"概":{"docs":{},"念":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}}}}},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"t":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00209819555182543},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"u":{"docs":{},"p":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"t":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"s":{"docs":{},"h":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}},"c":{"docs":{},"s":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"k":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"p":{"docs":{},"c":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"c":{"9":{"7":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"docs":{}},"docs":{}}},"h":{"docs":{},"d":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"p":{"docs":{},"c":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}},"e":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}},"e":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"u":{"docs":{},"d":{"docs":{},"o":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.03015075376884422}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.005035669324381032}},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}},"模":{"docs":{},"式":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"打":{"docs":{},"开":{"docs":{},"与":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"是":{"docs":{},"由":{"docs":{},"状":{"docs":{},"态":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"r":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"是":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"u":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"用":{"docs":{},"于":{"docs":{},"说":{"docs":{},"明":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}},"r":{"docs":{},"c":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}},"a":{"docs":{},"m":{"docs":{},"(":{"6":{"docs":{},"m":{"docs":{},"i":{"docs":{},"b":{"docs":{},"通":{"docs":{},"用":{"docs":{},"s":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"+":{"2":{"docs":{},"m":{"docs":{},"i":{"docs":{},"b":{"docs":{},"的":{"docs":{},"a":{"docs":{},"i":{"docs":{},"专":{"docs":{},"用":{"docs":{},"s":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}},"a":{"2":{"5":{"6":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"docs":{}},"docs":{}},"docs":{},"r":{"docs":{},"e":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}}}}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.04225352112676056},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}},";":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00209819555182543},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},"o":{"docs":{},"f":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"b":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0029374737725556023}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"_":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003357112882920688}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0029374737725556023}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"d":{"docs":{},"x":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"i":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}},"s":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"e":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"p":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}},"u":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}},"v":{"3":{"9":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"3":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},",":{"docs":{},"页":{"docs":{},"表":{"docs":{},"和":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"都":{"docs":{},"是":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"4":{"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"docs":{}},"5":{"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"docs":{}},"6":{"4":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"docs":{}},"docs":{}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}}}},"n":{"docs":{},"d":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}},"t":{"0":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00419639110365086}}}},"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{},"o":{"docs":{},"d":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.04040404040404041}}}},"o":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"b":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"m":{"docs":{},"k":{"docs":{},"f":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"下":{"docs":{},"载":{"docs":{},"(":{"docs":{},"速":{"docs":{},"度":{"docs":{},"较":{"docs":{},"慢":{"docs":{},",":{"docs":{},"请":{"docs":{},"耐":{"docs":{},"心":{"docs":{},"等":{"docs":{},"待":{"docs":{},")":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\\":{"docs":{},"x":{"8":{"6":{"docs":{},"_":{"6":{"4":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}},"p":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"y":{"0":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"1":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"2":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"3":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}}}}}}}},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},":":{"docs":{},"增":{"docs":{},"加":{"docs":{},"测":{"docs":{},"试":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"a":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"h":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0136986301369863},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.03424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.0136986301369863}},"r":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}}}},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"t":{"docs":{},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}}},"d":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.014705882352941176}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"l":{"docs":{},"s":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}},"c":{"docs":{},"=":{"docs":{},"i":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"是":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"的":{"docs":{},"缩":{"docs":{},"写":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"启":{"docs":{},"用":{"docs":{},"测":{"docs":{},"试":{"docs":{},"案":{"docs":{},"例":{"docs":{},"。":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"0":{"docs":{},".":{"1":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"docs":{}}},"6":{"4":{"docs":{},"/":{"3":{"2":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},":":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}},"docs":{}},"docs":{}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},":":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}},"docs":{}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"f":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"s":{"docs":{},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003357112882920688}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0029374737725556023}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}},"m":{"docs":{},"m":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}},",":{"docs":{},"节":{"docs":{},"点":{"docs":{},"记":{"docs":{},"录":{"docs":{},"了":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"这":{"docs":{},"段":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":10}}}}}}}}}}}}}},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"的":{"docs":{},"一":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"有":{"docs":{},"g":{"docs":{},"d":{"docs":{},"b":{"docs":{},"调":{"docs":{},"试":{"docs":{},"配":{"docs":{},"置":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.043478260869565216},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.0136986301369863},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.03389830508474576},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.043010752688172046},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.017205203524968526},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.054404145077720206},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.014705882352941176}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}},"l":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"中":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"断":{"docs":{},"分":{"docs":{},"为":{"docs":{},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"一":{"docs":{},"种":{"docs":{},"是":{"docs":{},"同":{"docs":{},"步":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"即":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"、":{"docs":{},"e":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},"等":{"docs":{},"指":{"docs":{},"令":{"docs":{},"所":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"另":{"docs":{},"一":{"docs":{},"种":{"docs":{},"是":{"docs":{},"异":{"docs":{},"步":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"即":{"docs":{},"g":{"docs":{},"p":{"docs":{},"i":{"docs":{},"o":{"docs":{},"、":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"等":{"docs":{},"外":{"docs":{},"设":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"已":{"docs":{},"经":{"docs":{},"确":{"docs":{},"立":{"docs":{},"了":{"docs":{},"版":{"docs":{},"本":{"2":{"docs":{},".":{"2":{"2":{"docs":{},"的":{"docs":{},"用":{"docs":{},"户":{"docs":{},"空":{"docs":{},"间":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"由":{"docs":{},"地":{"docs":{},"用":{"docs":{},"于":{"docs":{},"任":{"docs":{},"何":{"docs":{},"目":{"docs":{},"的":{"docs":{},",":{"docs":{},"允":{"docs":{},"许":{"docs":{},"任":{"docs":{},"何":{"docs":{},"人":{"docs":{},"设":{"docs":{},"计":{"docs":{},"、":{"docs":{},"制":{"docs":{},"造":{"docs":{},"和":{"docs":{},"销":{"docs":{},"售":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"了":{"docs":{},"小":{"docs":{},"型":{"docs":{},"、":{"docs":{},"快":{"docs":{},"速":{"docs":{},"、":{"docs":{},"低":{"docs":{},"功":{"docs":{},"耗":{"docs":{},"的":{"docs":{},"现":{"docs":{},"实":{"docs":{},"情":{"docs":{},"况":{"docs":{},"来":{"docs":{},"实":{"docs":{},"做":{"docs":{},",":{"docs":{},"但":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"微":{"docs":{},"架":{"docs":{},"构":{"docs":{},"做":{"docs":{},"过":{"docs":{},"度":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"架":{"docs":{},"构":{"docs":{},"移":{"docs":{},"植":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"的":{"6":{"4":{"docs":{},"位":{"docs":{},"双":{"docs":{},"核":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"。":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}},"docs":{}},"docs":{}}}},"的":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"种":{"docs":{},"模":{"docs":{},"式":{"docs":{},",":{"docs":{},"有":{"docs":{},"s":{"docs":{},"v":{"3":{"2":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"3":{"9":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"4":{"8":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"5":{"7":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"6":{"4":{"docs":{},"等":{"docs":{},"。":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"模":{"docs":{},"式":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"页":{"docs":{},"面":{"docs":{},"等":{"docs":{},"级":{"docs":{},",":{"docs":{},"页":{"docs":{},"面":{"docs":{},"大":{"docs":{},"小":{"docs":{},"是":{"docs":{},"有":{"docs":{},"差":{"docs":{},"异":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"6":{"4":{"docs":{},"位":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"种":{"docs":{},"最":{"docs":{},"常":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"s":{"docs":{},"v":{"3":{"9":{"docs":{},",":{"docs":{},"它":{"docs":{},"是":{"3":{"docs":{},"级":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"页":{"docs":{},"面":{"docs":{},"大":{"docs":{},"小":{"docs":{},"映":{"docs":{},"射":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"docs":{}}},"docs":{}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"中":{"docs":{},"断":{"docs":{},"管":{"docs":{},"理":{"docs":{},"由":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"核":{"docs":{},"局":{"docs":{},"部":{"docs":{},"中":{"docs":{},"断":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},")":{"docs":{},"和":{"docs":{},"平":{"docs":{},"台":{"docs":{},"级":{"docs":{},"中":{"docs":{},"断":{"docs":{},"控":{"docs":{},"制":{"docs":{},"器":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"(":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"组":{"docs":{},"成":{"docs":{},"。":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"分":{"docs":{},"为":{"docs":{},"软":{"docs":{},"件":{"docs":{},"中":{"docs":{},"断":{"docs":{},"核":{"docs":{},"计":{"docs":{},"时":{"docs":{},"器":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"负":{"docs":{},"责":{"docs":{},"响":{"docs":{},"应":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"的":{"docs":{},"异":{"docs":{},"常":{"docs":{},"核":{"docs":{},"和":{"docs":{},"计":{"docs":{},"时":{"docs":{},"器":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"负":{"docs":{},"责":{"docs":{},"处":{"docs":{},"理":{"docs":{},"外":{"docs":{},"设":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"前":{"docs":{},"有":{"4":{"docs":{},"种":{"docs":{},"特":{"docs":{},"权":{"docs":{},"模":{"docs":{},"式":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},"docs":{}}}},"芯":{"docs":{},"片":{"docs":{},"和":{"docs":{},"软":{"docs":{},"件":{"docs":{},"。":{"docs":{},"虽":{"docs":{},"然":{"docs":{},"这":{"docs":{},"不":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"开":{"docs":{},"源":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},",":{"docs":{},"但":{"docs":{},"它":{"docs":{},"具":{"docs":{},"有":{"docs":{},"重":{"docs":{},"要":{"docs":{},"意":{"docs":{},"义":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"其":{"docs":{},"设":{"docs":{},"计":{"docs":{},"使":{"docs":{},"其":{"docs":{},"适":{"docs":{},"用":{"docs":{},"于":{"docs":{},"现":{"docs":{},"代":{"docs":{},"计":{"docs":{},"算":{"docs":{},"设":{"docs":{},"备":{"docs":{},"(":{"docs":{},"如":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"规":{"docs":{},"模":{"docs":{},"云":{"docs":{},"计":{"docs":{},"算":{"docs":{},"机":{"docs":{},"、":{"docs":{},"高":{"docs":{},"端":{"docs":{},"移":{"docs":{},"动":{"docs":{},"电":{"docs":{},"话":{"docs":{},"和":{"docs":{},"微":{"docs":{},"小":{"docs":{},"嵌":{"docs":{},"入":{"docs":{},"式":{"docs":{},"系":{"docs":{},"统":{"docs":{},")":{"docs":{},"。":{"docs":{},"设":{"docs":{},"计":{"docs":{},"者":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"到":{"docs":{},"了":{"docs":{},"这":{"docs":{},"些":{"docs":{},"用":{"docs":{},"途":{"docs":{},"中":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"与":{"docs":{},"功":{"docs":{},"率":{"docs":{},"效":{"docs":{},"率":{"docs":{},"。":{"docs":{},"该":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"还":{"docs":{},"具":{"docs":{},"有":{"docs":{},"众":{"docs":{},"多":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"软":{"docs":{},"件":{"docs":{},",":{"docs":{},"这":{"docs":{},"解":{"docs":{},"决":{"docs":{},"了":{"docs":{},"新":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"通":{"docs":{},"常":{"docs":{},"的":{"docs":{},"弱":{"docs":{},"点":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"设":{"docs":{},"计":{"docs":{},"成":{"docs":{},"可":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"的":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"应":{"docs":{},"用":{"docs":{},"场":{"docs":{},"景":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"产":{"docs":{},"带":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"功":{"docs":{},"能":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"发":{"docs":{},"音":{"docs":{},"为":{"docs":{},"“":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.03015075376884422},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"s":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}},"下":{"docs":{},"设":{"docs":{},"置":{"docs":{},"i":{"3":{"8":{"6":{"docs":{},"环":{"docs":{},"境":{"docs":{},"并":{"docs":{},"设":{"docs":{},"置":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"=":{"docs":{},"x":{"8":{"6":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"环":{"docs":{},"境":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"=":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}},"环":{"docs":{},"境":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}},":":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"a":{"docs":{},"l":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"c":{"docs":{},"s":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"p":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}}}}}}}}}}}}}}},"e":{"docs":{},"e":{"docs":{},"l":{"docs":{},".":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"x":{"8":{"6":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.02197802197802198},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}},"_":{"6":{"4":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"改":{"docs":{},"成":{"docs":{},"了":{"docs":{},"x":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}},"n":{"docs":{},"u":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"x":{"docs":{},"x":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.014705882352941176}}}}},"一":{"docs":{},"、":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"开":{"docs":{},"发":{"docs":{},"环":{"docs":{},"境":{"docs":{},"搭":{"docs":{},"建":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}},"混":{"docs":{},"合":{"docs":{},"内":{"docs":{},"核":{"docs":{},"框":{"docs":{},"架":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}},"描":{"docs":{},"述":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"环":{"docs":{},"境":{"docs":{},"工":{"docs":{},"具":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}}}},".":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"引":{"docs":{},"导":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"(":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}},"三":{"docs":{},"、":{"docs":{},"内":{"docs":{},"核":{"docs":{},"功":{"docs":{},"能":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"框":{"docs":{},"架":{"docs":{},"图":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}},"代":{"docs":{},"码":{"docs":{},"移":{"docs":{},"植":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},".":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}},"中":{"docs":{},"断":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"中":{"docs":{},"断":{"docs":{},"队":{"docs":{},"列":{"docs":{},"机":{"docs":{},"制":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"是":{"docs":{},"基":{"docs":{},"于":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"管":{"docs":{},"理":{"docs":{},"机":{"docs":{},"制":{"docs":{},"的":{"docs":{},",":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"架":{"docs":{},"构":{"docs":{},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"现":{"docs":{},"机":{"docs":{},"制":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"差":{"docs":{},"别":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"大":{"docs":{},"体":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"上":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"出":{"docs":{},"一":{"docs":{},"套":{"docs":{},"统":{"docs":{},"一":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"来":{"docs":{},"供":{"docs":{},"上":{"docs":{},"层":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{},"对":{"docs":{},"内":{"docs":{},"核":{"docs":{},"以":{"docs":{},"及":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"都":{"docs":{},"是":{"docs":{},"至":{"docs":{},"关":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"全":{"docs":{},"局":{"docs":{},"打":{"docs":{},"开":{"docs":{},"和":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"的":{"docs":{},",":{"docs":{},"打":{"docs":{},"开":{"docs":{},"后":{"docs":{},"才":{"docs":{},"会":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"除":{"docs":{},"此":{"docs":{},"之":{"docs":{},"外":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"打":{"docs":{},"开":{"docs":{},"和":{"docs":{},"关":{"docs":{},"闭":{"docs":{},",":{"docs":{},"在":{"docs":{},"禁":{"docs":{},"止":{"docs":{},"了":{"docs":{},"网":{"docs":{},"卡":{"docs":{},"中":{"docs":{},"断":{"docs":{},"后":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"打":{"docs":{},"开":{"docs":{},"了":{"docs":{},"全":{"docs":{},"局":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"也":{"docs":{},"收":{"docs":{},"不":{"docs":{},"到":{"docs":{},"网":{"docs":{},"络":{"docs":{},"数":{"docs":{},"据":{"docs":{},"包":{"docs":{},"了":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},",":{"docs":{},"异":{"docs":{},"常":{"docs":{},"是":{"docs":{},"不":{"docs":{},"可":{"docs":{},"以":{"docs":{},"屏":{"docs":{},"蔽":{"docs":{},"的":{"docs":{},",":{"docs":{},"异":{"docs":{},"常":{"docs":{},"是":{"docs":{},"来":{"docs":{},"告":{"docs":{},"诉":{"docs":{},"内":{"docs":{},"核":{"docs":{},"出":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"问":{"docs":{},"题":{"docs":{},"了":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"异":{"docs":{},"常":{"docs":{},"做":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"有":{"docs":{},"的":{"docs":{},"异":{"docs":{},"常":{"docs":{},"是":{"docs":{},"不":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"复":{"docs":{},"的":{"docs":{},",":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"系":{"docs":{},"统":{"docs":{},"死":{"docs":{},"机":{"docs":{},",":{"docs":{},"有":{"docs":{},"的":{"docs":{},"异":{"docs":{},"常":{"docs":{},"时":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"复":{"docs":{},"的":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"页":{"docs":{},"故":{"docs":{},"障":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"拿":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"页":{"docs":{},"面":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"打":{"docs":{},"断":{"docs":{},"当":{"docs":{},"前":{"docs":{},"执":{"docs":{},"行":{"docs":{},"流":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"可":{"docs":{},"分":{"docs":{},"为":{"docs":{},"设":{"docs":{},"备":{"docs":{},"中":{"docs":{},"断":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"异":{"docs":{},"常":{"docs":{},"。":{"docs":{},"设":{"docs":{},"备":{"docs":{},"中":{"docs":{},"断":{"docs":{},"就":{"docs":{},"是":{"docs":{},"当":{"docs":{},"网":{"docs":{},"卡":{"docs":{},"设":{"docs":{},"备":{"docs":{},"收":{"docs":{},"到":{"docs":{},"数":{"docs":{},"据":{"docs":{},"后":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"打":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"当":{"docs":{},"前":{"docs":{},"在":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},",":{"docs":{},"去":{"docs":{},"处":{"docs":{},"理":{"docs":{},"网":{"docs":{},"络":{"docs":{},"数":{"docs":{},"据":{"docs":{},"包":{"docs":{},"。":{"docs":{},"异":{"docs":{},"常":{"docs":{},"中":{"docs":{},"断":{"docs":{},"就":{"docs":{},"是":{"docs":{},"当":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"执":{"docs":{},"行":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"或":{"docs":{},"者":{"docs":{},"访":{"docs":{},"问":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"没":{"docs":{},"有":{"docs":{},"权":{"docs":{},"限":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"就":{"docs":{},"会":{"docs":{},"中":{"docs":{},"断":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"流":{"docs":{},",":{"docs":{},"去":{"docs":{},"对":{"docs":{},"异":{"docs":{},"常":{"docs":{},"做":{"docs":{},"一":{"docs":{},"个":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"都":{"docs":{},"是":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":10}}}},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}},"在":{"docs":{},"某":{"docs":{},"个":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"或":{"docs":{},"者":{"docs":{},"内":{"docs":{},"核":{"docs":{},"组":{"docs":{},"件":{"docs":{},"中":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"。":{"docs":{},"当":{"docs":{},"产":{"docs":{},"生":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"在":{"docs":{},"中":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"只":{"docs":{},"对":{"docs":{},"中":{"docs":{},"断":{"docs":{},"产":{"docs":{},"生":{"docs":{},"时":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"进":{"docs":{},"行":{"docs":{},"保":{"docs":{},"存":{"docs":{},",":{"docs":{},"不":{"docs":{},"对":{"docs":{},"中":{"docs":{},"断":{"docs":{},"产":{"docs":{},"生":{"docs":{},"时":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"处":{"docs":{},"理":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}},"机":{"docs":{},"制":{"docs":{},"中":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"下":{"docs":{},"半":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"要":{"docs":{},"求":{"docs":{},"是":{"docs":{},"快":{"docs":{},"速":{"docs":{},"地":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"是":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"了":{"docs":{},"全":{"docs":{},"局":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"回":{"docs":{},"到":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{},"而":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},"就":{"docs":{},"是":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"这":{"docs":{},"个":{"docs":{},"工":{"docs":{},"作":{"docs":{},"的":{"docs":{},",":{"docs":{},"产":{"docs":{},"生":{"docs":{},"了":{"docs":{},"中":{"docs":{},"断":{"docs":{},"后":{"docs":{},",":{"docs":{},"只":{"docs":{},"进":{"docs":{},"行":{"docs":{},"最":{"docs":{},"少":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"表":{"docs":{},"地":{"docs":{},"址":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{},"入":{"docs":{},"管":{"docs":{},"理":{"docs":{},"者":{"docs":{},"模":{"docs":{},"式":{"docs":{},"的":{"docs":{},"向":{"docs":{},"量":{"docs":{},"基":{"docs":{},"址":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"被":{"docs":{},"划":{"docs":{},"分":{"docs":{},"成":{"3":{"docs":{},"类":{"docs":{},",":{"docs":{},"小":{"docs":{},"(":{"1":{"6":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}}}}}}}}},"分":{"docs":{},"为":{"docs":{},"实":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"分":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"实":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"是":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"有":{"docs":{},"高":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"就":{"docs":{},"不":{"docs":{},"能":{"docs":{},"运":{"docs":{},"行":{"docs":{},"低":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"而":{"docs":{},"分":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"是":{"docs":{},"高":{"docs":{},"低":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"线":{"docs":{},"程":{"docs":{},"都":{"docs":{},"能":{"docs":{},"得":{"docs":{},"到":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"低":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"线":{"docs":{},"程":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"更":{"docs":{},"少":{"docs":{},"而":{"docs":{},"已":{"docs":{},"。":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"多":{"docs":{},"了":{"docs":{},"对":{"docs":{},"当":{"docs":{},"前":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"了":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"值":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"完":{"docs":{},"串":{"docs":{},"口":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"打":{"docs":{},"印":{"docs":{},"功":{"docs":{},"能":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"这":{"docs":{},"个":{"docs":{},"频":{"docs":{},"率":{"docs":{},"是":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"二":{"docs":{},"、":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"运":{"docs":{},"行":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}},"目":{"docs":{},"录":{"docs":{},"框":{"docs":{},"架":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"原":{"docs":{},"理":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}},"架":{"docs":{},"构":{"docs":{},"简":{"docs":{},"述":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{},"环":{"docs":{},"境":{"docs":{},"工":{"docs":{},"具":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}},".":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"五":{"docs":{},"、":{"docs":{},"许":{"docs":{},"可":{"docs":{},"协":{"docs":{},"议":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}},"以":{"docs":{},"线":{"docs":{},"程":{"docs":{},"为":{"docs":{},"最":{"docs":{},"小":{"docs":{},"调":{"docs":{},"度":{"docs":{},"单":{"docs":{},"元":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"的":{"docs":{},"好":{"docs":{},"处":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"很":{"docs":{},"方":{"docs":{},"便":{"docs":{},"支":{"docs":{},"持":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},"以":{"docs":{},"及":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"的":{"docs":{},"多":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"层":{"docs":{},"次":{"docs":{},"框":{"docs":{},"架":{"docs":{},"也":{"docs":{},"比":{"docs":{},"较":{"docs":{},"好":{"docs":{},",":{"docs":{},"容":{"docs":{},"易":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"及":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}},"在":{"docs":{},"做":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"堆":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"到":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"已":{"docs":{},"经":{"docs":{},"一":{"docs":{},"些":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"的":{"docs":{},"标":{"docs":{},"志":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"标":{"docs":{},"志":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"线":{"docs":{},"程":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"内":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"存":{"docs":{},"取":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}},"避":{"docs":{},"免":{"docs":{},"重":{"docs":{},"名":{"docs":{},",":{"docs":{},"另":{"docs":{},"外":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"文":{"docs":{},"件":{"docs":{},"名":{"docs":{},"中":{"docs":{},"是":{"docs":{},"否":{"docs":{},"包":{"docs":{},"含":{"docs":{},"多":{"docs":{},"个":{"docs":{},"词":{"docs":{},"语":{"docs":{},"而":{"docs":{},"采":{"docs":{},"用":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"动":{"docs":{},"词":{"docs":{},"开":{"docs":{},"头":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"一":{"docs":{},"人":{"docs":{},"称":{"docs":{},"现":{"docs":{},"在":{"docs":{},"时":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},"或":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"他":{"docs":{},"功":{"docs":{},"能":{"docs":{},"正":{"docs":{},"在":{"docs":{},"开":{"docs":{},"发":{"docs":{},"中":{"docs":{},",":{"docs":{},"敬":{"docs":{},"请":{"docs":{},"期":{"docs":{},"待":{"docs":{},"!":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},":":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}},"注":{"docs":{},"意":{"docs":{},"事":{"docs":{},"项":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}},"中":{"docs":{},"\"":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"和":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"\"":{"docs":{},"需":{"docs":{},"要":{"docs":{},"单":{"docs":{},"独":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"行":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"就":{"docs":{},"只":{"docs":{},"负":{"docs":{},"责":{"docs":{},"基":{"docs":{},"础":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"平":{"docs":{},"台":{"docs":{},"移":{"docs":{},"植":{"docs":{},"和":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"的":{"docs":{},"移":{"docs":{},"植":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"如":{"docs":{},"何":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"量":{"docs":{},"级":{"docs":{},"的":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"还":{"docs":{},"有":{"docs":{},"国":{"docs":{},"产":{"docs":{},"开":{"docs":{},"源":{"docs":{},"系":{"docs":{},"统":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}},"、":{"docs":{},"苹":{"docs":{},"果":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"一":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"说":{"docs":{},"明":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}},"其":{"docs":{},"余":{"docs":{},"模":{"docs":{},"块":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"以":{"docs":{},"及":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"核":{"docs":{},"心":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}},"源":{"docs":{},"码":{"docs":{},"目":{"docs":{},"录":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"的":{"docs":{},"源":{"docs":{},"码":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"最":{"docs":{},"小":{"docs":{},"调":{"docs":{},"度":{"docs":{},"单":{"docs":{},"位":{"docs":{},"是":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"都":{"docs":{},"有":{"docs":{},"自":{"docs":{},"己":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"栈":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"组":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"一":{"docs":{},"些":{"docs":{},"运":{"docs":{},"行":{"docs":{},"信":{"docs":{},"息":{"docs":{},"等":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"属":{"docs":{},"于":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}},"功":{"docs":{},"能":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}},"执":{"docs":{},"行":{"docs":{},"路":{"docs":{},"径":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}},"虚":{"docs":{},"拟":{"docs":{},"堆":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"基":{"docs":{},"于":{"docs":{},"缓":{"docs":{},"存":{"docs":{},"的":{"docs":{},"链":{"docs":{},"表":{"docs":{},"实":{"docs":{},"现":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"之":{"docs":{},"堆":{"docs":{},"内":{"docs":{},"存":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"堆":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"待":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"个":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"为":{"docs":{},"空":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"是":{"docs":{},"分":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},",":{"docs":{},"休":{"docs":{},"眠":{"docs":{},"的":{"docs":{},"单":{"docs":{},"位":{"docs":{},"是":{"docs":{},"毫":{"docs":{},"秒":{"docs":{},",":{"docs":{},"休":{"docs":{},"眠":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}},"崩":{"docs":{},"溃":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}},"入":{"docs":{},"口":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":10.11111111111111},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},"模":{"docs":{},"块":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"分":{"docs":{},"为":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"、":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"、":{"docs":{},"进":{"docs":{},"程":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"这":{"docs":{},"三":{"docs":{},"个":{"docs":{},"大":{"docs":{},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},"最":{"docs":{},"为":{"docs":{},"核":{"docs":{},"心":{"docs":{},"和":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"这":{"docs":{},"是":{"docs":{},"由":{"docs":{},"于":{"docs":{},"很":{"docs":{},"多":{"docs":{},"其":{"docs":{},"它":{"docs":{},"模":{"docs":{},"块":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},"。":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"最":{"docs":{},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"就":{"docs":{},"是":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"能":{"docs":{},"够":{"docs":{},"支":{"docs":{},"持":{"docs":{},"分":{"docs":{},"页":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"为":{"docs":{},"页":{"docs":{},"表":{"docs":{},"映":{"docs":{},"射":{"docs":{},"提":{"docs":{},"供":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"将":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"为":{"docs":{},"页":{"docs":{},"面":{"docs":{},"大":{"docs":{},"小":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},"会":{"docs":{},"比":{"docs":{},"较":{"docs":{},"合":{"docs":{},"适":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"根":{"docs":{},"基":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"从":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},"取":{"docs":{},"出":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"会":{"docs":{},"有":{"docs":{},"引":{"docs":{},"导":{"docs":{},"器":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"释":{"docs":{},"放":{"docs":{},"堆":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{},"释":{"docs":{},"放":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"屏":{"docs":{},"障":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"前":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"读":{"docs":{},"写":{"docs":{},"操":{"docs":{},"作":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"才":{"docs":{},"能":{"docs":{},"执":{"docs":{},"行":{"docs":{},"屏":{"docs":{},"障":{"docs":{},"后":{"docs":{},"的":{"docs":{},"读":{"docs":{},"写":{"docs":{},"操":{"docs":{},"作":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}},"读":{"docs":{},"/":{"docs":{},"写":{"docs":{},"屏":{"docs":{},"障":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}},"就":{"docs":{},"能":{"docs":{},"正":{"docs":{},"确":{"docs":{},"地":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"存":{"docs":{},"取":{"docs":{},",":{"docs":{},"不":{"docs":{},"然":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"页":{"docs":{},"面":{"docs":{},"故":{"docs":{},"障":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"置":{"docs":{},"了":{"docs":{},"原":{"docs":{},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"的":{"docs":{},"原":{"docs":{},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"分":{"docs":{},"支":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"配":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}},"一":{"docs":{},"个":{"docs":{},"t":{"docs":{},"l":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"功":{"docs":{},"能":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.02849740932642487}},"支":{"docs":{},"持":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"可":{"docs":{},"以":{"docs":{},"运":{"docs":{},"行":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"串":{"docs":{},"口":{"docs":{},"输":{"docs":{},"出":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"串":{"docs":{},"口":{"docs":{},"输":{"docs":{},"入":{"docs":{},"按":{"docs":{},"键":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"找":{"docs":{},"到":{"docs":{},"其":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{},"终":{"docs":{},"端":{"docs":{},"中":{"docs":{},"输":{"docs":{},"入":{"docs":{},"命":{"docs":{},"令":{"docs":{},"安":{"docs":{},"装":{"docs":{},":":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"省":{"docs":{},"略":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"编":{"docs":{},"程":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"和":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}},"服":{"docs":{},"务":{"docs":{},",":{"docs":{},"应":{"docs":{},"用":{"docs":{},"程":{"docs":{},"序":{"docs":{},"去":{"docs":{},"构":{"docs":{},"建":{"docs":{},"应":{"docs":{},"用":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}},"加":{"docs":{},"入":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},"相":{"docs":{},"反":{"docs":{},",":{"docs":{},"有":{"docs":{},"离":{"docs":{},"开":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"和":{"docs":{},"加":{"docs":{},"入":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"意":{"docs":{},"思":{"docs":{},"相":{"docs":{},"反":{"docs":{},"而":{"docs":{},"已":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"禁":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"线":{"docs":{},"程":{"docs":{},"结":{"docs":{},"束":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"裸":{"docs":{},"机":{"docs":{},"开":{"docs":{},"发":{"docs":{},"种":{"docs":{},",":{"docs":{},"很":{"docs":{},"多":{"docs":{},"时":{"docs":{},"候":{"docs":{},"都":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}},"四":{"docs":{},"、":{"docs":{},"平":{"docs":{},"台":{"docs":{},"支":{"docs":{},"持":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"接":{"docs":{},"口":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}},"移":{"docs":{},"植":{"docs":{},"总":{"docs":{},"结":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},".":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"在":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.021739130434782608},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00209819555182543}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"对":{"docs":{},"内":{"docs":{},"核":{"docs":{},"和":{"docs":{},"进":{"docs":{},"程":{"docs":{},"进":{"docs":{},"行":{"docs":{},"隔":{"docs":{},"离":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"中":{"docs":{},",":{"docs":{},"打":{"docs":{},"开":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"选":{"docs":{},"取":{"docs":{},"需":{"docs":{},"要":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{},",":{"docs":{},"退":{"docs":{},"出":{"docs":{},"保":{"docs":{},"存":{"docs":{},"。":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},"源":{"docs":{},"码":{"docs":{},"后":{"docs":{},",":{"docs":{},"您":{"docs":{},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"编":{"docs":{},"译":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"(":{"docs":{},"点":{"docs":{},"我":{"docs":{},"跳":{"docs":{},"转":{"docs":{},")":{"docs":{},",":{"docs":{},"下":{"docs":{},"载":{"docs":{},"好":{"docs":{},"后":{"docs":{},",":{"docs":{},"进":{"docs":{},"行":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"备":{"docs":{},"开":{"docs":{},"机":{"docs":{},"后":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"去":{"docs":{},"执":{"docs":{},"行":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"都":{"docs":{},"是":{"docs":{},"固":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"从":{"docs":{},"这":{"docs":{},"些":{"docs":{},"固":{"docs":{},"定":{"docs":{},"代":{"docs":{},"码":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"程":{"docs":{},"序":{"docs":{},"员":{"docs":{},"自":{"docs":{},"己":{"docs":{},"编":{"docs":{},"写":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"程":{"docs":{},"序":{"docs":{},"员":{"docs":{},"自":{"docs":{},"己":{"docs":{},"写":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"就":{"docs":{},"是":{"docs":{},"裸":{"docs":{},"机":{"docs":{},",":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"或":{"docs":{},"者":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{},"在":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"会":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"指":{"docs":{},"定":{"docs":{},"内":{"docs":{},"核":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"在":{"docs":{},"链":{"docs":{},"接":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"指":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"砖":{"docs":{},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"页":{"docs":{},"面":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"来":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"结":{"docs":{},"构":{"docs":{},"里":{"docs":{},"面":{"docs":{},"的":{"docs":{},"成":{"docs":{},"员":{"docs":{},",":{"docs":{},"这":{"docs":{},"在":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"指":{"docs":{},"针":{"docs":{},"类":{"docs":{},"型":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"后":{"docs":{},"缀":{"docs":{},",":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}},"释":{"docs":{},"放":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"引":{"docs":{},"用":{"docs":{},"计":{"docs":{},"数":{"docs":{},"为":{"0":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"去":{"docs":{},"正":{"docs":{},"在":{"docs":{},"释":{"docs":{},"放":{"docs":{},"这":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"也":{"docs":{},"会":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"堆":{"docs":{},"的":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"等":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"多":{"docs":{},"任":{"docs":{},"务":{"docs":{},"的":{"docs":{},"是":{"docs":{},"线":{"docs":{},"程":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"调":{"docs":{},"度":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"多":{"docs":{},"核":{"docs":{},"调":{"docs":{},"度":{"docs":{},"。":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"嵌":{"docs":{},"入":{"docs":{},"式":{"docs":{},"领":{"docs":{},"域":{"docs":{},",":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"的":{"docs":{},"实":{"docs":{},"时":{"docs":{},"性":{"docs":{},"是":{"docs":{},"非":{"docs":{},"常":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"。":{"docs":{},"简":{"docs":{},"单":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"最":{"docs":{},"高":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"在":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"低":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"得":{"docs":{},"不":{"docs":{},"到":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"更":{"docs":{},"高":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"代":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},",":{"docs":{},"多":{"docs":{},"任":{"docs":{},"务":{"docs":{},"已":{"docs":{},"成":{"docs":{},"为":{"docs":{},"标":{"docs":{},"配":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"“":{"docs":{},"同":{"docs":{},"时":{"docs":{},"”":{"docs":{},"执":{"docs":{},"行":{"docs":{},"多":{"docs":{},"个":{"docs":{},"任":{"docs":{},"务":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"最":{"docs":{},"大":{"docs":{},"化":{"docs":{},"利":{"docs":{},"用":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"支":{"docs":{},"持":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"为":{"docs":{},"了":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},"和":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"。":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},"是":{"docs":{},"内":{"docs":{},"核":{"docs":{},"程":{"docs":{},"序":{"docs":{},"本":{"docs":{},"身":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"设":{"docs":{},"备":{"docs":{},"资":{"docs":{},"源":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},"核":{"docs":{},"控":{"docs":{},"制":{"docs":{},"。":{"docs":{},"而":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"只":{"docs":{},"能":{"docs":{},"够":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"内":{"docs":{},"核":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"够":{"docs":{},"直":{"docs":{},"接":{"docs":{},"对":{"docs":{},"资":{"docs":{},"源":{"docs":{},"进":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"运":{"docs":{},"行":{"docs":{},"该":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{},"线":{"docs":{},"程":{"docs":{},"去":{"docs":{},"完":{"docs":{},"成":{"docs":{},"一":{"docs":{},"些":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},"的":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"创":{"docs":{},"建":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}},"线":{"docs":{},"程":{"docs":{},"创":{"docs":{},"建":{"docs":{},"后":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"线":{"docs":{},"程":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"设":{"docs":{},"置":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"亲":{"docs":{},"和":{"docs":{},"性":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"该":{"docs":{},"线":{"docs":{},"程":{"docs":{},"被":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"在":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"上":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"中":{"docs":{},",":{"docs":{},"有":{"docs":{},"链":{"docs":{},"表":{"docs":{},",":{"docs":{},"基":{"docs":{},"础":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"栈":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"调":{"docs":{},"度":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"资":{"docs":{},"源":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"还":{"docs":{},"没":{"docs":{},"开":{"docs":{},"始":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"一":{"docs":{},"个":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"切":{"docs":{},"换":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"是":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{},"地":{"docs":{},"址":{"docs":{},"中":{"docs":{},"取":{"docs":{},"出":{"docs":{},"线":{"docs":{},"程":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"断":{"docs":{},"中":{"docs":{},",":{"docs":{},"使":{"docs":{},"能":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"做":{"docs":{},"时":{"docs":{},"钟":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"关":{"docs":{},"闭":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"平":{"docs":{},"台":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"调":{"docs":{},"试":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"会":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"很":{"docs":{},"多":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"耐":{"docs":{},"心":{"docs":{},"地":{"docs":{},"调":{"docs":{},"试":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{},"文":{"docs":{},"件":{"docs":{},"头":{"docs":{},"上":{"docs":{},",":{"docs":{},"应":{"docs":{},"该":{"docs":{},"包":{"docs":{},"括":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"版":{"docs":{},"权":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"文":{"docs":{},"件":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},",":{"docs":{},"打":{"docs":{},"开":{"docs":{},"一":{"docs":{},"个":{"docs":{},"终":{"docs":{},"端":{"docs":{},",":{"docs":{},"在":{"docs":{},"配":{"docs":{},"置":{"docs":{},"了":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"配":{"docs":{},"置":{"docs":{},"了":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"中":{"docs":{},"输":{"docs":{},"入":{"docs":{},"命":{"docs":{},"令":{"docs":{},"即":{"docs":{},"可":{"docs":{},"开":{"docs":{},"始":{"docs":{},"测":{"docs":{},"试":{"docs":{},":":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}},"基":{"docs":{},"于":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},",":{"docs":{},"基":{"docs":{},"于":{"docs":{},"线":{"docs":{},"性":{"docs":{},"链":{"docs":{},"表":{"docs":{},"实":{"docs":{},"现":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"核":{"docs":{},",":{"docs":{},"多":{"docs":{},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"多":{"docs":{},"平":{"docs":{},"台":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}},"调":{"docs":{},"度":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}},"中":{"docs":{},"很":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"机":{"docs":{},"制":{"docs":{},"就":{"docs":{},"是":{"docs":{},"自":{"docs":{},"旋":{"docs":{},"锁":{"docs":{},",":{"docs":{},"当":{"docs":{},"需":{"docs":{},"要":{"docs":{},"访":{"docs":{},"问":{"docs":{},"公":{"docs":{},"共":{"docs":{},"资":{"docs":{},"源":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"旋":{"docs":{},"锁":{"docs":{},"来":{"docs":{},"上":{"docs":{},"锁":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"保":{"docs":{},"证":{"docs":{},"多":{"docs":{},"个":{"docs":{},"核":{"docs":{},"同":{"docs":{},"时":{"docs":{},"访":{"docs":{},"问":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"。":{"docs":{},"自":{"docs":{},"旋":{"docs":{},"锁":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"于":{"docs":{},"原":{"docs":{},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"而":{"docs":{},"原":{"docs":{},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{},"又":{"docs":{},"需":{"docs":{},"要":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"做":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},",":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"内":{"docs":{},"核":{"docs":{},"只":{"docs":{},"是":{"docs":{},"根":{"docs":{},"据":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"做":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},",":{"docs":{},"做":{"docs":{},"好":{"docs":{},"多":{"docs":{},"核":{"docs":{},"间":{"docs":{},"的":{"docs":{},"同":{"docs":{},"步":{"docs":{},"与":{"docs":{},"互":{"docs":{},"斥":{"docs":{},"。":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"果":{"docs":{},"您":{"docs":{},"在":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},"发":{"docs":{},"现":{"docs":{},"了":{"docs":{},"问":{"docs":{},"题":{"docs":{},"或":{"docs":{},"者":{"docs":{},"想":{"docs":{},"参":{"docs":{},"与":{"docs":{},"文":{"docs":{},"档":{"docs":{},"的":{"docs":{},"编":{"docs":{},"写":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"文":{"docs":{},"档":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"提":{"docs":{},"出":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"静":{"docs":{},"态":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"创":{"docs":{},"建":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"调":{"docs":{},"用":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"并":{"docs":{},"传":{"docs":{},"入":{"docs":{},"该":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},",":{"docs":{},"参":{"docs":{},"数":{"docs":{},"同":{"docs":{},"上":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"静":{"docs":{},"态":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"进":{"docs":{},"行":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"运":{"docs":{},"行":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"线":{"docs":{},"程":{"docs":{},"环":{"docs":{},"境":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"超":{"docs":{},"过":{"docs":{},"了":{"docs":{},"超":{"docs":{},"时":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"触":{"docs":{},"发":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},":":{"docs":{},"前":{"docs":{},"提":{"docs":{},"是":{"docs":{},"打":{"docs":{},"开":{"docs":{},"了":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"核":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"时":{"docs":{},"候":{"docs":{},"去":{"docs":{},"唤":{"docs":{},"醒":{"docs":{},"其":{"docs":{},"他":{"docs":{},"核":{"docs":{},"。":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"话":{"docs":{},"返":{"docs":{},"回":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"为":{"docs":{},"空":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"使":{"docs":{},"用":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},"作":{"docs":{},"为":{"docs":{},"入":{"docs":{},"口":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"类":{"docs":{},"型":{"docs":{},"定":{"docs":{},"义":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"指":{"docs":{},"针":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},"后":{"docs":{},"缀":{"docs":{},"或":{"docs":{},"者":{"docs":{},"其":{"docs":{},"他":{"docs":{},"可":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"意":{"docs":{},"思":{"docs":{},"的":{"docs":{},"单":{"docs":{},"词":{"docs":{},"指":{"docs":{},"明":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"为":{"docs":{},"f":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"和":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{},"则":{"docs":{},"该":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}},"你":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"影":{"docs":{},"响":{"docs":{},"了":{"docs":{},"不":{"docs":{},"止":{"docs":{},"一":{"docs":{},"个":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"*":{"docs":{},"代":{"docs":{},"替":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"源":{"docs":{},"协":{"docs":{},"议":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"由":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"留":{"docs":{},"版":{"docs":{},"权":{"docs":{},"说":{"docs":{},"明":{"docs":{},"即":{"docs":{},"可":{"docs":{},",":{"docs":{},"无":{"docs":{},"潜":{"docs":{},"在":{"docs":{},"的":{"docs":{},"商":{"docs":{},"业":{"docs":{},"风":{"docs":{},"险":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"始":{"docs":{},",":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}}}},"彩":{"docs":{},"色":{"docs":{},"日":{"docs":{},"志":{"docs":{},"输":{"docs":{},"出":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}},"我":{"docs":{},"们":{"docs":{},"以":{"docs":{},"简":{"docs":{},"洁":{"docs":{},"、":{"docs":{},"高":{"docs":{},"效":{"docs":{},"、":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"为":{"docs":{},"核":{"docs":{},"心":{"docs":{},",":{"docs":{},"用":{"docs":{},"比":{"docs":{},"较":{"docs":{},"简":{"docs":{},"洁":{"docs":{},"且":{"docs":{},"高":{"docs":{},"效":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"去":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"一":{"docs":{},"些":{"docs":{},"复":{"docs":{},"杂":{"docs":{},",":{"docs":{},"冗":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"化":{"docs":{},"繁":{"docs":{},"为":{"docs":{},"简":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"采":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"世":{"docs":{},"界":{"docs":{},"上":{"docs":{},"最":{"docs":{},"流":{"docs":{},"行":{"docs":{},"的":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"机":{"docs":{},",":{"docs":{},"各":{"docs":{},"种":{"docs":{},"平":{"docs":{},"台":{"docs":{},"都":{"docs":{},"有":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"刚":{"docs":{},"好":{"docs":{},"有":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"管":{"docs":{},"理":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"就":{"docs":{},"是":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"是":{"docs":{},"除":{"docs":{},"了":{"docs":{},"保":{"docs":{},"留":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"占":{"docs":{},"用":{"docs":{},"以":{"docs":{},"外":{"docs":{},"的":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"存":{"docs":{},"就":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"进":{"docs":{},"行":{"docs":{},"静":{"docs":{},"态":{"docs":{},"/":{"docs":{},"动":{"docs":{},"态":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"基":{"docs":{},"于":{"docs":{},"缓":{"docs":{},"存":{"docs":{},"的":{"docs":{},"链":{"docs":{},"表":{"docs":{},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{},"堆":{"docs":{},",":{"docs":{},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},"的":{"docs":{},"原":{"docs":{},"理":{"docs":{},"是":{"docs":{},",":{"docs":{},"在":{"docs":{},"释":{"docs":{},"放":{"docs":{},"一":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"放":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"链":{"docs":{},"表":{"docs":{},"上":{"docs":{},"面":{"docs":{},",":{"docs":{},"下":{"docs":{},"次":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"从":{"docs":{},"链":{"docs":{},"表":{"docs":{},"获":{"docs":{},"取":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"或":{"docs":{},"者":{"docs":{},"提":{"docs":{},"交":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"描":{"docs":{},"述":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0136986301369863},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"支":{"docs":{},"持":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"g":{"docs":{},"d":{"docs":{},"b":{"docs":{},"调":{"docs":{},"试":{"docs":{},"内":{"docs":{},"核":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}},"v":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}},"中":{"docs":{},"断":{"docs":{},"管":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"串":{"docs":{},"口":{"docs":{},"输":{"docs":{},"入":{"docs":{},"输":{"docs":{},"出":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"线":{"docs":{},"程":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"核":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"均":{"docs":{},"衡":{"docs":{},"负":{"docs":{},"载":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"进":{"docs":{},"程":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}},"配":{"docs":{},"置":{"docs":{},"日":{"docs":{},"志":{"docs":{},"输":{"docs":{},"出":{"docs":{},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"格":{"docs":{},"式":{"docs":{},",":{"docs":{},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"消":{"docs":{},"息":{"docs":{},"等":{"docs":{},"级":{"docs":{},"等":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}},"特":{"docs":{},"权":{"docs":{},"保":{"docs":{},"护":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"架":{"docs":{},"构":{"docs":{},"中":{"docs":{},",":{"docs":{},"都":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"模":{"docs":{},"式":{"docs":{},"切":{"docs":{},"换":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"至":{"docs":{},"少":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"特":{"docs":{},"权":{"docs":{},"级":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"用":{"docs":{},"于":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},",":{"docs":{},"特":{"docs":{},"权":{"docs":{},"更":{"docs":{},"高":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"。":{"docs":{},"另":{"docs":{},"外":{"docs":{},"一":{"docs":{},"个":{"docs":{},"用":{"docs":{},"于":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{},"版":{"docs":{},"本":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},"框":{"docs":{},"架":{"docs":{},"以":{"docs":{},"及":{"docs":{},"各":{"docs":{},"种":{"docs":{},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"支":{"docs":{},"持":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}},":":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"/":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"s":{"docs":{},"b":{"docs":{},"i":{"docs":{},"_":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"/":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"_":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"/":{"docs":{},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"名":{"docs":{},"称":{"docs":{},"也":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"首":{"docs":{},"字":{"docs":{},"母":{"docs":{},"大":{"docs":{},"写":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"缩":{"docs":{},"写":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"全":{"docs":{},"部":{"docs":{},"都":{"docs":{},"大":{"docs":{},"写":{"docs":{},"。":{"docs":{},"文":{"docs":{},"件":{"docs":{},"命":{"docs":{},"名":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"通":{"docs":{},"用":{"docs":{},"化":{"docs":{},"、":{"docs":{},"使":{"docs":{},"用":{"docs":{},"频":{"docs":{},"率":{"docs":{},"高":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{},"c":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"分":{"docs":{},"时":{"docs":{},"多":{"docs":{},"进":{"docs":{},"程":{"docs":{},"/":{"docs":{},"多":{"docs":{},"线":{"docs":{},"程":{"docs":{},"(":{"docs":{},"也":{"docs":{},"支":{"docs":{},"持":{"docs":{},"实":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},")":{"docs":{},",":{"docs":{},"支":{"docs":{},"持":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"为":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"。":{"docs":{},"在":{"docs":{},"开":{"docs":{},"启":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"该":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"中":{"docs":{},"断":{"docs":{},"工":{"docs":{},"作":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"设":{"docs":{},"定":{"docs":{},"的":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"能":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"映":{"docs":{},"射":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"并":{"docs":{},"映":{"docs":{},"射":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"需":{"docs":{},"的":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"算":{"docs":{},"法":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"/":{"docs":{},"释":{"docs":{},"放":{"docs":{},"管":{"docs":{},"理":{"docs":{},"之":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"算":{"docs":{},"法":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},")":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"初":{"docs":{},"期":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"运":{"docs":{},"行":{"docs":{},"在":{"docs":{},"一":{"docs":{},"些":{"docs":{},"高":{"docs":{},"性":{"docs":{},"能":{"docs":{},"的":{"docs":{},"嵌":{"docs":{},"入":{"docs":{},"式":{"docs":{},"设":{"docs":{},"备":{"docs":{},"上":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"手":{"docs":{},"机":{"docs":{},"终":{"docs":{},"端":{"docs":{},",":{"docs":{},"游":{"docs":{},"戏":{"docs":{},"掌":{"docs":{},"机":{"docs":{},"等":{"docs":{},"。":{"docs":{},"后":{"docs":{},"期":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"能":{"docs":{},"够":{"docs":{},"作":{"docs":{},"为":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"甚":{"docs":{},"至":{"docs":{},"是":{"docs":{},"桌":{"docs":{},"面":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"代":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"它":{"docs":{},"和":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}},"任":{"docs":{},"务":{"docs":{},"被":{"docs":{},"唤":{"docs":{},"醒":{"docs":{},",":{"docs":{},"就":{"docs":{},"得":{"docs":{},"立":{"docs":{},"即":{"docs":{},"切":{"docs":{},"换":{"docs":{},"过":{"docs":{},"去":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"去":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"来":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"也":{"docs":{},"能":{"docs":{},"够":{"docs":{},"正":{"docs":{},"常":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"新":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"访":{"docs":{},"问":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"出":{"docs":{},"错":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"进":{"docs":{},"程":{"docs":{},"都":{"docs":{},"会":{"docs":{},"把":{"docs":{},"部":{"docs":{},"分":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{},"范":{"docs":{},"围":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"在":{"docs":{},"访":{"docs":{},"问":{"docs":{},"前":{"docs":{},"映":{"docs":{},"射":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}},"好":{"docs":{},"处":{"docs":{},"是":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"串":{"docs":{},"口":{"docs":{},"的":{"docs":{},"输":{"docs":{},"入":{"docs":{},"输":{"docs":{},"出":{"docs":{},",":{"docs":{},"很":{"docs":{},"方":{"docs":{},"便":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"不":{"docs":{},"用":{"docs":{},"自":{"docs":{},"己":{"docs":{},"从":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"封":{"docs":{},"装":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"设":{"docs":{},"置":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},",":{"docs":{},"最":{"docs":{},"开":{"docs":{},"始":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"跑":{"docs":{},"进":{"docs":{},"程":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"类":{"docs":{},"别":{"docs":{},",":{"docs":{},"只":{"docs":{},"允":{"docs":{},"许":{"docs":{},"使":{"docs":{},"用":{"docs":{},"下":{"docs":{},"面":{"7":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"docs":{}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"分":{"docs":{},"成":{"docs":{},"多":{"docs":{},"行":{"docs":{},"。":{"docs":{},"下":{"docs":{},"面":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"范":{"docs":{},"例":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"录":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0136986301369863}},"下":{"docs":{},"面":{"docs":{},",":{"docs":{},"新":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"这":{"docs":{},"些":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}},"名":{"docs":{},"称":{"docs":{},"采":{"docs":{},"用":{"docs":{},"首":{"docs":{},"字":{"docs":{},"母":{"docs":{},"大":{"docs":{},"写":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"docs":{},"子":{"docs":{},"目":{"docs":{},"录":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{},"属":{"docs":{},"于":{"docs":{},"父":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"相":{"docs":{},"关":{"docs":{},"性":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"k":{"docs":{},"/":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"是":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"的":{"docs":{},"的":{"docs":{},"简":{"docs":{},"短":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"不":{"docs":{},"超":{"docs":{},"过":{"5":{"0":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}},"简":{"docs":{},"介":{"docs":{"./":{"ref":"./","tf":5.01010101010101}}}},"线":{"docs":{},"程":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}},"管":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":10.003424657534246},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"创":{"docs":{},"建":{"docs":{},"好":{"docs":{},"后":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"启":{"docs":{},"动":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"主":{"docs":{},"动":{"docs":{},"退":{"docs":{},"出":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"具":{"docs":{},"有":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"的":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"先":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"低":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"后":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"在":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"让":{"docs":{},"出":{"docs":{},"当":{"docs":{},"前":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},",":{"docs":{},"希":{"docs":{},"望":{"docs":{},"把":{"docs":{},"运":{"docs":{},"行":{"docs":{},"机":{"docs":{},"会":{"docs":{},"让":{"docs":{},"给":{"docs":{},"其":{"docs":{},"它":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"做":{"docs":{},"一":{"docs":{},"个":{"docs":{},"\"":{"docs":{},"好":{"docs":{},"人":{"docs":{},"\"":{"docs":{},",":{"docs":{},"此":{"docs":{},"时":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"是":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"等":{"docs":{},"都":{"docs":{},"有":{"docs":{},"自":{"docs":{},"己":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"任":{"docs":{},"务":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"来":{"docs":{},"保":{"docs":{},"证":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"至":{"docs":{},"少":{"docs":{},"能":{"docs":{},"够":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"栈":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"支":{"docs":{},"持":{"docs":{},"c":{"docs":{},"p":{"docs":{},"i":{"docs":{},"o":{"docs":{},"只":{"docs":{},"读":{"docs":{},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"实":{"docs":{},"现":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}},"平":{"docs":{},"台":{"docs":{},"运":{"docs":{},"行":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":10}}}},"中":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"布":{"docs":{},"局":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}},"机":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"地":{"docs":{},"址":{"docs":{},"在":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"指":{"docs":{},"定":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"是":{"docs":{},"传":{"docs":{},"入":{"docs":{},"一":{"docs":{},"个":{"docs":{},"想":{"docs":{},"要":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"为":{"0":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"和":{"docs":{},"访":{"docs":{},"问":{"docs":{},",":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},",":{"docs":{},"映":{"docs":{},"射":{"docs":{},"和":{"docs":{},"解":{"docs":{},"除":{"docs":{},"页":{"docs":{},"面":{"docs":{},"映":{"docs":{},"射":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}},"化":{"docs":{},"模":{"docs":{},"式":{"docs":{},"用":{"docs":{},"于":{"docs":{},"使":{"docs":{},"用":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"化":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"还":{"docs":{},"在":{"docs":{},"开":{"docs":{},"发":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}},"#":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.08040201005025126},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.08791208791208792},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.11764705882352941},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.07563025210084033},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.07692307692307693},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.02054794520547945},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.06779661016949153},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.005035669324381032},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}}}},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"e":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}},"这":{"docs":{},"种":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"开":{"docs":{},"头":{"docs":{},"和":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"后":{"docs":{},"面":{"docs":{},"写":{"docs":{},"上":{"docs":{},"注":{"docs":{},"释":{"docs":{},"来":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"开":{"docs":{},"发":{"docs":{},"这":{"docs":{},"快":{"docs":{},"速":{"docs":{},"找":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"宏":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.025597985732270248}}}}}}}}},"&":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003357112882920688}},"&":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}},"(":{"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},")":{"docs":{},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},"安":{"docs":{},"装":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},"安":{"docs":{},"装":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"h":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"t":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"p":{"docs":{},"i":{"docs":{},"o":{"docs":{},"a":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}},"x":{"8":{"6":{"docs":{},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"docs":{}},"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},")":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},")":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"调":{"docs":{},"用":{"docs":{},")":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}},"平":{"docs":{},"台":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}},"二":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"什":{"docs":{},"么":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}}}}}}}},"调":{"docs":{},"度":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},")":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"_":{"docs":{},"n":{"docs":{},"r":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"_":{"docs":{},"h":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},"&":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"0":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"1":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"2":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"3":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"_":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"_":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"p":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},"t":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},")":{"docs":{},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}},"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},"(":{"docs":{},"(":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}},"!":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"*":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"\"":{"docs":{},"r":{"docs":{},"d":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"a":{"0":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"1":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"n":{"docs":{},"o":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}}}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"_":{"docs":{},"p":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}}}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"d":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"r":{"docs":{},"v":{"6":{"4":{"docs":{},"g":{"docs":{},"c":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"docs":{}},"docs":{}}},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}},"c":{"docs":{},"s":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"+":{"docs":{},"a":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"d":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"p":{"docs":{},"_":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"_":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"_":{"docs":{},"k":{"2":{"1":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"0":{"docs":{},"_":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"_":{"docs":{},"s":{"docs":{},"b":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.005035669324381032}}}},"n":{"docs":{},"t":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"d":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"s":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}},")":{"docs":{},";":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}},"r":{"docs":{},"e":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"a":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"\"":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"2":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"3":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}}}}}}}},"w":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}},"p":{"docs":{},"y":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}},"d":{"docs":{},"e":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},",":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}},"i":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.049586776859504134}}}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.04225352112676056}}}},"s":{"docs":{},"e":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.014705882352941176}}}},"l":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.01652892561983471}}}},"r":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.015544041450777202},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.02727272727272727}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"p":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"0":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"1":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"3":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}}}}}}}}}},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}},",":{"docs":{},"而":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"都":{"docs":{},"是":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}}}}},"s":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"w":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}},"语":{"docs":{},"言":{"docs":{},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"为":{"docs":{},"了":{"docs":{},"避":{"docs":{},"免":{"docs":{},"多":{"docs":{},"次":{"docs":{},"重":{"docs":{},"复":{"docs":{},"包":{"docs":{},"含":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"形":{"docs":{},"式":{"docs":{},"请":{"docs":{},"采":{"docs":{},"用":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"风":{"docs":{},"格":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"d":{"docs":{},"b":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}},"调":{"docs":{},"试":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"e":{"docs":{},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}}}}}}}},"t":{"docs":{},"_":{"docs":{},"p":{"docs":{},"f":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}},"r":{"docs":{},"u":{"docs":{},"b":{"2":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}},"引":{"docs":{},"导":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}},"docs":{}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.08108108108108109}},"\\":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}},"u":{"8":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},"docs":{},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"docs":{},"/":{"docs":{},"k":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.01652892561983471}},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00209819555182543}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},")":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}},"d":{"docs":{},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"i":{"docs":{},"z":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.02849740932642487}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"=":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"/":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"u":{"docs":{},"s":{"docs":{},"b":{"0":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"docs":{}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"3":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"docs":{}}}}},"是":{"docs":{},"串":{"docs":{},"口":{"docs":{},"设":{"docs":{},"备":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"设":{"docs":{},"备":{"docs":{},"列":{"docs":{},"表":{"docs":{},"查":{"docs":{},"看":{"docs":{},"是":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"设":{"docs":{},"备":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"是":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"/":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"u":{"docs":{},"s":{"docs":{},"b":{"0":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"不":{"docs":{},"写":{"docs":{},"。":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"查":{"docs":{},"看":{"docs":{},",":{"docs":{},"k":{"2":{"1":{"0":{"docs":{},"的":{"docs":{},"设":{"docs":{},"备":{"docs":{},"是":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"串":{"docs":{},"口":{"docs":{},"。":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"n":{"docs":{},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}},"y":{"docs":{},"u":{"docs":{},"m":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}},"y":{"docs":{},"i":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"解":{"docs":{},"压":{"docs":{},"出":{"docs":{},"来":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"配":{"docs":{},"置":{"docs":{},"到":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"中":{"docs":{},"(":{"docs":{},"最":{"docs":{},"好":{"docs":{},"是":{"docs":{},"配":{"docs":{},"置":{"docs":{},"到":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"最":{"docs":{},"前":{"docs":{},"面":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"和":{"docs":{},"其":{"docs":{},"它":{"docs":{},"系":{"docs":{},"统":{"docs":{},"已":{"docs":{},"经":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"冲":{"docs":{},"突":{"docs":{},")":{"docs":{},",":{"docs":{},"解":{"docs":{},"压":{"docs":{},"后":{"docs":{},"您":{"docs":{},"将":{"docs":{},"会":{"docs":{},"有":{"docs":{},":":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"链":{"docs":{},"接":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},".":{"docs":{},"w":{"docs":{},"e":{"docs":{},"i":{"docs":{},"l":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"z":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"/":{"docs":{},"w":{"6":{"4":{"docs":{},"/":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"到":{"docs":{},"本":{"docs":{},"地":{"docs":{},"后":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"手":{"docs":{},"动":{"docs":{},"解":{"docs":{},"压":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"面":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"对":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"的":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"路":{"docs":{},"径":{"docs":{},"配":{"docs":{},"置":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"其":{"docs":{},"他":{"docs":{},"比":{"docs":{},"较":{"docs":{},"小":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"已":{"docs":{},"经":{"docs":{},"打":{"docs":{},"包":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"包":{"docs":{},"里":{"docs":{},"面":{"docs":{},"了":{"docs":{},",":{"docs":{},"下":{"docs":{},"载":{"docs":{},"解":{"docs":{},"压":{"docs":{},"后":{"docs":{},",":{"docs":{},"手":{"docs":{},"动":{"docs":{},"添":{"docs":{},"加":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"到":{"docs":{},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"选":{"docs":{},"中":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"做":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"(":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},")":{"docs":{},",":{"docs":{},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"平":{"docs":{},"台":{"docs":{},"下":{"docs":{},"载":{"docs":{},"平":{"docs":{},"台":{"docs":{},"特":{"docs":{},"别":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"到":{"docs":{},"平":{"docs":{},"台":{"docs":{},"中":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"仅":{"docs":{},"仅":{"docs":{},"编":{"docs":{},"译":{"docs":{},"源":{"docs":{},"码":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}},"使":{"docs":{},"用":{"docs":{},"菜":{"docs":{},"单":{"docs":{},"配":{"docs":{},"置":{"docs":{},"进":{"docs":{},"行":{"docs":{},"个":{"docs":{},"性":{"docs":{},"化":{"docs":{},"剪":{"docs":{},"裁":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"打":{"docs":{},"开":{"docs":{},"或":{"docs":{},"者":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"某":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"设":{"docs":{},"置":{"docs":{},"一":{"docs":{},"些":{"docs":{},"变":{"docs":{},"量":{"docs":{},"等":{"docs":{},"。":{"docs":{},"配":{"docs":{},"置":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"按":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"键":{"docs":{},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"退":{"docs":{},"出":{"docs":{},"后":{"docs":{},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"新":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"就":{"docs":{},"非":{"docs":{},"常":{"docs":{},"方":{"docs":{},"便":{"docs":{},"移":{"docs":{},"植":{"docs":{},"到":{"docs":{},"其":{"docs":{},"它":{"docs":{},"架":{"docs":{},"构":{"docs":{},"上":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"写":{"docs":{},"作":{"docs":{},"为":{"docs":{},"名":{"docs":{},"字":{"docs":{},",":{"docs":{},"单":{"docs":{},"词":{"docs":{},"间":{"docs":{},"使":{"docs":{},"用":{"docs":{},"\"":{"docs":{},"_":{"docs":{},"\"":{"docs":{},"隔":{"docs":{},"开":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"人":{"docs":{},"称":{"docs":{},"现":{"docs":{},"在":{"docs":{},"时":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},"或":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}},"加":{"docs":{},"载":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"会":{"docs":{},"读":{"docs":{},"取":{"docs":{},"选":{"docs":{},"中":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"默":{"docs":{},"认":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"配":{"docs":{},"置":{"docs":{},"到":{"docs":{},"工":{"docs":{},"作":{"docs":{},"区":{"docs":{},"中":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"速":{"docs":{},"器":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"快":{"docs":{},"速":{"docs":{},"体":{"docs":{},"验":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}},"入":{"docs":{},"门":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"推":{"docs":{},"荐":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"不":{"docs":{},"错":{"docs":{},"的":{"docs":{},"终":{"docs":{},"端":{"docs":{},"(":{"docs":{},"非":{"docs":{},"必":{"docs":{},"须":{"docs":{},")":{"docs":{},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},"安":{"docs":{},"装":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"文":{"docs":{},"档":{"docs":{},"将":{"docs":{},"带":{"docs":{},"您":{"docs":{},"从":{"docs":{},"入":{"docs":{},"门":{"docs":{},"到":{"docs":{},"劝":{"docs":{},"退":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}},"存":{"docs":{},"放":{"docs":{},"的":{"docs":{},"是":{"docs":{},"用":{"docs":{},"户":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"编":{"docs":{},"程":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"说":{"docs":{},"明":{"docs":{},"。":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"的":{"docs":{},"下":{"docs":{},"载":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"搭":{"docs":{},"建":{"docs":{},"编":{"docs":{},"译":{"docs":{},"环":{"docs":{},"境":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"后":{"docs":{},"再":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"。":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"关":{"docs":{},"于":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"程":{"docs":{},"风":{"docs":{},"格":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"。":{"docs":{},"开":{"docs":{},"发":{"docs":{},"者":{"docs":{},"必":{"docs":{},"须":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"本":{"docs":{},"文":{"docs":{},"档":{"docs":{},"规":{"docs":{},"范":{"docs":{},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"系":{"docs":{},"统":{"docs":{},"内":{"docs":{},"核":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"作":{"docs":{},"为":{"docs":{},"主":{"docs":{},"要":{"docs":{},"开":{"docs":{},"发":{"docs":{},"语":{"docs":{},"言":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"以":{"docs":{},"下":{"docs":{},"规":{"docs":{},"则":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"适":{"docs":{},"用":{"docs":{},"于":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"欢":{"docs":{},"迎":{"docs":{},"来":{"docs":{},"到":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"内":{"docs":{},"核":{"docs":{},"!":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"跨":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"简":{"docs":{},"洁":{"docs":{},"的":{"docs":{},"高":{"docs":{},"性":{"docs":{},"能":{"docs":{},",":{"docs":{},"高":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"性":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"内":{"docs":{},"核":{"docs":{},",":{"docs":{},"它":{"docs":{},"将":{"docs":{},"应":{"docs":{},"用":{"docs":{},"于":{"docs":{},"桌":{"docs":{},"面":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},"以":{"docs":{},"及":{"docs":{},"移":{"docs":{},"动":{"docs":{},"终":{"docs":{},"端":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"骤":{"docs":{},"拆":{"docs":{},"解":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},",":{"docs":{},"为":{"docs":{},"平":{"docs":{},"台":{"docs":{},"做":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"一":{"docs":{},"下":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"字":{"docs":{},"母":{"docs":{},"小":{"docs":{},"写":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"运":{"docs":{},"行":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"使":{"docs":{},"用":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"机":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"按":{"docs":{},"下":{"docs":{},"小":{"docs":{},"写":{"docs":{},"的":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{},"+":{"docs":{},"x":{"docs":{},"后":{"docs":{},"再":{"docs":{},"按":{"docs":{},"下":{"docs":{},"a":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"退":{"docs":{},"出":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"并":{"docs":{},"运":{"docs":{},"行":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}},"程":{"docs":{},"风":{"docs":{},"格":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},"设":{"docs":{},"置":{"docs":{},"临":{"docs":{},"时":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"在":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"有":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"来":{"docs":{},"设":{"docs":{},"置":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"使":{"docs":{},"用":{"docs":{},"b":{"docs":{},"a":{"docs":{},"t":{"docs":{},",":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{},"使":{"docs":{},"用":{"docs":{},"s":{"docs":{},"h":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"了":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"到":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"当":{"docs":{},"访":{"docs":{},"问":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"设":{"docs":{},"置":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"进":{"docs":{},"行":{"docs":{},"地":{"docs":{},"址":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},"的":{"docs":{},"值":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"备":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"调":{"docs":{},"试":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"配":{"docs":{},"置":{"docs":{},"信":{"docs":{},"息":{"docs":{},"和":{"docs":{},"文":{"docs":{},"件":{"docs":{},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"平":{"docs":{},"台":{"docs":{},"中":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"配":{"docs":{},"置":{"docs":{},"永":{"docs":{},"久":{"docs":{},"生":{"docs":{},"效":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"度":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},"和":{"docs":{},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"同":{"docs":{},"步":{"docs":{},"机":{"docs":{},"制":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}},"管":{"docs":{},"理":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":10.090909090909092}}}}},"用":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"代":{"docs":{},"码":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"输":{"docs":{},"入":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}},"进":{"docs":{},"入":{"docs":{},"到":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},",":{"docs":{},"在":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"打":{"docs":{},"开":{"docs":{},"一":{"docs":{},"个":{"docs":{},"终":{"docs":{},"端":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"打":{"docs":{},"开":{"docs":{},"终":{"docs":{},"端":{"docs":{},"。":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}},"单":{"docs":{},"元":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"程":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":10.012658227848101},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},",":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"关":{"docs":{},"内":{"docs":{},"容":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"操":{"docs":{},"作":{"docs":{},"是":{"docs":{},"实":{"docs":{},"现":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"必":{"docs":{},"要":{"docs":{},"条":{"docs":{},"件":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"间":{"docs":{},"通":{"docs":{},"信":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"基":{"docs":{},"于":{"docs":{},"线":{"docs":{},"性":{"docs":{},"链":{"docs":{},"表":{"docs":{},"实":{"docs":{},"现":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}}}}}}}}},"之":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"空":{"docs":{},"间":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}},"在":{"docs":{},"启":{"docs":{},"动":{"docs":{},"前":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"载":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"、":{"docs":{},"数":{"docs":{},"据":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"才":{"docs":{},"开":{"docs":{},"始":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"(":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"就":{"docs":{},"是":{"docs":{},"用":{"docs":{},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"不":{"docs":{},"同":{"docs":{},"地":{"docs":{},"址":{"docs":{},"会":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"用":{"docs":{},"途":{"docs":{},",":{"docs":{},"于":{"docs":{},"是":{"docs":{},"会":{"docs":{},"有":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"节":{"docs":{},"点":{"docs":{},"(":{"docs":{},"v":{"docs":{},"m":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"管":{"docs":{},"理":{"docs":{},"使":{"docs":{},"用":{"docs":{},"链":{"docs":{},"表":{"docs":{},"来":{"docs":{},"维":{"docs":{},"护":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"根":{"docs":{},"据":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"值":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"线":{"docs":{},"性":{"docs":{},"排":{"docs":{},"序":{"docs":{},",":{"docs":{},"低":{"docs":{},"地":{"docs":{},"址":{"docs":{},"在":{"docs":{},"链":{"docs":{},"表":{"docs":{},"的":{"docs":{},"开":{"docs":{},"头":{"docs":{},",":{"docs":{},"高":{"docs":{},"地":{"docs":{},"址":{"docs":{},"在":{"docs":{},"链":{"docs":{},"表":{"docs":{},"的":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"程":{"docs":{},"序":{"docs":{},"运":{"docs":{},"行":{"docs":{},"出":{"docs":{},"故":{"docs":{},"障":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"系":{"docs":{},"统":{"docs":{},"出":{"docs":{},"现":{"docs":{},"故":{"docs":{},"障":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"一":{"docs":{},"些":{"docs":{},"服":{"docs":{},"务":{"docs":{},"程":{"docs":{},"序":{"docs":{},"放":{"docs":{},"到":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"作":{"docs":{},"为":{"docs":{},"进":{"docs":{},"程":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"当":{"docs":{},"服":{"docs":{},"务":{"docs":{},"出":{"docs":{},"错":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"不":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"束":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"并":{"docs":{},"传":{"docs":{},"入":{"docs":{},"退":{"docs":{},"出":{"docs":{},"时":{"docs":{},"候":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"具":{"docs":{},"有":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"线":{"docs":{},"性":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"集":{"docs":{},"合":{"docs":{},",":{"docs":{},"是":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"容":{"docs":{},"器":{"docs":{},"。":{"docs":{},"在":{"docs":{},"现":{"docs":{},"代":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},",":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"的":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"于":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}},"行":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"于":{"docs":{},"是":{"docs":{},"进":{"docs":{},"程":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"就":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"分":{"docs":{},"发":{"docs":{},",":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"内":{"docs":{},"核":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}},"菜":{"docs":{},"单":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"你":{"docs":{},"想":{"docs":{},"要":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"或":{"docs":{},"者":{"docs":{},"进":{"docs":{},"行":{"docs":{},"某":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{},"配":{"docs":{},"置":{"docs":{},"完":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"菜":{"docs":{},"单":{"docs":{},"的":{"docs":{},"提":{"docs":{},"示":{"docs":{},"进":{"docs":{},"行":{"docs":{},"退":{"docs":{},"出":{"docs":{},"或":{"docs":{},"者":{"docs":{},"保":{"docs":{},"存":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"退":{"docs":{},"出":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}}}}}},"k":{"2":{"1":{"0":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"docs":{}},"docs":{}},"docs":{}},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"进":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"一":{"docs":{},"个":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}},"单":{"docs":{},"元":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}},"选":{"docs":{},"择":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{},"下":{"docs":{},"载":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},",":{"docs":{},"安":{"docs":{},"装":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"再":{"docs":{},"把":{"docs":{},"路":{"docs":{},"径":{"docs":{},"配":{"docs":{},"置":{"docs":{},"到":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"中":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"配":{"docs":{},"置":{"docs":{},"环":{"docs":{},"境":{"docs":{},"并":{"docs":{},"运":{"docs":{},"行":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}},"变":{"docs":{},"量":{"docs":{},"时":{"docs":{},"的":{"docs":{},"路":{"docs":{},"径":{"docs":{},":":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}}}}}},"+":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.136986301369863},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.021739130434782608},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.002517834662190516},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"=":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"/":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0136986301369863},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563}},"*":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.07191780821917808},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.009232060428031893},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.029411764705882353},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.05}},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.007133864876206463},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}},"/":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0029374737725556023},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"f":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}},";":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},".":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"_":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}},"l":{"docs":{},"f":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.08108108108108109}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"r":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"y":{"docs":{},"`":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"v":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"p":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}}},"r":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"f":{"docs":{},"s":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.007553503986571549}}}}}},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.012953367875647668}},";":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}}},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}},"o":{"docs":{},"p":{"docs":{},"p":{"docs":{},"i":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"t":{"1":{"2":{"docs":{},",":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}},"6":{"docs":{},",":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}},"docs":{}},"3":{"2":{"docs":{},",":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}},"docs":{}},"docs":{},"f":{"docs":{},"s":{"docs":{},",":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"i":{"docs":{},"x":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"e":{"docs":{},"d":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},":":{"docs":{},"修":{"docs":{},"补":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"v":{"docs":{},"e":{"docs":{},"”":{"docs":{},")":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"于":{"docs":{},"精":{"docs":{},"简":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},")":{"docs":{},"原":{"docs":{},"则":{"docs":{},"的":{"docs":{},"开":{"docs":{},"源":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"架":{"docs":{},"构":{"docs":{},"(":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},")":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},".":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.01652892561983471}}}}}}},":":{"docs":{},"新":{"docs":{},"功":{"docs":{},"能":{"docs":{},"(":{"docs":{},"f":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"p":{"docs":{},"u":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}}}},"|":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.15753424657534246},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.017205203524968526}},"内":{"docs":{},"容":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"描":{"docs":{},"述":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"常":{"docs":{},"用":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"组":{"docs":{},"件":{"docs":{},",":{"docs":{},"小":{"docs":{},"工":{"docs":{},"具":{"docs":{},",":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"显":{"docs":{},"示":{"docs":{},"以":{"docs":{},"及":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"操":{"docs":{},"作":{"docs":{},"等":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}}}}}},"平":{"docs":{},"台":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"存":{"docs":{},"放":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"p":{"docs":{},"c":{"docs":{},"平":{"docs":{},"台":{"docs":{},"或":{"docs":{},"者":{"docs":{},"一":{"docs":{},"个":{"docs":{},"开":{"docs":{},"发":{"docs":{},"板":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"了":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"者":{"docs":{},"实":{"docs":{},"现":{"docs":{},")":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.075}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}},"整":{"docs":{},"体":{"docs":{},"框":{"docs":{},"架":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":10}}}}}},"时":{"docs":{},"间":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"时":{"docs":{},"钟":{"docs":{},"和":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}},"长":{"docs":{},"度":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"被":{"docs":{},"唤":{"docs":{},"醒":{"docs":{},",":{"docs":{},"继":{"docs":{},"续":{"docs":{},"往":{"docs":{},"后":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}},"管":{"docs":{},"理":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},",":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"架":{"docs":{},"构":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"相":{"docs":{},"关":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"x":{"8":{"6":{"docs":{},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"docs":{}},"docs":{}}}}}}},"中":{"docs":{},",":{"docs":{},"有":{"3":{"docs":{},"个":{"docs":{},"特":{"docs":{},"权":{"docs":{},"级":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}},"4":{"docs":{},"个":{"docs":{},"特":{"docs":{},"权":{"docs":{},"级":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"0":{"docs":{},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"docs":{}}}}}}}}}}},"docs":{}},"内":{"docs":{},"存":{"docs":{},"全":{"docs":{},"(":{"docs":{},"读":{"docs":{},"和":{"docs":{},"写":{"docs":{},")":{"docs":{},"屏":{"docs":{},"障":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}},"首":{"docs":{},"度":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}}},"框":{"docs":{},"架":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"测":{"docs":{},"试":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"测":{"docs":{},"试":{"docs":{},"框":{"docs":{},"架":{"docs":{},"和":{"docs":{},"测":{"docs":{},"试":{"docs":{},"代":{"docs":{},"码":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"x":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"和":{"docs":{},"k":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"等":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{},"分":{"docs":{},"发":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"架":{"docs":{},"构":{"docs":{},"传":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"会":{"docs":{},"有":{"docs":{},"区":{"docs":{},"别":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"进":{"docs":{},"程":{"docs":{},"切":{"docs":{},"换":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"切":{"docs":{},"换":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"创":{"docs":{},"建":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"释":{"docs":{},"放":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"进":{"docs":{},"程":{"docs":{},"从":{"docs":{},"内":{"docs":{},"核":{"docs":{},"跳":{"docs":{},"到":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}},"户":{"docs":{},"模":{"docs":{},"式":{"docs":{},"就":{"docs":{},"是":{"docs":{},"应":{"docs":{},"用":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"模":{"docs":{},"式":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"进":{"docs":{},"入":{"docs":{},"到":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}},"态":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"框":{"docs":{},"架":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"采":{"docs":{},"取":{"docs":{},"架":{"docs":{},"构":{"docs":{},"和":{"docs":{},"平":{"docs":{},"台":{"docs":{},"分":{"docs":{},"离":{"docs":{},"的":{"docs":{},"措":{"docs":{},"施":{"docs":{},",":{"docs":{},"其":{"docs":{},"原":{"docs":{},"因":{"docs":{},"在":{"docs":{},"于":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"架":{"docs":{},"构":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"平":{"docs":{},"台":{"docs":{},",":{"docs":{},"分":{"docs":{},"离":{"docs":{},"后":{"docs":{},"可":{"docs":{},"以":{"docs":{},"服":{"docs":{},"用":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"混":{"docs":{},"合":{"docs":{},"内":{"docs":{},"核":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"结":{"docs":{},"合":{"docs":{},"宏":{"docs":{},"内":{"docs":{},"核":{"docs":{},"和":{"docs":{},"微":{"docs":{},"内":{"docs":{},"核":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},"有":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"目":{"docs":{},"录":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"驱":{"docs":{},"动":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"磁":{"docs":{},"盘":{"docs":{},",":{"docs":{},"输":{"docs":{},"入":{"docs":{},"输":{"docs":{},"出":{"docs":{},"设":{"docs":{},"备":{"docs":{},"等":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}},">":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.275},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}},"a":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"1":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"2":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"3":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"4":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"5":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}},"6":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}},"e":{"docs":{},"p":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},".":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"s":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"e":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0029374737725556023}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}},",":{"docs":{},"当":{"docs":{},"执":{"docs":{},"行":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"地":{"docs":{},"方":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"内":{"docs":{},"核":{"docs":{},"就":{"docs":{},"开":{"docs":{},"始":{"docs":{},"运":{"docs":{},"行":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"p":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"3":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}}}}}},"_":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"_":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"_":{"docs":{},"f":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"_":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"(":{"docs":{},"(":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"b":{"docs":{},"o":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"_":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"_":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.00209819555182543}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}},"同":{"docs":{},"用":{"docs":{},"法":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}},"的":{"docs":{},"架":{"docs":{},"构":{"docs":{},"内":{"docs":{},"核":{"docs":{},"入":{"docs":{},"口":{"docs":{},"代":{"docs":{},"码":{"docs":{},"有":{"docs":{},"差":{"docs":{},"异":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"架":{"docs":{},"构":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}},"管":{"docs":{},"是":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"行":{"docs":{},"都":{"docs":{},"不":{"docs":{},"得":{"docs":{},"超":{"docs":{},"过":{"7":{"2":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},"(":{"docs":{},"或":{"1":{"0":{"0":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},")":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"避":{"docs":{},"免":{"docs":{},"自":{"docs":{},"动":{"docs":{},"换":{"docs":{},"行":{"docs":{},"影":{"docs":{},"响":{"docs":{},"美":{"docs":{},"观":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"带":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"和":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}},"启":{"docs":{},"动":{"docs":{},"流":{"docs":{},"程":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":10.025}}}},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"参":{"docs":{},"加":{"docs":{},"到":{"docs":{},"调":{"docs":{},"度":{"docs":{},"工":{"docs":{},"作":{"docs":{},"中":{"docs":{},"。":{"docs":{},"而":{"docs":{},"调":{"docs":{},"度":{"docs":{},"队":{"docs":{},"列":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"于":{"docs":{},"原":{"docs":{},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{},"来":{"docs":{},"保":{"docs":{},"证":{"docs":{},"对":{"docs":{},"公":{"docs":{},"共":{"docs":{},"队":{"docs":{},"列":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"。":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}},"它":{"docs":{},",":{"docs":{},"才":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"超":{"docs":{},"时":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"回":{"docs":{},"调":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.03260869565217391},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0419639110365086},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.04411764705882353}},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},",":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001678556441460344}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}}}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"r":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"docs":{}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"s":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}},"p":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"t":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.03260869565217391}}}}},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.018134715025906734}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},";":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043}}}}}}}}}},"*":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077}}}}}}}}}}}},"/":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.07191780821917808},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.016365925304238357},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.03676470588235294},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.05}}},"s":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.046153846153846156}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}}},"s":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.001258917331095258}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0029374737725556023}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725}}}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.03225806451612903}}}},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}},",":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.05128205128205128}}}},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"_":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"(":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}}}}},"p":{"docs":{},"u":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}}},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}}}},"q":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{},"在":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"映":{"docs":{},"射":{"docs":{},"和":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"中":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"到":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}},"空":{"docs":{},"格":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"意":{"docs":{},"义":{"docs":{},",":{"docs":{},"请":{"docs":{},"在":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"说":{"docs":{},"就":{"docs":{},"是":{"docs":{},"对":{"docs":{},"一":{"docs":{},"段":{"docs":{},"或":{"docs":{},"者":{"docs":{},"多":{"docs":{},"段":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"配":{"docs":{},"与":{"docs":{},"释":{"docs":{},"放":{"docs":{},",":{"docs":{},"让":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"去":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"返":{"docs":{},"回":{"docs":{},"栈":{"docs":{},"低":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"后":{"docs":{},"又":{"docs":{},"推":{"docs":{},"出":{"docs":{},"了":{"docs":{},"包":{"docs":{},"括":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}}},"中":{"docs":{},"。":{"docs":{},"其":{"docs":{},"他":{"docs":{},"情":{"docs":{},"况":{"docs":{},"(":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"、":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"、":{"docs":{},"s":{"docs":{},"t":{"docs":{},"y":{"docs":{},"l":{"docs":{},"e":{"docs":{},"、":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"、":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},"由":{"docs":{},"你":{"docs":{},"决":{"docs":{},"定":{"docs":{},",":{"docs":{},"要":{"docs":{},"不":{"docs":{},"要":{"docs":{},"放":{"docs":{},"入":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"优":{"docs":{},"缺":{"docs":{},"点":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}},"先":{"docs":{},"级":{"docs":{},"最":{"docs":{},"低":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}},"高":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}},"伙":{"docs":{},"伴":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"便":{"docs":{},"于":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},",":{"docs":{},"将":{"docs":{},"多":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"组":{"docs":{},"成":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"都":{"docs":{},"有":{"2":{"docs":{},"的":{"docs":{},"方":{"docs":{},"幂":{"docs":{},"个":{"docs":{},"页":{"docs":{},",":{"docs":{},"方":{"docs":{},"幂":{"docs":{},"的":{"docs":{},"指":{"docs":{},"数":{"docs":{},"被":{"docs":{},"称":{"docs":{},"为":{"docs":{},"阶":{"docs":{},"。":{"docs":{},"在":{"docs":{},"操":{"docs":{},"作":{"docs":{},"内":{"docs":{},"存":{"docs":{},"时":{"docs":{},",":{"docs":{},"经":{"docs":{},"常":{"docs":{},"将":{"docs":{},"这":{"docs":{},"些":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"分":{"docs":{},"成":{"docs":{},"大":{"docs":{},"小":{"docs":{},"相":{"docs":{},"等":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"块":{"docs":{},",":{"docs":{},"分":{"docs":{},"成":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"被":{"docs":{},"称":{"docs":{},"为":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"块":{"docs":{},",":{"docs":{},"采":{"docs":{},"用":{"docs":{},"一":{"docs":{},"位":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"数":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"当":{"docs":{},"这":{"docs":{},"个":{"docs":{},"位":{"docs":{},"为":{"1":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"其":{"docs":{},"中":{"docs":{},"一":{"docs":{},"块":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},";":{"docs":{},"当":{"docs":{},"这":{"docs":{},"个":{"docs":{},"位":{"docs":{},"为":{"0":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"两":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"块":{"docs":{},"都":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"或":{"docs":{},"者":{"docs":{},"都":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"系":{"docs":{},"统":{"docs":{},"根":{"docs":{},"据":{"docs":{},"该":{"docs":{},"位":{"docs":{},"为":{"0":{"docs":{},"或":{"docs":{},"位":{"docs":{},"为":{"1":{"docs":{},"来":{"docs":{},"决":{"docs":{},"定":{"docs":{},"是":{"docs":{},"否":{"docs":{},"使":{"docs":{},"用":{"docs":{},"或":{"docs":{},"者":{"docs":{},"分":{"docs":{},"配":{"docs":{},"该":{"docs":{},"页":{"docs":{},"面":{"docs":{},"块":{"docs":{},"。":{"docs":{},"系":{"docs":{},"统":{"docs":{},"每":{"docs":{},"次":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"回":{"docs":{},"收":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"块":{"docs":{},"时":{"docs":{},"都":{"docs":{},"要":{"docs":{},"对":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"位":{"docs":{},"跟":{"1":{"docs":{},"进":{"docs":{},"行":{"docs":{},"异":{"docs":{},"或":{"docs":{},"运":{"docs":{},"算":{"docs":{},"。":{"docs":{},"所":{"docs":{},"谓":{"docs":{},"异":{"docs":{},"或":{"docs":{},"是":{"docs":{},"指":{"docs":{},"刚":{"docs":{},"开":{"docs":{},"始":{"docs":{},"时":{"docs":{},",":{"docs":{},"两":{"docs":{},"个":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"块":{"docs":{},"都":{"docs":{},"空":{"docs":{},"闲":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"位":{"docs":{},"为":{"0":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"其":{"docs":{},"中":{"docs":{},"一":{"docs":{},"块":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"异":{"docs":{},"或":{"docs":{},"后":{"docs":{},"得":{"1":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"另":{"docs":{},"一":{"docs":{},"块":{"docs":{},"也":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"异":{"docs":{},"或":{"docs":{},"后":{"docs":{},"得":{"0":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"前":{"docs":{},"面":{"docs":{},"一":{"docs":{},"块":{"docs":{},"回":{"docs":{},"收":{"docs":{},"了":{"docs":{},"异":{"docs":{},"或":{"docs":{},"后":{"docs":{},"得":{"1":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"另":{"docs":{},"一":{"docs":{},"块":{"docs":{},"也":{"docs":{},"回":{"docs":{},"收":{"docs":{},"了":{"docs":{},"异":{"docs":{},"或":{"docs":{},"后":{"docs":{},"得":{"0":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"原":{"docs":{},"理":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"用":{"docs":{},"于":{"docs":{},"对":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"加":{"docs":{},"减":{"docs":{},"运":{"docs":{},"算":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"打":{"docs":{},"断":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"一":{"docs":{},"些":{"docs":{},"原":{"docs":{},"子":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"交":{"docs":{},"换":{"docs":{},"等":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"对":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"原":{"docs":{},"子":{"docs":{},"设":{"docs":{},"置":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},",":{"docs":{},"加":{"docs":{},"法":{"docs":{},",":{"docs":{},"减":{"docs":{},"法":{"docs":{},",":{"docs":{},"数":{"docs":{},"据":{"docs":{},"交":{"docs":{},"换":{"docs":{},"等":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"另":{"docs":{},"外":{"docs":{},"拆":{"docs":{},"分":{"docs":{},"和":{"docs":{},"合":{"docs":{},"并":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"有":{"docs":{},"使":{"docs":{},"用":{"docs":{},"到":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"自":{"docs":{},"己":{"docs":{},"操":{"docs":{},"作":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"在":{"docs":{},"早":{"docs":{},"期":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"尽":{"docs":{},"管":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"内":{"docs":{},"存":{"docs":{},"算":{"docs":{},"法":{"docs":{},"在":{"docs":{},"内":{"docs":{},"存":{"docs":{},"碎":{"docs":{},"片":{"docs":{},"问":{"docs":{},"题":{"docs":{},"上":{"docs":{},"已":{"docs":{},"经":{"docs":{},"做":{"docs":{},"的":{"docs":{},"相":{"docs":{},"当":{"docs":{},"出":{"docs":{},"色":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"该":{"docs":{},"算":{"docs":{},"法":{"docs":{},"中":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"很":{"docs":{},"小":{"docs":{},"的":{"docs":{},"块":{"docs":{},"往":{"docs":{},"往":{"docs":{},"会":{"docs":{},"阻":{"docs":{},"碍":{"docs":{},"一":{"docs":{},"个":{"docs":{},"大":{"docs":{},"块":{"docs":{},"的":{"docs":{},"合":{"docs":{},"并":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},",":{"docs":{},"对":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"的":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"大":{"docs":{},"小":{"docs":{},"是":{"docs":{},"随":{"docs":{},"机":{"docs":{},"的":{"docs":{},",":{"docs":{},"一":{"docs":{},"片":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},"仅":{"docs":{},"一":{"docs":{},"个":{"docs":{},"小":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"没":{"docs":{},"有":{"docs":{},"释":{"docs":{},"放":{"docs":{},",":{"docs":{},"旁":{"docs":{},"边":{"docs":{},"两":{"docs":{},"个":{"docs":{},"大":{"docs":{},"的":{"docs":{},"就":{"docs":{},"不":{"docs":{},"能":{"docs":{},"合":{"docs":{},"并":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"以":{"docs":{},",":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"也":{"docs":{},"就":{"docs":{},"延":{"docs":{},"续":{"docs":{},"到":{"6":{"4":{"docs":{},"位":{"docs":{},"系":{"docs":{},"统":{"docs":{},"了":{"docs":{},"。":{"docs":{},"所":{"docs":{},"以":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"作":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}},"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"单":{"docs":{},"位":{"docs":{},"就":{"docs":{},"是":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"页":{"docs":{},"面":{"docs":{},"大":{"docs":{},"小":{"docs":{},"是":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"更":{"docs":{},"大":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"由":{"docs":{},"于":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"在":{"3":{"2":{"docs":{},"位":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},"可":{"docs":{},"以":{"docs":{},"很":{"docs":{},"好":{"docs":{},"地":{"docs":{},"对":{"4":{"docs":{},"g":{"docs":{},"b":{"docs":{},"内":{"docs":{},"存":{"docs":{},"进":{"docs":{},"行":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"同":{"docs":{},"样":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"在":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"次":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"间":{"docs":{},"隔":{"docs":{},"多":{"docs":{},"少":{"docs":{},"个":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"接":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"都":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"把":{"docs":{},"内":{"docs":{},"核":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"进":{"docs":{},"去":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"也":{"docs":{},"会":{"docs":{},"在":{"docs":{},"需":{"docs":{},"要":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"调":{"docs":{},"用":{"docs":{},"该":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"当":{"docs":{},"一":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"被":{"docs":{},"多":{"docs":{},"次":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"去":{"docs":{},"增":{"docs":{},"加":{"docs":{},"其":{"docs":{},"引":{"docs":{},"用":{"docs":{},"计":{"docs":{},"数":{"docs":{},",":{"docs":{},"来":{"docs":{},"避":{"docs":{},"免":{"docs":{},"被":{"docs":{},"释":{"docs":{},"放":{"docs":{},"掉":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"终":{"docs":{},"止":{"docs":{},"某":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"有":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"工":{"docs":{},"作":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"链":{"docs":{},"表":{"docs":{},"来":{"docs":{},"记":{"docs":{},"录":{"docs":{},"所":{"docs":{},"有":{"docs":{},"等":{"docs":{},"待":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},",":{"docs":{},"值":{"docs":{},"得":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"线":{"docs":{},"性":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"插":{"docs":{},"入":{"docs":{},"到":{"docs":{},"链":{"docs":{},"表":{"docs":{},"中":{"docs":{},"的":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"外":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"循":{"docs":{},"环":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"里":{"docs":{},"面":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"括":{"docs":{},"号":{"docs":{},"就":{"docs":{},"直":{"docs":{},"接":{"docs":{},"写":{"docs":{},"在":{"docs":{},"右":{"docs":{},"边":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"注":{"docs":{},"意":{"docs":{},"点":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{},"一":{"docs":{},"段":{"docs":{},"连":{"docs":{},"续":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"制":{"docs":{},"定":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"动":{"docs":{},"态":{"docs":{},"地":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"内":{"docs":{},"核":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"工":{"docs":{},"作":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}},"进":{"docs":{},"行":{"docs":{},"超":{"docs":{},"时":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"算":{"docs":{},"法":{"docs":{},"中":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"浪":{"docs":{},"费":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"算":{"docs":{},"法":{"docs":{},"是":{"docs":{},"按":{"2":{"docs":{},"的":{"docs":{},"幂":{"docs":{},"次":{"docs":{},"方":{"docs":{},"大":{"docs":{},"小":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"这":{"docs":{},"样":{"docs":{},"做":{"docs":{},"是":{"docs":{},"有":{"docs":{},"原":{"docs":{},"因":{"docs":{},"的":{"docs":{},",":{"docs":{},"即":{"docs":{},"为":{"docs":{},"了":{"docs":{},"避":{"docs":{},"免":{"docs":{},"把":{"docs":{},"大":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"拆":{"docs":{},"的":{"docs":{},"太":{"docs":{},"碎":{"docs":{},",":{"docs":{},"更":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"是":{"docs":{},"使":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},"过":{"docs":{},"程":{"docs":{},"迅":{"docs":{},"速":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"他":{"docs":{},"也":{"docs":{},"带":{"docs":{},"来":{"docs":{},"了":{"docs":{},"不":{"docs":{},"利":{"docs":{},"的":{"docs":{},"一":{"docs":{},"面":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"所":{"docs":{},"需":{"docs":{},"内":{"docs":{},"存":{"docs":{},"大":{"docs":{},"小":{"docs":{},"不":{"docs":{},"是":{"2":{"docs":{},"的":{"docs":{},"幂":{"docs":{},"次":{"docs":{},"方":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"有":{"docs":{},"部":{"docs":{},"分":{"docs":{},"页":{"docs":{},"面":{"docs":{},"浪":{"docs":{},"费":{"docs":{},"。":{"docs":{},"有":{"docs":{},"时":{"docs":{},"还":{"docs":{},"很":{"docs":{},"严":{"docs":{},"重":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"原":{"docs":{},"来":{"docs":{},"是":{"1":{"0":{"2":{"4":{"docs":{},"个":{"docs":{},"块":{"docs":{},",":{"docs":{},"申":{"docs":{},"请":{"docs":{},"了":{"1":{"6":{"docs":{},"个":{"docs":{},"块":{"docs":{},",":{"docs":{},"再":{"docs":{},"申":{"docs":{},"请":{"6":{"0":{"0":{"docs":{},"个":{"docs":{},"块":{"docs":{},"就":{"docs":{},"申":{"docs":{},"请":{"docs":{},"不":{"docs":{},"到":{"docs":{},"了":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"已":{"docs":{},"经":{"docs":{},"被":{"docs":{},"分":{"docs":{},"割":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}},"docs":{}},"docs":{}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"小":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"链":{"docs":{},"表":{"docs":{},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"先":{"docs":{},"去":{"docs":{},"链":{"docs":{},"表":{"docs":{},"上":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"现":{"docs":{},"不":{"docs":{},"进":{"docs":{},"行":{"docs":{},"讲":{"docs":{},"解":{"docs":{},",":{"docs":{},"除":{"docs":{},"非":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"来":{"docs":{},"优":{"docs":{},"化":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"才":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},"到":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"只":{"docs":{},"是":{"docs":{},"去":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"熟":{"docs":{},"悉":{"docs":{},"接":{"docs":{},"口":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}},"调":{"docs":{},"用":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":10.03125}},"是":{"docs":{},"指":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"程":{"docs":{},"序":{"docs":{},"通":{"docs":{},"过":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"陷":{"docs":{},"入":{"docs":{},"到":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},",":{"docs":{},"执":{"docs":{},"行":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"返":{"docs":{},"回":{"docs":{},"到":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"是":{"docs":{},"基":{"docs":{},"于":{"docs":{},"特":{"docs":{},"权":{"docs":{},"级":{"docs":{},"切":{"docs":{},"换":{"docs":{},"指":{"docs":{},"令":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"都":{"docs":{},"是":{"docs":{},"中":{"docs":{},"断":{"docs":{},"或":{"docs":{},"者":{"docs":{},"异":{"docs":{},"常":{"docs":{},"。":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"些":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"或":{"docs":{},"者":{"docs":{},"异":{"docs":{},"常":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"会":{"docs":{},"去":{"docs":{},"中":{"docs":{},"断":{"docs":{},"表":{"docs":{},"中":{"docs":{},"查":{"docs":{},"找":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"根":{"docs":{},"据":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"是":{"docs":{},"在":{"docs":{},"内":{"docs":{},"核":{"docs":{},"固":{"docs":{},"定":{"docs":{},"下":{"docs":{},"来":{"docs":{},"的":{"docs":{},",":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"架":{"docs":{},"构":{"docs":{},"只":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"固":{"docs":{},"定":{"docs":{},"的":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}},"较":{"docs":{},"多":{"docs":{},"的":{"docs":{},"链":{"docs":{},"表":{"docs":{},"和":{"docs":{},"位":{"docs":{},"图":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"开":{"docs":{},"销":{"docs":{},"还":{"docs":{},"是":{"docs":{},"比":{"docs":{},"较":{"docs":{},"大":{"docs":{},"的":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}},"这":{"3":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"都":{"docs":{},"是":{"docs":{},"对":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"docs":{},"样":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"内":{"docs":{},"核":{"docs":{},"也":{"docs":{},"就":{"docs":{},"占":{"docs":{},"用":{"docs":{},"了":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"该":{"docs":{},"去":{"docs":{},"管":{"docs":{},"理":{"docs":{},"哪":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"存":{"docs":{},"呢":{"docs":{},"?":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"么":{"docs":{},"做":{"docs":{},"的":{"docs":{},"目":{"docs":{},"的":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"避":{"docs":{},"免":{"docs":{},"用":{"docs":{},"户":{"docs":{},"恶":{"docs":{},"意":{"docs":{},"程":{"docs":{},"序":{"docs":{},"对":{"docs":{},"系":{"docs":{},"统":{"docs":{},"的":{"docs":{},"损":{"docs":{},"坏":{"docs":{},",":{"docs":{},"对":{"docs":{},"设":{"docs":{},"备":{"docs":{},"进":{"docs":{},"行":{"docs":{},"恶":{"docs":{},"意":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"于":{"docs":{},"是":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"核":{"docs":{},"与":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"就":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},",":{"docs":{},"它":{"docs":{},"就":{"docs":{},"是":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"是":{"docs":{},"操":{"docs":{},"作":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"里":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"里":{"docs":{},"面":{"docs":{},"分":{"docs":{},"配":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}},"释":{"docs":{},"放":{"docs":{},"某":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"指":{"docs":{},"针":{"docs":{},",":{"docs":{},"该":{"docs":{},"指":{"docs":{},"针":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"从":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"是":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}},"页":{"docs":{},"面":{"docs":{},"分":{"docs":{},"配":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{},"一":{"docs":{},"个":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}},"释":{"docs":{},"放":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"从":{"docs":{},"一":{"docs":{},"个":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}},"表":{"docs":{},"项":{"docs":{},"映":{"docs":{},"射":{"docs":{},"到":{"docs":{},"内":{"docs":{},"核":{"docs":{},",":{"docs":{},"并":{"docs":{},"设":{"docs":{},"置":{"docs":{},"权":{"docs":{},"限":{"docs":{},"为":{"docs":{},"内":{"docs":{},"核":{"docs":{},"才":{"docs":{},"能":{"docs":{},"访":{"docs":{},"问":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"能":{"docs":{},"实":{"docs":{},"现":{"docs":{},"切":{"docs":{},"换":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"去":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}},"释":{"docs":{},"放":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}},"终":{"docs":{},"止":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"线":{"docs":{},"程":{"docs":{},"指":{"docs":{},"针":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"而":{"docs":{},"获":{"docs":{},"取":{"docs":{},"操":{"docs":{},"作":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"通":{"docs":{},"过":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},"对":{"docs":{},"于":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"中":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"链":{"docs":{},"表":{"docs":{},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"就":{"docs":{},"直":{"docs":{},"接":{"docs":{},"从":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},",":{"docs":{},"不":{"docs":{},"使":{"docs":{},"用":{"docs":{},"链":{"docs":{},"表":{"docs":{},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"小":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"会":{"docs":{},"划":{"docs":{},"分":{"docs":{},"得":{"docs":{},"比":{"docs":{},"较":{"docs":{},"细":{"docs":{},",":{"docs":{},"如":{"docs":{},":":{"1":{"6":{"docs":{},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"应":{"docs":{},"用":{"docs":{},"程":{"docs":{},"序":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"者":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"已":{"docs":{},"经":{"docs":{},"做":{"docs":{},"好":{"docs":{},"了":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"你":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"如":{"docs":{},"何":{"docs":{},"去":{"docs":{},"使":{"docs":{},"用":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"是":{"docs":{},"对":{"docs":{},"它":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"会":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"会":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"象":{"docs":{},"即":{"docs":{},"可":{"docs":{},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"工":{"docs":{},"作":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"多":{"docs":{},"核":{"docs":{},"的":{"docs":{},"启":{"docs":{},"动":{"docs":{},"和":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"齐":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"象":{"docs":{},"才":{"docs":{},"重":{"docs":{},"新":{"docs":{},"从":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"中":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"有":{"docs":{},"的":{"docs":{},"话":{"docs":{},"就":{"docs":{},"直":{"docs":{},"接":{"docs":{},"从":{"docs":{},"链":{"docs":{},"表":{"docs":{},"上":{"docs":{},"面":{"docs":{},"摘":{"docs":{},"取":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"资":{"docs":{},"源":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"通":{"docs":{},"常":{"docs":{},",":{"docs":{},"内":{"docs":{},"核":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043}}}}}}},"都":{"docs":{},"是":{"docs":{},"在":{"docs":{},"启":{"docs":{},"动":{"docs":{},"后":{"docs":{},"尽":{"docs":{},"快":{"docs":{},"地":{"docs":{},"实":{"docs":{},"现":{"docs":{},"串":{"docs":{},"口":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"能":{"docs":{},"够":{"docs":{},"知":{"docs":{},"道":{"docs":{},"自":{"docs":{},"己":{"docs":{},"跑":{"docs":{},"到":{"docs":{},"什":{"docs":{},"么":{"docs":{},"地":{"docs":{},"方":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"过":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{},"和":{"docs":{},"集":{"docs":{},"成":{"docs":{},"测":{"docs":{},"试":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}},"对":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}},"释":{"docs":{},"放":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"也":{"docs":{},"是":{"docs":{},"先":{"docs":{},"释":{"docs":{},"放":{"docs":{},"到":{"docs":{},"链":{"docs":{},"表":{"docs":{},"上":{"docs":{},"面":{"docs":{},",":{"docs":{},"当":{"docs":{},"链":{"docs":{},"表":{"docs":{},"超":{"docs":{},"出":{"docs":{},"了":{"docs":{},"最":{"docs":{},"大":{"docs":{},"链":{"docs":{},"表":{"docs":{},"长":{"docs":{},"度":{"docs":{},"阈":{"docs":{},"值":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"释":{"docs":{},"放":{"docs":{},"到":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"t":{"docs":{},"l":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"除":{"docs":{},"此":{"docs":{},"之":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"获":{"docs":{},"取":{"docs":{},"某":{"docs":{},"个":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"大":{"docs":{},"小":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"取":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"当":{"docs":{},"前":{"docs":{},"中":{"docs":{},"断":{"docs":{},"状":{"docs":{},"态":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"最":{"docs":{},"近":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"来":{"docs":{},"记":{"docs":{},"录":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"即":{"docs":{},"将":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"它":{"docs":{},"来":{"docs":{},"检":{"docs":{},"测":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"去":{"docs":{},"检":{"docs":{},"测":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"链":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"是":{"docs":{},"对":{"docs":{},"某":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"使":{"docs":{},"能":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"值":{"docs":{},"得":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"还":{"docs":{},"会":{"docs":{},"去":{"docs":{},"对":{"docs":{},"内":{"docs":{},"存":{"docs":{},"进":{"docs":{},"行":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"映":{"docs":{},"射":{"docs":{},"后":{"docs":{},",":{"docs":{},"进":{"docs":{},"程":{"docs":{},"才":{"docs":{},"能":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"执":{"docs":{},"行":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"期":{"docs":{},"间":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"打":{"docs":{},"开":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"在":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},"出":{"docs":{},"现":{"docs":{},"死":{"docs":{},"循":{"docs":{},"环":{"docs":{},",":{"docs":{},"导":{"docs":{},"致":{"docs":{},"内":{"docs":{},"核":{"docs":{},"卡":{"docs":{},"死":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"就":{"docs":{},"能":{"docs":{},"获":{"docs":{},"取":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"内":{"docs":{},"核":{"docs":{},"服":{"docs":{},"务":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"以":{"docs":{},"函":{"docs":{},"数":{"docs":{},"指":{"docs":{},"针":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"执":{"docs":{},"行":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"范":{"docs":{},"围":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"条":{"docs":{},"件":{"docs":{},"变":{"docs":{},"量":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"目":{"docs":{},"录":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"通":{"docs":{},"过":{"docs":{},"映":{"docs":{},"射":{"docs":{},"和":{"docs":{},"解":{"docs":{},"除":{"docs":{},"映":{"docs":{},"射":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"模":{"docs":{},"式":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"指":{"docs":{},"定":{"docs":{},"了":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"需":{"docs":{},"要":{"docs":{},"映":{"docs":{},"射":{"docs":{},"到":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"把":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"映":{"docs":{},"射":{"docs":{},"到":{"docs":{},"该":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"未":{"docs":{},"来":{"docs":{},"做":{"docs":{},"共":{"docs":{},"享":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"用":{"docs":{},"到":{"docs":{},")":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"就":{"docs":{},"行":{"docs":{},"了":{"docs":{},"。":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"令":{"docs":{},"去":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"内":{"docs":{},"存":{"docs":{},"指":{"docs":{},"令":{"docs":{},"屏":{"docs":{},"障":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"获":{"docs":{},"取":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"集":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"映":{"docs":{},"射":{"docs":{},"某":{"docs":{},"段":{"docs":{},"空":{"docs":{},"间":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"先":{"docs":{},"检":{"docs":{},"测":{"docs":{},"地":{"docs":{},"址":{"docs":{},"是":{"docs":{},"否":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"已":{"docs":{},"经":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},",":{"docs":{},"就":{"docs":{},"不":{"docs":{},"能":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"块":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"没":{"docs":{},"有":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"中":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}},"表":{"docs":{},",":{"docs":{},"切":{"docs":{},"换":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"硬":{"docs":{},"件":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"会":{"docs":{},"指":{"docs":{},"定":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"就":{"docs":{},"不":{"docs":{},"用":{"docs":{},"自":{"docs":{},"动":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"格":{"docs":{},"式":{"docs":{},"的":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"映":{"docs":{},"射":{"docs":{},"一":{"docs":{},"段":{"docs":{},"内":{"docs":{},"存":{"docs":{},"来":{"docs":{},"储":{"docs":{},"存":{"docs":{},"代":{"docs":{},"码":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"用":{"docs":{},"到":{"docs":{},"映":{"docs":{},"射":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"不":{"docs":{},"影":{"docs":{},"响":{"docs":{},"代":{"docs":{},"码":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"变":{"docs":{},"动":{"docs":{},")":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}},"解":{"docs":{},"除":{"docs":{},"地":{"docs":{},"址":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"制":{"docs":{},"定":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"内":{"docs":{},"存":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"在":{"docs":{},"已":{"docs":{},"经":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"空":{"docs":{},"间":{"docs":{},"中":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"v":{"docs":{},"m":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"其":{"docs":{},"解":{"docs":{},"除":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"并":{"docs":{},"释":{"docs":{},"放":{"docs":{},"其":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"解":{"docs":{},"除":{"docs":{},"后":{"docs":{},"就":{"docs":{},"不":{"docs":{},"能":{"docs":{},"访":{"docs":{},"问":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"先":{"docs":{},"判":{"docs":{},"断":{"docs":{},"该":{"docs":{},"地":{"docs":{},"址":{"docs":{},"是":{"docs":{},"否":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"已":{"docs":{},"经":{"docs":{},"映":{"docs":{},"射":{"docs":{},"才":{"docs":{},"能":{"docs":{},"解":{"docs":{},"除":{"docs":{},"。":{"docs":{},"会":{"docs":{},"先":{"docs":{},"解":{"docs":{},"除":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"把":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}},"压":{"docs":{},"到":{"docs":{},"工":{"docs":{},"具":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"面":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}},"路":{"docs":{},"径":{"docs":{},":":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"任":{"docs":{},"务":{"docs":{},"数":{"docs":{},"量":{"docs":{},"众":{"docs":{},"多":{"docs":{},",":{"docs":{},"如":{"docs":{},"何":{"docs":{},"管":{"docs":{},"理":{"docs":{},"它":{"docs":{},"们":{"docs":{},",":{"docs":{},"是":{"docs":{},"要":{"docs":{},"做":{"docs":{},"到":{"docs":{},"公":{"docs":{},"平":{"docs":{},"运":{"docs":{},"行":{"docs":{},"还":{"docs":{},"是":{"docs":{},"谁":{"docs":{},"先":{"docs":{},"谁":{"docs":{},"后":{"docs":{},",":{"docs":{},"这":{"docs":{},"和":{"docs":{},"应":{"docs":{},"用":{"docs":{},"场":{"docs":{},"景":{"docs":{},"密":{"docs":{},"切":{"docs":{},"相":{"docs":{},"关":{"docs":{},"。":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},"速":{"docs":{},"度":{"docs":{},"非":{"docs":{},"常":{"docs":{},"快":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"在":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}},"切":{"docs":{},"换":{"docs":{},"了":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}},"中":{"docs":{},"断":{"docs":{},"数":{"docs":{},"量":{"docs":{},"会":{"docs":{},"比":{"docs":{},"较":{"docs":{},"多":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"表":{"docs":{},"来":{"docs":{},"注":{"docs":{},"册":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"或":{"docs":{},"者":{"docs":{},"多":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"来":{"docs":{},"记":{"docs":{},"录":{"docs":{},"该":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"产":{"docs":{},"生":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"去":{"docs":{},"查":{"docs":{},"表":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"号":{"docs":{},"去":{"docs":{},"找":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"简":{"docs":{},"单":{"docs":{},"来":{"docs":{},"说":{"docs":{},"就":{"docs":{},"是":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"回":{"docs":{},"调":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"的":{"docs":{},",":{"docs":{},"有":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"而":{"docs":{},"有":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"后":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"就":{"docs":{},"有":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"队":{"docs":{},"列":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"是":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"。":{"docs":{},"至":{"docs":{},"于":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"入":{"docs":{},"哪":{"docs":{},"种":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"想":{"docs":{},"实":{"docs":{},"现":{"1":{"docs":{},"秒":{"docs":{},"钟":{"docs":{},"产":{"docs":{},"生":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"docs":{}}}}}}}},"而":{"docs":{},"在":{"docs":{},"桌":{"docs":{},"面":{"docs":{},"和":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"领":{"docs":{},"域":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"任":{"docs":{},"务":{"docs":{},"的":{"docs":{},"公":{"docs":{},"平":{"docs":{},"性":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"比":{"docs":{},"较":{"docs":{},"低":{"docs":{},",":{"docs":{},"也":{"docs":{},"要":{"docs":{},"能":{"docs":{},"够":{"docs":{},"得":{"docs":{},"到":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"调":{"docs":{},"度":{"docs":{},"属":{"docs":{},"于":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}},"是":{"docs":{},"处":{"docs":{},"理":{"docs":{},"中":{"docs":{},"断":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"直":{"docs":{},"接":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"等":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"了":{"docs":{},"该":{"docs":{},"中":{"docs":{},"断":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"再":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},"中":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}},"[":{"0":{"docs":{},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"7":{"docs":{},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"x":{"docs":{},"]":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.14285714285714285},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.20588235294117646},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.1092436974789916}}}}},"{":{"0":{"docs":{},"x":{"1":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},"docs":{}},"4":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"docs":{}}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.026017624842635333},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.022058823529411766},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.07727272727272727}}},"}":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.02308015107007973},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.014705882352941176},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.06363636363636363}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.002517834662190516},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.013636363636363636}}}},"产":{"docs":{},"生":{"docs":{},"时":{"docs":{},"钟":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"去":{"docs":{},"减":{"docs":{},"少":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"片":{"docs":{},",":{"docs":{},"时":{"docs":{},"间":{"docs":{},"片":{"docs":{},"为":{"0":{"docs":{},"后":{"docs":{},",":{"docs":{},"再":{"docs":{},"去":{"docs":{},"切":{"docs":{},"换":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"这":{"docs":{},"是":{"docs":{},"属":{"docs":{},"于":{"docs":{},"线":{"docs":{},"程":{"docs":{},"被":{"docs":{},"动":{"docs":{},"切":{"docs":{},"换":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"入":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"此":{"docs":{},"时":{"docs":{},"只":{"docs":{},"是":{"docs":{},"创":{"docs":{},"建":{"docs":{},"了":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"还":{"docs":{},"没":{"docs":{},"有":{"docs":{},"启":{"docs":{},"动":{"docs":{},"线":{"docs":{},"程":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.02849740932642487}},"即":{"docs":{},"可":{"docs":{},"退":{"docs":{},"出":{"docs":{},"当":{"docs":{},"前":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}},",":{"docs":{},"相":{"docs":{},"反":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"则":{"docs":{},"是":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"来":{"docs":{},"打":{"docs":{},"印":{"docs":{},"消":{"docs":{},"息":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"采":{"docs":{},"用":{"docs":{},"大":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},"命":{"docs":{},"名":{"docs":{},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"即":{"docs":{},"每":{"docs":{},"个":{"docs":{},"单":{"docs":{},"词":{"docs":{},"的":{"docs":{},"首":{"docs":{},"字":{"docs":{},"母":{"docs":{},"都":{"docs":{},"大":{"docs":{},"写":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"单":{"docs":{},"词":{"docs":{},"是":{"docs":{},"用":{"docs":{},"的":{"docs":{},"缩":{"docs":{},"写":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"单":{"docs":{},"词":{"docs":{},"之":{"docs":{},"间":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"\"":{"docs":{},"_":{"docs":{},"\"":{"docs":{},"隔":{"docs":{},"开":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"同":{"docs":{},"时":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"你":{"docs":{},"一":{"docs":{},"边":{"docs":{},"听":{"docs":{},"歌":{"docs":{},",":{"docs":{},"一":{"docs":{},"边":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"其":{"docs":{},"实":{"docs":{},"就":{"docs":{},"是":{"docs":{},"音":{"docs":{},"乐":{"docs":{},"播":{"docs":{},"放":{"docs":{},"器":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"辑":{"docs":{},"器":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"任":{"docs":{},"务":{"docs":{},"在":{"docs":{},"快":{"docs":{},"速":{"docs":{},"切":{"docs":{},"换":{"docs":{},"而":{"docs":{},"形":{"docs":{},"成":{"docs":{},"的":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"会":{"docs":{},"发":{"docs":{},"起":{"docs":{},"一":{"docs":{},"次":{"docs":{},"切":{"docs":{},"换":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},",":{"docs":{},"在":{"docs":{},"人":{"docs":{},"看":{"docs":{},"来":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"多":{"docs":{},"个":{"docs":{},"任":{"docs":{},"务":{"docs":{},"在":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"他":{"docs":{},"们":{"docs":{},"全":{"docs":{},"部":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"超":{"docs":{},"时":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"更":{"docs":{},"新":{"docs":{},"最":{"docs":{},"近":{"docs":{},"超":{"docs":{},"时":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"启":{"docs":{},"动":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"开":{"docs":{},"始":{"docs":{},"运":{"docs":{},"行":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}},"让":{"docs":{},"出":{"docs":{},"执":{"docs":{},"行":{"docs":{},"权":{"docs":{},"。":{"docs":{},"值":{"docs":{},"得":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"本":{"docs":{},"线":{"docs":{},"程":{"docs":{},"不":{"docs":{},"会":{"docs":{},"阻":{"docs":{},"塞":{"docs":{},",":{"docs":{},"会":{"docs":{},"在":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"时":{"docs":{},"机":{"docs":{},"再":{"docs":{},"次":{"docs":{},"被":{"docs":{},"调":{"docs":{},"度":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"升":{"docs":{},"级":{"docs":{},"为":{"docs":{},"进":{"docs":{},"程":{"docs":{},"。":{"docs":{},"除":{"docs":{},"此":{"docs":{},"之":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"会":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"其":{"docs":{},"它":{"docs":{},"进":{"docs":{},"程":{"docs":{},"独":{"docs":{},"有":{"docs":{},"的":{"docs":{},"资":{"docs":{},"源":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"了":{"docs":{},"串":{"docs":{},"口":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"接":{"docs":{},"受":{"docs":{},"输":{"docs":{},"入":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"属":{"docs":{},"于":{"docs":{},"分":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}},"实":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"使":{"docs":{},"用":{"docs":{},"宏":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"数":{"docs":{},"字":{"docs":{},"。":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"宏":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"前":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}},"的":{"docs":{},"进":{"docs":{},"程":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"线":{"docs":{},"程":{"docs":{},"需":{"docs":{},"要":{"docs":{},"休":{"docs":{},"眠":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"休":{"docs":{},"眠":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"启":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"销":{"docs":{},"某":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"中":{"docs":{},"断":{"docs":{},"号":{"docs":{},"以":{"docs":{},"及":{"docs":{},"注":{"docs":{},"册":{"docs":{},"时":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"解":{"docs":{},"除":{"docs":{},"了":{"docs":{},"中":{"docs":{},"断":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"停":{"docs":{},"止":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}},"时":{"docs":{},"钟":{"docs":{},"中":{"docs":{},"断":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"改":{"docs":{},"变":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"与":{"docs":{},"此":{"docs":{},"同":{"docs":{},"时":{"docs":{},"也":{"docs":{},"会":{"docs":{},"去":{"docs":{},"检":{"docs":{},"测":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"超":{"docs":{},"时":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"超":{"docs":{},"时":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{},"去":{"docs":{},"处":{"docs":{},"理":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"超":{"docs":{},"时":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"到":{"docs":{},"达":{"docs":{},"了":{"docs":{},"最":{"docs":{},"近":{"docs":{},"超":{"docs":{},"时":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"值":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"去":{"docs":{},"检":{"docs":{},"测":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"链":{"docs":{},"表":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"同":{"docs":{},"样":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"超":{"docs":{},"时":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"于":{"docs":{},"是":{"docs":{},"就":{"docs":{},"设":{"docs":{},"置":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"产":{"docs":{},"生":{"docs":{},"时":{"docs":{},"的":{"docs":{},"超":{"docs":{},"时":{"docs":{},"值":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"宏":{"docs":{},"条":{"docs":{},"件":{"docs":{},"#":{"docs":{},"i":{"docs":{},"f":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"过":{"docs":{},"多":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"一":{"docs":{},"行":{"docs":{},"写":{"docs":{},"不":{"docs":{},"下":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"每":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"写":{"docs":{},"成":{"docs":{},"一":{"docs":{},"行":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"宏":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"多":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"则":{"docs":{},"使":{"docs":{},"用":{"docs":{},"空":{"docs":{},"格":{"docs":{},"+":{"docs":{},"\"":{"docs":{},"\\":{"docs":{},"\"":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"进":{"docs":{},"行":{"docs":{},"换":{"docs":{},"行":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"添":{"docs":{},"加":{"docs":{},"代":{"docs":{},"码":{"docs":{},"要":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"中":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"统":{"docs":{},"一":{"docs":{},"下":{"docs":{},"规":{"docs":{},"范":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"不":{"docs":{},"会":{"docs":{},"显":{"docs":{},"得":{"docs":{},"整":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"乱":{"docs":{},"糟":{"docs":{},"糟":{"docs":{},"的":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"花":{"docs":{},"点":{"docs":{},"时":{"docs":{},"间":{"docs":{},"来":{"docs":{},"学":{"docs":{},"习":{"docs":{},"和":{"docs":{},"改":{"docs":{},"变":{"docs":{},"的":{"docs":{},"。":{"docs":{},"每":{"docs":{},"次":{"docs":{},"提":{"docs":{},"交":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"短":{"docs":{},"小":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"范":{"docs":{},"围":{"docs":{},"不":{"docs":{},"要":{"docs":{},"太":{"docs":{},"广":{"docs":{},",":{"docs":{},"专":{"docs":{},"注":{"docs":{},"于":{"docs":{},"某":{"docs":{},"个":{"docs":{},"领":{"docs":{},"域":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"你":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"某":{"docs":{},"个":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"设":{"docs":{},"置":{"docs":{},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"选":{"docs":{},"择":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"很":{"docs":{},"多":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"获":{"docs":{},"取":{"docs":{},"当":{"docs":{},"前":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}},"拿":{"docs":{},"到":{"1":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"内":{"docs":{},"核":{"docs":{},"跑":{"docs":{},"飞":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}},"docs":{}}},"最":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"内":{"docs":{},"核":{"docs":{},"是":{"docs":{},"没":{"docs":{},"有":{"docs":{},"线":{"docs":{},"程":{"docs":{},"概":{"docs":{},"念":{"docs":{},"的":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"流":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"不":{"docs":{},"开":{"docs":{},"启":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"后":{"docs":{},",":{"docs":{},"当":{"docs":{},"有":{"docs":{},"中":{"docs":{},"断":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"去":{"docs":{},"激":{"docs":{},"活":{"docs":{},"中":{"docs":{},"断":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"想":{"docs":{},"要":{"docs":{},"保":{"docs":{},"存":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"到":{"docs":{},"选":{"docs":{},"中":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"执":{"docs":{},"行":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"操":{"docs":{},"作":{"docs":{},"才":{"docs":{},"行":{"docs":{},"。":{"docs":{},"操":{"docs":{},"作":{"docs":{},"完":{"docs":{},"后":{"docs":{},",":{"docs":{},"你":{"docs":{},"所":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"就":{"docs":{},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},",":{"docs":{},"当":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"其":{"docs":{},"它":{"docs":{},"平":{"docs":{},"台":{"docs":{},"后":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"依":{"docs":{},"然":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"重":{"docs":{},"复":{"docs":{},"第":{"docs":{},"一":{"docs":{},"步":{"docs":{},",":{"docs":{},"更":{"docs":{},"新":{"docs":{},"一":{"docs":{},"下":{"docs":{},"配":{"docs":{},"置":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"会":{"docs":{},"插":{"docs":{},"入":{"docs":{},"到":{"docs":{},"链":{"docs":{},"表":{"docs":{},"头":{"docs":{},",":{"docs":{},"超":{"docs":{},"时":{"docs":{},"时":{"docs":{},"间":{"docs":{},"比":{"docs":{},"较":{"docs":{},"久":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"会":{"docs":{},"被":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"链":{"docs":{},"表":{"docs":{},"的":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"小":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"精":{"docs":{},"简":{"docs":{},"框":{"docs":{},"架":{"docs":{},":":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"就":{"docs":{},"进":{"docs":{},"入":{"docs":{},"线":{"docs":{},"程":{"docs":{},"环":{"docs":{},"境":{"docs":{},",":{"docs":{},"开":{"docs":{},"启":{"docs":{},"线":{"docs":{},"程":{"docs":{},"调":{"docs":{},"度":{"docs":{},"生":{"docs":{},"涯":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"段":{"docs":{},"时":{"docs":{},"间":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"其":{"docs":{},"它":{"docs":{},"线":{"docs":{},"程":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"切":{"docs":{},"换":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"主":{"docs":{},"动":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"被":{"docs":{},"动":{"docs":{},"的":{"docs":{},"。":{"docs":{},"线":{"docs":{},"程":{"docs":{},"在":{"docs":{},"阻":{"docs":{},"塞":{"docs":{},"(":{"docs":{},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{},"和":{"docs":{},"让":{"docs":{},"出":{"docs":{},"(":{"docs":{},"y":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},")":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"是":{"docs":{},"属":{"docs":{},"于":{"docs":{},"线":{"docs":{},"程":{"docs":{},"主":{"docs":{},"动":{"docs":{},"发":{"docs":{},"起":{"docs":{},"切":{"docs":{},"换":{"docs":{},"。":{"docs":{},"在":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"来":{"docs":{},"记":{"docs":{},"录":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"线":{"docs":{},"程":{"docs":{},"链":{"docs":{},"表":{"docs":{},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},"状":{"docs":{},"态":{"docs":{},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},"栈":{"docs":{},"等":{"docs":{},"基":{"docs":{},"础":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"次":{"docs":{},"提":{"docs":{},"交":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"指":{"docs":{},"针":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},"的":{"docs":{},"值":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}},"文":{"docs":{},"件":{"docs":{},"偏":{"docs":{},"移":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"系":{"docs":{},"统":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"线":{"docs":{},"程":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"进":{"docs":{},"程":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"还":{"docs":{},"有":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}},"一":{"docs":{},"个":{"docs":{},"很":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"就":{"docs":{},"是":{"docs":{},"对":{"docs":{},"状":{"docs":{},"态":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"值":{"docs":{},"得":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"的":{"docs":{},"索":{"docs":{},"引":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"能":{"docs":{},"自":{"docs":{},"动":{"docs":{},"处":{"docs":{},"理":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}},"销":{"docs":{},"毁":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"是":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"线":{"docs":{},"程":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"不":{"docs":{},"代":{"docs":{},"表":{"docs":{},"把":{"docs":{},"线":{"docs":{},"程":{"docs":{},"从":{"docs":{},"运":{"docs":{},"行":{"docs":{},"队":{"docs":{},"列":{"docs":{},"中":{"docs":{},"摘":{"docs":{},"除":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"释":{"docs":{},"放":{"docs":{},"线":{"docs":{},"程":{"docs":{},"占":{"docs":{},"用":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}},"以":{"docs":{},"及":{"docs":{},"进":{"docs":{},"程":{"docs":{},"标":{"docs":{},"志":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}},"中":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"后":{"docs":{},"的":{"docs":{},"应":{"docs":{},"答":{"docs":{},"处":{"docs":{},"理":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"将":{"docs":{},"这":{"docs":{},"些":{"docs":{},"数":{"docs":{},"据":{"docs":{},"构":{"docs":{},"建":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"显":{"docs":{},"然":{"docs":{},"超":{"docs":{},"过":{"docs":{},"了":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"进":{"docs":{},"程":{"docs":{},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"加":{"docs":{},"载":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"路":{"docs":{},"径":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}},"那":{"docs":{},"么":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"就":{"docs":{},"只":{"docs":{},"能":{"docs":{},"是":{"docs":{},"在":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}},"就":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"线":{"docs":{},"程":{"docs":{},"里":{"docs":{},"面":{"docs":{},"去":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"及":{"docs":{},"时":{"docs":{},"调":{"docs":{},"度":{"docs":{},"的":{"docs":{},"精":{"docs":{},"度":{"docs":{},"低":{"docs":{},"一":{"docs":{},"点":{"docs":{},"也":{"docs":{},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"影":{"docs":{},"响":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"样":{"docs":{},"才":{"docs":{},"能":{"docs":{},"保":{"docs":{},"证":{"docs":{},"时":{"docs":{},"间":{"docs":{},"的":{"docs":{},"精":{"docs":{},"度":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"超":{"docs":{},"时":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}},"产":{"docs":{},"生":{"docs":{},"中":{"docs":{},"断":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"去":{"docs":{},"该":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"向":{"docs":{},"量":{"docs":{},"表":{"docs":{},"地":{"docs":{},"址":{"docs":{},"找":{"docs":{},"中":{"docs":{},"断":{"docs":{},"号":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"来":{"docs":{},"判":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},"因":{"docs":{},"为":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"并":{"docs":{},"复":{"docs":{},"制":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"地":{"docs":{},"址":{"docs":{},"都":{"docs":{},"变":{"docs":{},"成":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"自":{"docs":{},"从":{"docs":{},"进":{"docs":{},"入":{"2":{"1":{"docs":{},"世":{"docs":{},"纪":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"就":{"docs":{},"有":{"docs":{},"了":{"docs":{},"瓶":{"docs":{},"颈":{"docs":{},",":{"docs":{},"不":{"docs":{},"再":{"docs":{},"迅":{"docs":{},"猛":{"docs":{},"增":{"docs":{},"长":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"就":{"docs":{},"有":{"docs":{},"人":{"docs":{},"提":{"docs":{},"出":{"docs":{},"多":{"docs":{},"个":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"一":{"docs":{},"起":{"docs":{},"工":{"docs":{},"作":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"来":{"docs":{},"弥":{"docs":{},"补":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"性":{"docs":{},"能":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"再":{"docs":{},"去":{"docs":{},"对":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"进":{"docs":{},"行":{"docs":{},"存":{"docs":{},"取":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"是":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"进":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"上":{"docs":{},"加":{"docs":{},"载":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"去":{"docs":{},"执":{"docs":{},"行":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"中":{"docs":{},"断":{"docs":{},"工":{"docs":{},"作":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"入":{"docs":{},"口":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"对":{"docs":{},"象":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"工":{"docs":{},"作":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"其":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},"中":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"队":{"docs":{},"列":{"docs":{},"和":{"docs":{},"工":{"docs":{},"作":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}},"需":{"docs":{},"要":{"docs":{},"指":{"docs":{},"定":{"docs":{},"需":{"docs":{},"要":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"条":{"docs":{},"件":{"docs":{},"变":{"docs":{},"量":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"目":{"docs":{},"录":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"到":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}},"前":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"都":{"docs":{},"是":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}},"面":{"docs":{},"有":{"docs":{},"讲":{"docs":{},"到":{"docs":{},"关":{"docs":{},"于":{"docs":{},"全":{"docs":{},"局":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"打":{"docs":{},"开":{"docs":{},"和":{"docs":{},"关":{"docs":{},"闭":{"docs":{},",":{"docs":{},"全":{"docs":{},"局":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"打":{"docs":{},"开":{"docs":{},"是":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"是":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"内":{"docs":{},"存":{"docs":{},"只":{"docs":{},"有":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"两":{"docs":{},"侧":{"docs":{},"采":{"docs":{},"用":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}},"后":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"会":{"docs":{},"发":{"docs":{},"生":{"docs":{},"变":{"docs":{},"化":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"能":{"docs":{},"够":{"docs":{},"保":{"docs":{},"证":{"docs":{},"访":{"docs":{},"问":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"是":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},",":{"docs":{},"在":{"docs":{},"映":{"docs":{},"射":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"是":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"了":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"会":{"docs":{},"通":{"docs":{},"过":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"行":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"下":{"docs":{},"一":{"docs":{},"行":{"docs":{},"都":{"docs":{},"采":{"docs":{},"用":{"docs":{},"缩":{"docs":{},"进":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"都":{"docs":{},"是":{"docs":{},"新":{"docs":{},"的":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"究":{"docs":{},"竟":{"docs":{},"是":{"docs":{},"何":{"docs":{},"物":{"docs":{},"?":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"那":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}},"那":{"docs":{},"么":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}},"(":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"单":{"docs":{},"元":{"docs":{},")":{"docs":{},"为":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"奠":{"docs":{},"定":{"docs":{},"基":{"docs":{},"础":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"般":{"docs":{},"在":{"1":{"0":{"0":{"docs":{},"~":{"1":{"0":{"0":{"0":{"docs":{},")":{"docs":{},"次":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"效":{"docs":{},"果":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}},"以":{"docs":{},"上":{"docs":{},"摘":{"docs":{},"自":{"docs":{},"百":{"docs":{},"度":{"docs":{},"百":{"docs":{},"科":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"执":{"docs":{},"行":{"docs":{},"内":{"docs":{},"核":{"docs":{},"提":{"docs":{},"供":{"docs":{},"好":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{},"在":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"对":{"docs":{},"象":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"编":{"docs":{},"译":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"由":{"docs":{},"于":{"docs":{},"有":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"只":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},",":{"docs":{},"于":{"docs":{},"是":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"保":{"docs":{},"存":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},",":{"docs":{},"即":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"了":{"docs":{},"中":{"docs":{},"断":{"docs":{},"后":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"能":{"docs":{},"产":{"docs":{},"生":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"解":{"docs":{},"除":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"屏":{"docs":{},"蔽":{"docs":{},"(":{"docs":{},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},")":{"docs":{},",":{"docs":{},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"打":{"docs":{},"开":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"除":{"docs":{},"此":{"docs":{},"之":{"docs":{},"外":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"希":{"docs":{},"望":{"docs":{},"产":{"docs":{},"生":{"docs":{},"该":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"屏":{"docs":{},"蔽":{"docs":{},"某":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},")":{"docs":{},",":{"docs":{},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},",":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"/":{"docs":{},"\"":{"docs":{},"注":{"docs":{},"释":{"docs":{},"只":{"docs":{},"能":{"docs":{},"放":{"docs":{},"到":{"docs":{},"右":{"docs":{},"边":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}},"等":{"docs":{},"机":{"docs":{},"制":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}},"于":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"内":{"docs":{},"核":{"docs":{},"基":{"docs":{},"础":{"docs":{},"功":{"docs":{},"能":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"实":{"docs":{},"现":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"待":{"docs":{},"线":{"docs":{},"程":{"docs":{},"退":{"docs":{},"出":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"进":{"docs":{},"程":{"docs":{},"退":{"docs":{},"出":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"册":{"docs":{},"某":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"中":{"docs":{},"断":{"docs":{},"号":{"docs":{},",":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"中":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"设":{"docs":{},"置":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"设":{"docs":{},"置":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"够":{"docs":{},"访":{"docs":{},"问":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"返":{"docs":{},"回":{"docs":{},"后":{"docs":{},"开":{"docs":{},"启":{"docs":{},"中":{"docs":{},"断":{"docs":{},"以":{"docs":{},"及":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"=":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.039026437263953},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.031818181818181815}},"=":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0029374737725556023}}}},"工":{"docs":{},"作":{"docs":{},"队":{"docs":{},"列":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"如":{"docs":{},"下":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}},"具":{"docs":{},"链":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":10.027027027027026}}}}},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":10}}}}}},"然":{"docs":{},"后":{"docs":{},"激":{"docs":{},"活":{"docs":{},"中":{"docs":{},"断":{"docs":{},"队":{"docs":{},"列":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"本":{"docs":{},"次":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"等":{"docs":{},"到":{"docs":{},"没":{"docs":{},"有":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"再":{"docs":{},"去":{"docs":{},"从":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},"中":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"个":{"docs":{},"工":{"docs":{},"作":{"docs":{},"来":{"docs":{},"处":{"docs":{},"理":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"下":{"docs":{},"半":{"docs":{},"部":{"docs":{},"分":{"docs":{},"处":{"docs":{},"理":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"再":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":10.010752688172044}},"是":{"docs":{},"基":{"docs":{},"于":{"docs":{},"系":{"docs":{},"统":{"docs":{},"时":{"docs":{},"钟":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},",":{"docs":{},"精":{"docs":{},"度":{"docs":{},"比":{"docs":{},"较":{"docs":{},"低":{"docs":{},"(":{"1":{"docs":{},"m":{"docs":{},"s":{"docs":{},"~":{"1":{"0":{"docs":{},"m":{"docs":{},"s":{"docs":{},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"于":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"休":{"docs":{},"眠":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"于":{"docs":{},"休":{"docs":{},"眠":{"docs":{},"精":{"docs":{},"度":{"docs":{},"不":{"docs":{},"高":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}},"时":{"docs":{},"钟":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"支":{"docs":{},"持":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"并":{"docs":{},"传":{"docs":{},"入":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}},"标":{"docs":{},"志":{"docs":{},"有":{"docs":{},"多":{"docs":{},"重":{"docs":{},",":{"docs":{},"表":{"docs":{},"明":{"docs":{},"不":{"docs":{},"同":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"只":{"docs":{},"超":{"docs":{},"时":{"docs":{},"一":{"docs":{},"次":{"docs":{},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"周":{"docs":{},"期":{"docs":{},"性":{"docs":{},"地":{"docs":{},"按":{"docs":{},"照":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}},"!":{"docs":{},"=":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"\"":{"docs":{},"=":{"docs":{},"r":{"docs":{},"\"":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"\"":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"\"":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"\"":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"\"":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"_":{"docs":{},"\"":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"{":{"docs":{},"\"":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"!":{"docs":{},"\"":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}},"%":{"0":{"docs":{},"\"":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"p":{"docs":{},"\"":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"x":{"docs":{},"\"":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"`":{"docs":{},"p":{"docs":{},"c":{"docs":{},"`":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"r":{"docs":{},"a":{"docs":{},"`":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}},"s":{"docs":{},"e":{"docs":{},"p":{"docs":{},"c":{"docs":{},"`":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}},"p":{"docs":{},"`":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"`":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}},"j":{"8":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.002517834662190516}},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004616030214015947},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}}},"n":{"docs":{},"是":{"docs":{},"多":{"docs":{},"线":{"docs":{},"程":{"docs":{},"编":{"docs":{},"译":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563}}}}}}}}}}},"~":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"s":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}}}}}}}}}}}}}}},"–":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}}},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"切":{"docs":{},"换":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"是":{"docs":{},"多":{"docs":{},"线":{"docs":{},"程":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"根":{"docs":{},"基":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},"分":{"docs":{},"为":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"从":{"docs":{},"当":{"docs":{},"前":{"docs":{},"线":{"docs":{},"程":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"图":{"docs":{},"为":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"状":{"docs":{},"态":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}},"6":{"4":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"与":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"相":{"docs":{},"比":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}},"串":{"docs":{},"口":{"docs":{},"可":{"docs":{},"以":{"docs":{},"配":{"docs":{},"置":{"docs":{},"为":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"来":{"docs":{},"输":{"docs":{},"出":{"docs":{},"是":{"docs":{},"非":{"docs":{},"常":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"输":{"docs":{},"入":{"docs":{},"输":{"docs":{},"出":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}},"位":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"做":{"docs":{},"置":{"docs":{},"位":{"docs":{},"和":{"docs":{},"清":{"docs":{},"理":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"。":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"的":{"docs":{},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"的":{"docs":{},"固":{"docs":{},"件":{"docs":{},",":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"_":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"平":{"docs":{},"台":{"docs":{},"选":{"docs":{},"择":{"docs":{},"了":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},",":{"docs":{},"其":{"docs":{},"格":{"docs":{},"式":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"切":{"docs":{},"换":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"一":{"docs":{},"次":{"docs":{},"异":{"docs":{},"常":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"后":{"docs":{},"就":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"异":{"docs":{},"常":{"docs":{},"地":{"docs":{},"址":{"docs":{},"处":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"它":{"docs":{},"是":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"意":{"docs":{},"思":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"线":{"docs":{},"程":{"docs":{},"返":{"docs":{},"回":{"docs":{},"后":{"docs":{},"就":{"docs":{},"去":{"docs":{},"执":{"docs":{},"行":{"docs":{},"该":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"兼":{"docs":{},"容":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"起":{"docs":{},"来":{"docs":{},"比":{"docs":{},"较":{"docs":{},"简":{"docs":{},"单":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"在":{"docs":{},"链":{"docs":{},"接":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"中":{"docs":{},"写":{"docs":{},"的":{"docs":{},"是":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"关":{"docs":{},"闭":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"目":{"docs":{},"录":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"具":{"docs":{},"体":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"线":{"docs":{},"程":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"是":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"构":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},",":{"docs":{},"当":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"该":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"就":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"环":{"docs":{},"境":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"条":{"docs":{},"件":{"docs":{},"变":{"docs":{},"量":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"号":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"唤":{"docs":{},"醒":{"docs":{},"后":{"docs":{},",":{"docs":{},"应":{"docs":{},"用":{"docs":{},"核":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"应":{"docs":{},"用":{"docs":{},"核":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}},"休":{"docs":{},"眠":{"docs":{},"等":{"docs":{},"待":{"docs":{},"条":{"docs":{},"件":{"docs":{},"的":{"docs":{},"全":{"docs":{},"部":{"docs":{},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"单":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"应":{"docs":{},"用":{"docs":{},"核":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"置":{"docs":{},"中":{"docs":{},"断":{"docs":{},"表":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"控":{"docs":{},"制":{"docs":{},"器":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"该":{"docs":{},"说":{"docs":{},"明":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"动":{"docs":{},"的":{"docs":{},"动":{"docs":{},"机":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"与":{"docs":{},"以":{"docs":{},"前":{"docs":{},"行":{"docs":{},"为":{"docs":{},"的":{"docs":{},"对":{"docs":{},"比":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}},"引":{"docs":{},"导":{"docs":{},"核":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"内":{"docs":{},"核":{"docs":{},",":{"docs":{},"在":{"docs":{},"内":{"docs":{},"核":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"启":{"docs":{},"动":{"docs":{},"应":{"docs":{},"用":{"docs":{},"核":{"docs":{},"的":{"docs":{},"阶":{"docs":{},"段":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"截":{"docs":{},"至":{"2":{"0":{"1":{"7":{"docs":{},"年":{"5":{"docs":{},"月":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"从":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"位":{"docs":{},"于":{"docs":{},"监":{"docs":{},"护":{"docs":{},"者":{"docs":{},"模":{"docs":{},"式":{"docs":{},"的":{"docs":{},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"入":{"docs":{},"口":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"移":{"docs":{},"植":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"程":{"docs":{},"序":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"的":{"docs":{},",":{"docs":{},"置":{"docs":{},"为":{"1":{"docs":{},"则":{"docs":{},"表":{"docs":{},"示":{"docs":{},"使":{"docs":{},"能":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"置":{"docs":{},"为":{"0":{"docs":{},"则":{"docs":{},"表":{"docs":{},"示":{"docs":{},"禁":{"docs":{},"用":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"唤":{"docs":{},"醒":{"docs":{},"核":{"docs":{},"心":{"docs":{},"功":{"docs":{},"能":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"交":{"docs":{},"规":{"docs":{},"则":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":10}}}}}},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"更":{"docs":{},"多":{"docs":{},"运":{"docs":{},"行":{"docs":{},"在":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"新":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"移":{"docs":{},"植":{"docs":{},",":{"docs":{},"都":{"docs":{},"是":{"docs":{},"按":{"docs":{},"照":{"docs":{},"一":{"docs":{},"套":{"docs":{},"统":{"docs":{},"一":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"去":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"贴":{"docs":{},"近":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"用":{"docs":{},"管":{"docs":{},"太":{"docs":{},"多":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"需":{"docs":{},"要":{"docs":{},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}},"新":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"用":{"docs":{},"于":{"docs":{},"固":{"docs":{},"件":{"docs":{},"程":{"docs":{},"序":{"docs":{},"代":{"docs":{},"码":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}},"模":{"docs":{},"式":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"内":{"docs":{},"核":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"设":{"docs":{},"置":{"docs":{},"超":{"docs":{},"时":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"因":{"docs":{},"为":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},"是":{"docs":{},"在":{"docs":{},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},")":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"进":{"docs":{},"入":{"docs":{},"内":{"docs":{},"核":{"docs":{},"。":{"docs":{},"内":{"docs":{},"核":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"链":{"docs":{},"接":{"docs":{},"到":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"降":{"docs":{},"低":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"度":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}},"特":{"docs":{},"权":{"docs":{},"模":{"docs":{},"式":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}},"级":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"命":{"docs":{},"名":{"docs":{},"规":{"docs":{},"则":{"docs":{},",":{"docs":{},"特":{"docs":{},"权":{"docs":{},"模":{"docs":{},"式":{"docs":{},"+":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"名":{"docs":{},"字":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"只":{"docs":{},"能":{"docs":{},"在":{"docs":{},"该":{"docs":{},"特":{"docs":{},"权":{"docs":{},"级":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"在":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"有":{"docs":{},"m":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},",":{"docs":{},"监":{"docs":{},"管":{"docs":{},"模":{"docs":{},"式":{"docs":{},"有":{"docs":{},"s":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"监":{"docs":{},"管":{"docs":{},"者":{"docs":{},"模":{"docs":{},"式":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"是":{"docs":{},"由":{"docs":{},"地":{"docs":{},"址":{"docs":{},"转":{"docs":{},"换":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"和":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}},"硬":{"docs":{},"件":{"docs":{},"回":{"docs":{},"填":{"docs":{},"根":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"时":{"docs":{},"钟":{"docs":{},"会":{"docs":{},"按":{"docs":{},"照":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"频":{"docs":{},"率":{"docs":{},"去":{"docs":{},"增":{"docs":{},"长":{"docs":{},"当":{"docs":{},"前":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"在":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"移":{"docs":{},"植":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"如":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"慢":{"docs":{},"慢":{"docs":{},"琢":{"docs":{},"磨":{"docs":{},",":{"docs":{},"长":{"docs":{},"期":{"docs":{},"积":{"docs":{},"累":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"好":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}},"动":{"docs":{},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"结":{"docs":{},"束":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},"构":{"docs":{},"体":{"docs":{},"命":{"docs":{},"名":{"docs":{},"使":{"docs":{},"用":{"docs":{},"大":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"成":{"docs":{},"员":{"docs":{},"使":{"docs":{},"用":{"docs":{},"小":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},"命":{"docs":{},"名":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"成":{"docs":{},"员":{"docs":{},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"指":{"docs":{},"针":{"docs":{},",":{"docs":{},"则":{"docs":{},"使":{"docs":{},"用":{"docs":{},"大":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"定":{"docs":{},"义":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"消":{"docs":{},"除":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"关":{"docs":{},"键":{"docs":{},"字":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"名":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"尾":{"docs":{},"不":{"docs":{},"加":{"docs":{},"句":{"docs":{},"号":{"docs":{},"(":{"docs":{},".":{"docs":{},")":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}},"至":{"docs":{},"于":{"docs":{},"在":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}},"计":{"docs":{},"时":{"docs":{},"器":{"docs":{},"时":{"docs":{},"钟":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000839278220730172}},"用":{"docs":{},"于":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"多":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},"和":{"docs":{},"内":{"docs":{},"核":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}},"记":{"docs":{},"录":{"docs":{},"了":{"docs":{},"当":{"docs":{},"前":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"核":{"docs":{},"心":{"docs":{},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"该":{"docs":{},"代":{"docs":{},"码":{"docs":{},"简":{"docs":{},"单":{"docs":{},"地":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{},"栈":{"docs":{},"就":{"docs":{},"进":{"docs":{},"入":{"docs":{},"了":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"只":{"docs":{},"是":{"docs":{},"多":{"docs":{},"了":{"docs":{},"对":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"项":{"docs":{},"目":{"2":{"0":{"1":{"0":{"docs":{},"年":{"docs":{},"始":{"docs":{},"于":{"docs":{},"加":{"docs":{},"州":{"docs":{},"大":{"docs":{},"学":{"docs":{},"伯":{"docs":{},"克":{"docs":{},"利":{"docs":{},"分":{"docs":{},"校":{"docs":{},",":{"docs":{},"但":{"docs":{},"许":{"docs":{},"多":{"docs":{},"贡":{"docs":{},"献":{"docs":{},"者":{"docs":{},"是":{"docs":{},"该":{"docs":{},"大":{"docs":{},"学":{"docs":{},"以":{"docs":{},"外":{"docs":{},"的":{"docs":{},"志":{"docs":{},"愿":{"docs":{},"者":{"docs":{},"和":{"docs":{},"行":{"docs":{},"业":{"docs":{},"工":{"docs":{},"作":{"docs":{},"者":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}},"后":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"映":{"docs":{},"射":{"docs":{},"成":{"docs":{},"索":{"docs":{},"引":{"docs":{},",":{"docs":{},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"是":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}},"包":{"docs":{},"括":{"docs":{},"两":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"和":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}},"函":{"docs":{},"数":{"docs":{},"单":{"docs":{},"元":{"docs":{},"进":{"docs":{},"行":{"docs":{},"测":{"docs":{},"试":{"docs":{},",":{"docs":{},"测":{"docs":{},"试":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"性":{"docs":{},",":{"docs":{},"健":{"docs":{},"壮":{"docs":{},"性":{"docs":{},",":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"率":{"docs":{},"。":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"预":{"docs":{},"留":{"docs":{},"一":{"docs":{},"个":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"空":{"docs":{},"间":{"docs":{},"后":{"docs":{},",":{"docs":{},"设":{"docs":{},"置":{"docs":{},"参":{"docs":{},"数":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.000419639110365086}}}}}}}}}}}}}}}}}},"]":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563}}},"z":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}}},"从":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}},"代":{"docs":{},"码":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"角":{"docs":{},"度":{"docs":{},",":{"docs":{},"建":{"docs":{},"议":{"docs":{},"每":{"docs":{},"个":{"docs":{},"大":{"docs":{},"括":{"docs":{},"号":{"docs":{},"单":{"docs":{},"独":{"docs":{},"占":{"docs":{},"用":{"docs":{},"一":{"docs":{},"行":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"跟":{"docs":{},"在":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"后":{"docs":{},"面":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"年":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}},"推":{"docs":{},"出":{"docs":{},"的":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}},"运":{"docs":{},"行":{"docs":{},"方":{"docs":{},"法":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"勘":{"docs":{},"智":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}},"双":{"docs":{},"核":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"硬":{"docs":{},"件":{"5":{"1":{"2":{"docs":{},"点":{"1":{"6":{"docs":{},"位":{"docs":{},"复":{"docs":{},"数":{"docs":{},"f":{"docs":{},"f":{"docs":{},"t":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"精":{"docs":{},"度":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"片":{"docs":{},"上":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"直":{"docs":{},"接":{"docs":{},"内":{"docs":{},"存":{"docs":{},"存":{"docs":{},"取":{"docs":{},"控":{"docs":{},"制":{"docs":{},"器":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}},"神":{"docs":{},"经":{"docs":{},"网":{"docs":{},"络":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"(":{"docs":{},"k":{"docs":{},"p":{"docs":{},"u":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}}}},"阵":{"docs":{},"列":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"音":{"docs":{},"频":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"(":{"docs":{},"a":{"docs":{},"p":{"docs":{},"u":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}},"休":{"docs":{},"眠":{"docs":{},"等":{"docs":{},"待":{"docs":{},"条":{"docs":{},"件":{"docs":{},"变":{"docs":{},"量":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"写":{"docs":{},"入":{"docs":{},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}},"参":{"docs":{},"考":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{},"套":{"docs":{},"接":{"docs":{},"字":{"docs":{},"接":{"docs":{},"口":{"docs":{},"设":{"docs":{},"计":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}},"图":{"docs":{},"形":{"docs":{},"系":{"docs":{},"统":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"填":{"docs":{},"充":{"docs":{},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"复":{"docs":{},"制":{"docs":{},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"安":{"docs":{},"全":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"尝":{"docs":{},"试":{"docs":{},"获":{"docs":{},"取":{"docs":{},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"恢":{"docs":{},"复":{"docs":{},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"打":{"docs":{},"开":{"docs":{},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"目":{"docs":{},"录":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"挂":{"docs":{},"起":{"docs":{},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"暂":{"docs":{},"不":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"等":{"docs":{},"内":{"docs":{},"核":{"docs":{},"基":{"docs":{},"本":{"docs":{},"功":{"docs":{},"能":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"再":{"docs":{},"设":{"docs":{},"计":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"枢":{"docs":{},"纽":{"docs":{},"系":{"docs":{},"统":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"检":{"docs":{},"查":{"docs":{},"文":{"docs":{},"件":{"docs":{},"结":{"docs":{},"束":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}}}},"清":{"docs":{},"空":{"docs":{},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"索":{"docs":{},"引":{"docs":{},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"终":{"docs":{},"止":{"docs":{},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"进":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"网":{"docs":{},"络":{"docs":{},"系":{"docs":{},"统":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"读":{"docs":{},"取":{"docs":{},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"目":{"docs":{},"录":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"重":{"docs":{},"置":{"docs":{},"读":{"docs":{},"取":{"docs":{},"位":{"docs":{},"置":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"\\":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}},"代":{"docs":{},"码":{"docs":{},"风":{"docs":{},"格":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":10}}}},"提":{"docs":{},"交":{"docs":{},"日":{"docs":{},"志":{"docs":{},"规":{"docs":{},"则":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"如":{"docs":{},"采":{"docs":{},"用":{"docs":{},"如":{"docs":{},"上":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}},"在":{"docs":{},"m":{"docs":{},"m":{"docs":{},",":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},",":{"docs":{},"f":{"docs":{},"s":{"docs":{},"等":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"大":{"docs":{},"括":{"docs":{},"号":{"docs":{},"单":{"docs":{},"独":{"docs":{},"占":{"docs":{},"用":{"docs":{},"一":{"docs":{},"行":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"起":{"docs":{},"来":{"docs":{},"就":{"docs":{},"会":{"docs":{},"有":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"层":{"docs":{},"次":{"docs":{},"而":{"docs":{},"不":{"docs":{},"会":{"docs":{},"容":{"docs":{},"易":{"docs":{},"出":{"docs":{},"现":{"docs":{},"混":{"docs":{},"淆":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{},"空":{"docs":{},"格":{"docs":{},"建":{"docs":{},"议":{"docs":{},"在":{"docs":{},"非":{"docs":{},"函":{"docs":{},"数":{"docs":{},"方":{"docs":{},"式":{"docs":{},"的":{"docs":{},"括":{"docs":{},"号":{"docs":{},"调":{"docs":{},"用":{"docs":{},"前":{"docs":{},"留":{"docs":{},"一":{"docs":{},"个":{"docs":{},"空":{"docs":{},"格":{"docs":{},"以":{"docs":{},"和":{"docs":{},"前":{"docs":{},"面":{"docs":{},"的":{"docs":{},"进":{"docs":{},"行":{"docs":{},"区":{"docs":{},"分":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"采":{"docs":{},"用":{"docs":{},"小":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},"命":{"docs":{},"名":{"docs":{},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"即":{"docs":{},"首":{"docs":{},"字":{"docs":{},"母":{"docs":{},"小":{"docs":{},"写":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"单":{"docs":{},"词":{"docs":{},"首":{"docs":{},"字":{"docs":{},"母":{"docs":{},"大":{"docs":{},"写":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"唯":{"docs":{},"一":{"docs":{},"的":{"docs":{},"例":{"docs":{},"外":{"docs":{},"是":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},"建":{"docs":{},"议":{"docs":{},"在":{"docs":{},"括":{"docs":{},"号":{"docs":{},"前":{"docs":{},"留":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"空":{"docs":{},"格":{"docs":{},"(":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"包":{"docs":{},"括":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}},"总":{"docs":{},"结":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"枚":{"docs":{},"举":{"docs":{},"结":{"docs":{},"构":{"docs":{},"名":{"docs":{},"也":{"docs":{},"是":{"docs":{},"用":{"docs":{},"大":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},",":{"docs":{},"枚":{"docs":{},"举":{"docs":{},"成":{"docs":{},"员":{"docs":{},"使":{"docs":{},"用":{"docs":{},"全":{"docs":{},"大":{"docs":{},"写":{"docs":{},",":{"docs":{},"单":{"docs":{},"词":{"docs":{},"间":{"docs":{},"用":{"docs":{},"\"":{"docs":{},"_":{"docs":{},"\"":{"docs":{},"隔":{"docs":{},"开":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"过":{"docs":{},"多":{"docs":{},",":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"说":{"docs":{},"明":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{},"代":{"docs":{},"码":{"docs":{},"做":{"docs":{},"了":{"docs":{},"什":{"docs":{},"么":{"docs":{},",":{"docs":{},"仅":{"docs":{},"当":{"docs":{},"个":{"docs":{},"别":{"docs":{},"关":{"docs":{},"键":{"docs":{},"点":{"docs":{},"才":{"docs":{},"需":{"docs":{},"要":{"docs":{},"一":{"docs":{},"些":{"docs":{},"相":{"docs":{},"应":{"docs":{},"提":{"docs":{},"示":{"docs":{},"性":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"以":{"docs":{},"解":{"docs":{},"释":{"docs":{},"一":{"docs":{},"段":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"算":{"docs":{},"法":{"docs":{},"它":{"docs":{},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"工":{"docs":{},"作":{"docs":{},"的":{"docs":{},"。":{"docs":{},"对":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"只":{"docs":{},"能":{"docs":{},"写":{"docs":{},"在":{"docs":{},"它":{"docs":{},"的":{"docs":{},"上":{"docs":{},"方":{"docs":{},"或":{"docs":{},"右":{"docs":{},"方":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"位":{"docs":{},"置":{"docs":{},"都":{"docs":{},"是":{"docs":{},"非":{"docs":{},"法":{"docs":{},"的":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"信":{"docs":{},"看":{"docs":{},"到":{"docs":{},"最":{"docs":{},"后":{"docs":{},",":{"docs":{},"您":{"docs":{},"已":{"docs":{},"经":{"docs":{},"对":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"编":{"docs":{},"程":{"docs":{},"规":{"docs":{},"范":{"docs":{},"有":{"docs":{},"了":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"了":{"docs":{},"解":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"开":{"docs":{},"始":{"docs":{},"您":{"docs":{},"的":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"开":{"docs":{},"发":{"docs":{},"之":{"docs":{},"旅":{"docs":{},"吧":{"docs":{},"!":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"缩":{"docs":{},"进":{"docs":{},"请":{"docs":{},"采":{"docs":{},"用":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"语":{"docs":{},"句":{"docs":{},")":{"docs":{},",":{"docs":{},"而":{"docs":{},"运":{"docs":{},"算":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"与":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"间":{"docs":{},"留":{"docs":{},"一":{"docs":{},"个":{"docs":{},"空":{"docs":{},"格":{"docs":{},"。":{"docs":{},"另":{"docs":{},"外":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"在":{"docs":{},"括":{"docs":{},"号":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"两":{"docs":{},"侧":{"docs":{},"留":{"docs":{},"空":{"docs":{},"格":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"采":{"docs":{},"用":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},",":{"docs":{},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"请":{"docs":{},"使":{"docs":{},"用":{"docs":{},"英":{"docs":{},"文":{"docs":{},"做":{"docs":{},"为":{"docs":{},"注":{"docs":{},"释":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"中":{"docs":{},"文":{"docs":{},"注":{"docs":{},"释":{"docs":{},"将":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"在":{"docs":{},"编":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"来":{"docs":{},"回":{"docs":{},"不":{"docs":{},"停":{"docs":{},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},"中":{"docs":{},"英":{"docs":{},"文":{"docs":{},"输":{"docs":{},"入":{"docs":{},"法":{"docs":{},"从":{"docs":{},"而":{"docs":{},"打":{"docs":{},"断":{"docs":{},"编":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"思":{"docs":{},"路":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"使":{"docs":{},"用":{"docs":{},"英":{"docs":{},"文":{"docs":{},"注":{"docs":{},"释":{"docs":{},"也":{"docs":{},"能":{"docs":{},"够":{"docs":{},"比":{"docs":{},"较":{"docs":{},"好":{"docs":{},"的":{"docs":{},"与":{"docs":{},"中":{"docs":{},"国":{"docs":{},"以":{"docs":{},"外":{"docs":{},"的":{"docs":{},"技":{"docs":{},"术":{"docs":{},"者":{"docs":{},"进":{"docs":{},"行":{"docs":{},"交":{"docs":{},"流":{"docs":{},"。":{"docs":{},"除":{"docs":{},"非":{"docs":{},"必":{"docs":{},"须":{"docs":{},"引":{"docs":{},"用":{"docs":{},"原":{"docs":{},"来":{"docs":{},"的":{"docs":{},"文":{"docs":{},"本":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"写":{"docs":{},"中":{"docs":{},"文":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"连":{"docs":{},"接":{"docs":{},"起":{"docs":{},"来":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},"举":{"docs":{},"例":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},":":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{},"自":{"docs":{},"身":{"docs":{},"测":{"docs":{},"试":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}},"将":{"docs":{},"肯":{"docs":{},"定":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}},"影":{"docs":{},"响":{"docs":{},"的":{"docs":{},"范":{"docs":{},"围":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"进":{"docs":{},"程":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"等":{"docs":{},"等":{"docs":{},",":{"docs":{},"视":{"docs":{},"项":{"docs":{},"目":{"docs":{},"不":{"docs":{},"同":{"docs":{},"而":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"撤":{"docs":{},"销":{"docs":{},"上":{"docs":{},"一":{"docs":{},"次":{"docs":{},"的":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}},"改":{"docs":{},"变":{"docs":{},"了":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"工":{"docs":{},"具":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{},"过":{"docs":{},"程":{"docs":{},"或":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"工":{"docs":{},"具":{"docs":{},"的":{"docs":{},"变":{"docs":{},"动":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"把":{"docs":{},"g":{"docs":{},"r":{"docs":{},"u":{"docs":{},"b":{"docs":{},"改":{"docs":{},"成":{"docs":{},"了":{"docs":{},"u":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"永":{"docs":{},"远":{"docs":{},"别":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"第":{"2":{"docs":{},"行":{"docs":{},"是":{"docs":{},"空":{"docs":{},"行":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"docs":{}}}}}}},"部":{"docs":{},"分":{"docs":{},"是":{"docs":{},"对":{"docs":{},"本":{"docs":{},"次":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}},"完":{"docs":{},"成":{"docs":{},"配":{"docs":{},"置":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"了":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"就":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"最":{"docs":{},"新":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"菜":{"docs":{},"单":{"docs":{},"配":{"docs":{},"置":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":10.038461538461538}}}}}},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"下":{"docs":{},"载":{"docs":{},"(":{"docs":{},"较":{"docs":{},"慢":{"docs":{},")":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}}}}}}}}}}},"百":{"docs":{},"度":{"docs":{},"网":{"docs":{},"盘":{"docs":{},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"提":{"docs":{},"取":{"docs":{},"码":{"docs":{},":":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}}}}}}}}}}}}}}}},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":10.004545454545454}},"表":{"docs":{},",":{"docs":{},"填":{"docs":{},"写":{"docs":{},"要":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}},"带":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"和":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}},"着":{"docs":{},"重":{"docs":{},"点":{"docs":{},":":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}},"length":2864},"corpusTokens":["!=","\"\"","\"=r\"(ret));","\"_\"","\"clock\"","\"hello!\";","\"hello\");","\"init\"","\"multi","\"syscall\"","\"world!\");","\"world!\";","\"world\");","\"{\"","#","#defin","#els","#else,","#endif","#endif这种时,需要在开头和结尾后面写上注释来帮助开发这快速找到对应的宏。","#ifdef","#ifndef","#includ","%","%0\"","%p\",","%p,","%x\",","%x,","&","&&","(","(!attr)","(!pte_used(*pte))","(\"rdtime","():","(*handler)(struct","(*soundcallbackhandler)(void","(*write)(void","(1","(1);","(a0)","(a1)","(c)","(char","(cmder)","(condition)","(coreid","(data)","(dmac)","(fatfs,","(for","(fpioa)","(git)下载后安装即可。","(irqno","(level","(mmu_pd","(nx_addr)&trapentry0)","(nx_addr)&trapentry1)","(nx_addr)&trapentry2)","(nx_addr)&trapentry3)","(nx_addr)get_addr_from_satp(addr);","(nx_addr)nx_virt2phy(pagetablevir);","(nx_halcontext","(nx_syscallwitharghandler)nx_syscallgethandler((nx_syscallapi)fram","(nx_thread_max_priority_nr","(nx_thread_priority_high","(nx_u8","(nx_uarch)(((nx_uarch)stack)","(nx_uarch)arg;","(nx_uarch)exitentry;","(nx_uarch)startentry;","(pagetablephi","(phsical","(pte","(python)下载后安装即可。","(rv64gc)","(smp初始化)","(tabl","(trapentri","(void","(x","(x86,","(内核的主函数)","(初始化调用)","(平台初始化,","(平台初始化二阶段,可以使用内核的功能:","(平台的主函数,什么都可以使用:","(调度第一个线程)","*","*)","*)(pagephi","*)mmu","*)nx_align_down((nx_uarch)stack,","*)stack;","*)stacktop;","**outaddr);","*,","*/","*addr","*addr)","*addr,","*arg)","*arg),","*arg,","*args)","*args,","*atomic)","*atomic,","*buf,","*buffer,","*cond)","*context","*cpugetcurrent(void)","*data);","*data,","*deviceptr;","*directoryread(nx_dir","*exitentry,","*frame)","*from","*kernelstack,","*mem,","*memalloc(us","*mmu,","*mutex)","*name,","*nextsp","*nx_buddyallocpage(nx_buddysystem*","*nx_halcontextinit(void","*nx_halmappage(nx_mmu","*nx_halmappagewithphy(nx_mmu","*nx_halprocessgetkernelpagetable(void)","*nx_halvir2phy(nx_mmu","*nx_heapalloc(nx_s","*nx_irq_delayworkcreate(nx_irq_workhandl","*nx_threadcreate(const","*nx_threadself(void);","*nx_timercreate(nx_uarch","*object)","*object);","*p","*paget","*pagetablevir)","*param,","*path)","*path,","*process,","*pte","*ptr);","*q","*s","*space,","*stack","*stack;","*stackbase,","*stackbase;","*stacktop)","*startentry,","*tabl","*text,","*thread);","*thread,","*threadarg;","*threadname,","*time)","*timer);","*timer,","*userstack);","*userstack,","*value)","*vmspace)","*work);","*work,","+","+=",",","...","...)",".ack",".add",".align",".barrier",".barrierinstruct",".barrierread",".barrierwrit",".ca",".clearmask",".data.stack",".dec",".disabl",".enabl",".executeus",".extern",".freepaget",".get",".getkernelpaget",".getpaget",".global",".globl",".inc",".init",".inituserspac",".jpg)",".mappag",".mappagewithphi",".mask",".restorelevel",".savelevel",".section",".set",".setmask",".setpaget",".space",".sub",".swap",".switchnext",".switchpaget",".switchprevnext",".text",".text.start",".unmappag",".unmask",".vir2phi",".vscode","/","/*","/**","//","0","0);","0,","0.8tflop","01","0;","0x01","0x02","0x1000;","0x2","0x20,","0x30,};","0x50,","0x60,};","0x80020000,","0x80200000,","0x82000000","0xf0000000","0~nx_multi_cores_nr","1","1)","1);","1,","1.","1.目录名称","10","10.","10.注释编写","10000000","10mhz","11","11.缩进以及分行","112,","12","12.大括号与空格","128等。","13.函数指针类型定义","14.函数参数太多","15","15.宏条件定义","16","16550a","16;","1978","1985","1;","1]","1mb)内存对象。","1ms~100m","1。","2","2,","2.","2.0","2.04","2.文件名称","2018","2021","2021,","2022","2022,","2;","3","3);","3.","3.头文件定义","31","32","32);","32,","32mb","32位的pc电脑基本都是x86架构,而最早的一款处理器就是i386。因此,几乎所有的32位电脑都兼容i386。","39","3;","4","4);","4.","4.头文件注释","400mhz(可超频到600mhz)","48","48,","4;","5);","5.","5.变量命名","57","6","6.","6.函数命名","64","64,","64/i386工具链:","64/i386工具链:apt","64bit","6]","7","7.","7.结构体定义","8","8.","8.枚举定义","80,","80186、80286、80386","80386","80486。","8086","8192","8mib","9","9.","9.宏定义","96,",":","=","==",">",">a0",">a0);",">a0,",">a1,",">a2,",">a3,",">a4,",">a5,",">a6);",">a7",">a7);",">a7,",">epc",">mmu.tabl",">mmu.table);",">ra",">sp",">sstatu",">table;",">valu",">value),",">value,",">value;",">vmspace.mmu,","[","[0,","[7,","[x]","\\","]","__assembly__","__driver_keyboard__","__file__","__mappage(mmu,","__mappagewithphy(mmu,","__sync_fetch_and_add(&atom","__sync_fetch_and_and(&atom","__sync_fetch_and_or(&atom","__sync_fetch_and_sub(&atom","__sync_lock_test_and_set(&((atomic)","__sync_synchron","__sync_synchronize();","__sync_val_compare_and_swap(&atom","__unmappage(mmu,","_entermain","_entermain:","_setsp0","_setsp0:","_setsp1","_setsp1:","_setsp2","_setsp2:","_setsp3","_setsp3:","_start","_start:","_start,当执行到这个地方的时候,内核就开始运行了。","`pc`","`ra`","`ra`,","`sepc`","`sp`","`sret`,","`trap","a.","a0","a0,","a0~a7","access","add","addr","addr)","addr,","addr;","addrend","address","addrstart","aes,","alloc","allow","amd64","anyth","ap","apach","api","api);","api:","api应用程序接口","api设计","app","apt","arch","arg","arg0:%x,","arg1:%x,","arg2:%x,","arg3:%x,","arg4:%x,","arg5:%x,","arg6:%x\",","arg,","arm,","arm32","arm64","asid","asid。表示当前程序的","assert_false(...)","assert_true(...)","atom","atomic.c、barrier.c、clock.c、context.c、interrupt.c即可。","atomic.c、barrier.c即可。","attr)","attr);","attr,","author","avoid","b.","bad!!!","bare","barrier","base","befor","beq","bit","bodi","booko","bootcoreid)","bootcoreid);","bootload","break;","bss","buddi","buddy伙伴算法","buf0[32]","buf1,","buf1[32]","buf2,","buf2[32]","buffer","bufsiz","bug","build","bytes)","cach","call","can't","case","chang","char","chore","clean","clear","clearcsr(sie,","clock","cmd,","code","code,","comment","commit","cond,","condit","conditioncreate(int","conditiondelete(condit","conditioninit(condit","conditionsleep(condit","conditionwake(condit","conditionwakeall(condit","config","config_nx_platform_k210","config_nx_uart0_from_sbi","consoleprint(str);","consoleprintcolor(color,","consolerestorecolor()","consolesetcolor(color);","const","contains:","content","context","control","copyright","core","core\"","coreaffinity;","coreid","coreid)","coreid);","coreid;","corestack2:","corestack3:","count","count);","cow","cpu","cpu_inittrap(coreid);","cpu_stack0:","cpu_stack1:","cpu_stacktop0","cpu_stacktop0:","cpu_stacktop1","cpu_stacktop1:","cpu_stacktop2","cpu_stacktop2:","cpu_stacktop3","cpu_stacktop3:","cpu。intel","cpu,而之前的都是","csr","csrc","csrw","ctrl","ctrl+a","ctrl+d","ctx_sp_off","c语言头文件为了避免多次重复包含,需要定义一个符号。这个符号的定义形式请采用如下的风格:","d1","data","data1:","data2:","date","deamon","default:","defconfig","descript","dest,","dev)","dev,","develop","devic","device_name_len","deviceclose(int","devicecontrol(int","devicecreate(char","devicedelete(char","deviceopen(char","deviceread(int","devicewrite(int","differ","dir)","direct","directoryclose(nx_dir","directoryopen(char","directoryrewind(nx_dir","disabl","do","doc","docs(mm):","docs:文档(documentation)","driver","dynam","ecal","elf","enabl","enter","entri","entry`","enum","env)","epc","err","err;","exampl","except_false(...)","except_true(...)","exfat.","exitcode)","exitcode);","exitentry,","exitlist;","extfs,","fail","fat12,","fat12:","fat16,","fat32,","fat32:","fatfs,","fault!\");","fd)","fd,","feat(mm):","feat:新功能(feature)","fenc","fence.i","file","first","five”)是一个基于精简指令集(risc)原则的开源指令集架构(isa)。","fix","fix(mm):","fixedpriority;","fix:修补bug","flags)","flags);","flags,","flags。","floppi","fpu","frame","free","frequenc","fs","function","gcc","gcc\\bin","gdb","gdb调试","genisoimag","get_pf_id(addrend)","get_pf_id(addrstart)","gettimercounter()","git","globallist;","grub2","grub2引导","hal","handler","handler(fram","handler,","handler;","hardwar","hash","hat/fedora/centos:","header","header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。","heap","heapcache算法","heapcache虚拟内存管理","here","high","hold","http://byterunner.com/16550.html","hub","hypervisor","hypervisor,supervisor,","i.","i/o驱动框架和中断管理","i2c,","i2s,","i386","i386,","i386平台简介","id","id,","identifier:","idl","id。","ier","ier_rx_en","if(vmspac","if、for、while、switch","includ","info","init","input","instal","instead","instruct","int","intel","interrupt","interupt","io","ipc","irq","irqno)","irqno);","irqno,","is:%d\",","isa)也处在草案版本1.10。","isa),而特权指令集(privileg","isiz","issus","isterminated;","j","j8","jasonhu","jn是多线程编译","jn是多线程编译,","k210","k210,","k210平台简介","k210是嘉楠科技公司推出的基于risc","kdriver","kernel","kill","kservic","la","layout:","len);","len,","level","level)","li","licens","line","line1","line2","linux","linux:","linux下设置i386环境并设置platform=x86","linux下设置riscv64环境platform=riscv64","linux工具链只需要从软件包管理器下载安装即可:","linux环境","list","list;","load","lock","lock;","log","logs:","log,建议是不要。","long","longarch","loop","loop:","low","make","make_satp(addr));","malloc","manag","mask)","mask);","max","mean","memcopy(void","memfill(void","memfree(void","memmap(void","memmove(void","memori","memory,","memroy","memunmap(void","memzero(void","menuconfig","menuconfig是一个可以在终端显示的图形化配置界面,他不仅可以极大的方便我们对于配置文件的修改,","menuconfig简介","messag","mhartid,","microsecond","microseconds);","millisecond","milliseconds,","min","mkf","mm","mmu","mmu_flushtlb();","mmu_pd","mmu_pt","mmu内存管理单元","mmu支持","mmu虚拟内存管理","mode","mode,","mtool","multi","mutex","mutex)","mutex,","mutexacquire(mutex","mutexcreate(int","mutexdelete(mutex","mutexinit(mutex","mutexrelease(mutex","mutextryacquire(mutex","mv","mythread,","name","name)","name,","name[nx_thread_name_len];","name[sound_device_name_len];","need","needsched;","netstack)","never","newvalue)","newvalue);","nextsp);","normal","note","note:","notice:","nt","number)。","nx_","nx_addr","nx_assert(handler);","nx_assert(mmu);","nx_assert(vmspace);","nx_assert_bufeq(buf0,","nx_assert_bufne(buf1,","nx_assert_eq(1,","nx_assert_false(0);","nx_assert_false(nx_false);","nx_assert_ge(3,","nx_assert_gt(4,","nx_assert_in_range(1,","nx_assert_in_range(4,","nx_assert_in_range(5,","nx_assert_le(3,","nx_assert_lt(3,","nx_assert_ne(0,","nx_assert_ni_range(0,","nx_assert_ni_range(1,","nx_assert_ni_range(5,","nx_assert_ni_range(6,","nx_assert_not_null(q);","nx_assert_null(p);","nx_assert_streq(\"hello\",","nx_assert_streq(s,","nx_assert_strne(\"hello\",","nx_assert_strne(s,","nx_assert_true(1);","nx_assert_true(nx_true);","nx_atom","nx_atomicop","nx_atomicopsinterfac","nx_bool","nx_buddycreate(void","nx_buddyfreepage(nx_buddysystem*","nx_buddyincreasepage(nx_buddysystem*","nx_buddysystem*","nx_callsinit","nx_casm","nx_casm(\"fence\":::\"memory\");","nx_casm(\"fence.i\":::\"memory\");","nx_clocktickgo();","nx_contextop","nx_contextopsinterfac","nx_createthread(char","nx_dir","nx_directorycreate(char","nx_directorydelete(char","nx_direntri","nx_efault;","nx_einval;","nx_enomem;","nx_enor","nx_eok;","nx_error","nx_false);","nx_fd","nx_fileaccess(char","nx_fileclose(nx_fd","nx_filecreate(char","nx_filedelete(char","nx_fileisend(nx_fd","nx_fileopen(char","nx_fileread(nx_fd","nx_fileseek(nx_fd","nx_filetelloffset(nx_fd","nx_filewrite(nx_fd","nx_halatomicadd(nx_atom","nx_halatomicadd,","nx_halatomiccas(nx_atom","nx_halatomiccas,","nx_halatomicclearmask(nx_atom","nx_halatomicclearmask,","nx_halatomicdec(nx_atom","nx_halatomicdec,","nx_halatomicget(nx_atom","nx_halatomicget,","nx_halatomicinc(nx_atom","nx_halatomicinc,","nx_halatomicset(nx_atom","nx_halatomicset,","nx_halatomicsetmask(nx_atom","nx_halatomicsetmask,","nx_halatomicsub(nx_atom","nx_halatomicsub,","nx_halatomicswap(nx_atom","nx_halatomicswap,","nx_halclearbss();","nx_halclockhandler(void)","nx_halconsoleoutchar","nx_halcontext","nx_halcontextinit","nx_halcontextinit,","nx_halcontextswitchnext","nx_halcontextswitchnext(nx_addr","nx_halcontextswitchnext,","nx_halcontextswitchnext:","nx_halcontextswitchprevnext","nx_halcontextswitchprevnext(nx_addr","nx_halcontextswitchprevnext,","nx_halcontextswitchprevnext:","nx_halcorebootapp(nx_uarch","nx_halcorebootapp。","nx_halcoreenterapp,","nx_halcoregetindex(void)","nx_halcoregetindex。该索引是在处理器数组中的索引,不管什么处理器","nx_haldirectuartinit();","nx_haldirectuartstage2","nx_haldirectuartstage2();","nx_halen","nx_halenable(void)","nx_halenable,","nx_halgetkernelpagetable(),","nx_halgetkernelpagetable();","nx_halgetpaget","nx_halgetpagetable(void)","nx_halgetpagetable,","nx_halinitclock(void)","nx_halirqack(nx_irq_numb","nx_halirqack,","nx_halirqack。","nx_halirqdis","nx_halirqdisable(void)","nx_halirqdisable,","nx_halirqen","nx_halirqenable(void)","nx_halirqenable,","nx_halirqmask","nx_halirqmask(nx_irq_numb","nx_halirqmask,","nx_halirqrestorelevel(nx_uarch","nx_halirqrestorelevel,","nx_halirqrestorelevel。","nx_halirqsavelevel","nx_halirqsavelevel(void)","nx_halirqsavelevel,","nx_halirqunmask","nx_halirqunmask(nx_irq_numb","nx_halirqunmask,","nx_halmappag","nx_halmappage,","nx_halmappagewithphi","nx_halmappagewithphy,","nx_halmembarrier(void)","nx_halmembarrier,","nx_halmembarrierinstruction(void)","nx_halmembarrierinstruction,","nx_halmembarrierread(void)","nx_halmembarrierread,","nx_halmembarrierwrite(void)","nx_halmembarrierwrite,","nx_halpagezoneinit();","nx_halplatforminit","nx_halplatforminit(nx_uarch","nx_halplatformmain","nx_halplatformstage2","nx_halplatformstage2(void)","nx_halplatformstage2中,可以使用内核的功能,内存分配,中断注册等。","nx_halprocessenterusermode(args,","nx_halprocessenterusermode(void","nx_halprocessexecuteus","nx_halprocessexecuteuser(const","nx_halprocessexecuteuser,","nx_halprocessfreepaget","nx_halprocessfreepagetable(nx_vmspac","nx_halprocessfreepagetable,","nx_halprocessgetkernelpaget","nx_halprocessgetkernelpagetable,","nx_halprocessinituserspac","nx_halprocessinituserspace(nx_process","nx_halprocessinituserspace,","nx_halprocessswitchpaget","nx_halprocessswitchpagetable(void","nx_halprocessswitchpagetable,","nx_halprocesssyscalldispatch","nx_halprocesssyscalldispatch(nx_haltrapfram","nx_halsetpaget","nx_halsetpagetable(nx_addr","nx_halsetpagetable,","nx_halunmappag","nx_halunmappage(nx_mmu","nx_halunmappage,","nx_halvir2phi","nx_halvir2phy,","nx_has_onecor","nx_has_smp","nx_heapalloc","nx_heapalloc(size)","nx_heapfree(ptr)","nx_heapfree(void","nx_heapgetobjectsize(void","nx_i32","nx_import","nx_interfac","nx_irq_bind(nx_irq_numb","nx_irq_control","nx_irq_controllerinterfac","nx_irq_controllerinterface.disable()","nx_irq_controllerinterface.enable()","nx_irq_controllerinterface.restorelevel(level)","nx_irq_controllerinterface.savelevel()","nx_irq_delayqueu","nx_irq_delayqueueenter(nx_irq_delayqueu","nx_irq_delayqueueleave(nx_irq_delayqueu","nx_irq_delaywork","nx_irq_delayworkdestroy(nx_irq_delaywork","nx_irq_delayworkhandl","nx_irq_delayworkhandle(nx_irq_delaywork","nx_irq_delayworkinit(nx_irq_delaywork","nx_irq_dis","nx_irq_disable()","nx_irq_en","nx_irq_enable()","nx_irq_fast_queu","nx_irq_handl","nx_irq_mask(nx_irq_numb","nx_irq_normal_queue,","nx_irq_period_queue,","nx_irq_queue_nr,","nx_irq_restorelevel","nx_irq_restorelevel(level)","nx_irq_restorelevel(level);","nx_irq_savelevel","nx_irq_savelevel()","nx_irq_savelevel();","nx_irq_sched_queu","nx_irq_sched_queue,","nx_irq_slow_queu","nx_irq_slow_queue,","nx_irq_unbind(nx_irq_numb","nx_irq_unmask(nx_irq_numb","nx_irq_workhandl","nx_list","nx_log_*","nx_log_d(\"riscv64","nx_log_i(\"boot","nx_log_i(\"hello,","nx_log_i(\"stage2!\");","nx_log_info","nx_log_level","nx_log_nam","nx_main","nx_memalloc","nx_memalloc(nx_page_size);","nx_memalloc(size)","nx_membarrierop","nx_membarrieropsinterfac","nx_memcopy(table,","nx_memfre","nx_memfree(ptr)","nx_memfree(vmspac","nx_memfree。","nx_memzero(context,","nx_memzero(table,","nx_mmugetpagetable())","nx_mmuinit(&process","nx_mmuop","nx_mmuopsinterfac","nx_mmusetpagetable(pagetablephy);","nx_nr_irqs)","nx_null)","nx_null;","nx_page*","nx_page_addr_mask;","nx_page_alignup(size);","nx_page_size);","nx_page_size;","nx_pagefromptr(nx_buddysystem*","nx_panic(\"should","nx_panic(\"vir2phi","nx_printf","nx_privat","nx_processexit(int","nx_processlaunch(char","nx_processop","nx_processopsinterfac","nx_schedtofirstthread","nx_size","nx_smp_main","nx_smp_preload","nx_spin","nx_syscallgethandler(nx_syscallapi","nx_syscallhandl","nx_syscallwitharghandl","nx_test(test)","nx_test(test1)","nx_test(test2)","nx_test(test3)","nx_test(testunitname)","nx_test(yyy)","nx_test_case(testcasename);","nx_test_case(utest);","nx_test_case(xxx);","nx_test_case_clean(testcasename)","nx_test_case_clean(utest)","nx_test_case_setup(testcasename)","nx_test_case_setup(utest)","nx_test_clean(test)","nx_test_clean(testunitname)","nx_test_setup(test)","nx_test_setup(testunitname)","nx_test_table(testcasename)","nx_test_table(utest)","nx_test_table(xxx)","nx_test_unit(test),","nx_test_unit(test1),","nx_test_unit(test2),","nx_test_unit(test3),","nx_test_unit(testunitname),","nx_test_unit(yyy),","nx_test_unit_clean(testunitname),","nx_test_unit_setup(testunitname),","nx_test_unit_setup_clean(test),","nx_test_unit_setup_clean(testunitname),","nx_thread","nx_thread;","nx_thread_priority_high","nx_thread_priority_idl","nx_thread_priority_low","nx_thread_priority_norm","nx_thread_priority_rt_max","nx_thread_priority_rt_min","nx_threadcreat","nx_threaddestroy(nx_thread","nx_threadexit","nx_threadexit(void);","nx_threadhandl","nx_threadresourc","nx_threadself","nx_threadsetaffinity(nx_thread","nx_threadsleep(nx_uarch","nx_threadstart","nx_threadstart(nx_thread","nx_threadstat","nx_threadtermin","nx_threadterminate(nx_thread","nx_threadyield","nx_threadyield(void);","nx_ticks_per_second","nx_ticks_per_second;","nx_timer","nx_timer_clk_freq","nx_timer_oneshot","nx_timer_period","nx_timerdestroy(nx_tim","nx_timerdestroy,","nx_timerinit","nx_timerinit(nx_tim","nx_timerstart","nx_timerstart(nx_tim","nx_timerstop","nx_timerstop(nx_tim","nx_u32","nx_u64","nx_u8","nx_uarch","nx_vmspacemap(nx_vmspac","nx_vmspacemapwithphy(nx_vmspac","nx_vmspaceunmap(nx_vmspac","nxbase","nxo","nxos使用了一个python开发的menuconfig,它的跨平台性以及易用性成为了我们的首选。","nxos是next","nxos的api接口分为几个大类。进程,线程,内存管理,时间管理,枢纽系统,文件系统,设备管理,网络管理,图形管理,安全管理,用户态驱动框架。","nxos采用","nxos采用混合内核架构,即宏内核和微内核相结合。优势是减小内核代码,增加功能可扩展性,功能模块是独立的进程,添加和删除模块就是进程的创建和关闭。","offset","offset)","offset,","old","old,","on","oncore;","oneshot","opensbi","opensbi,","opensbi固件","oper","output","paddr,","page","pageoffset","pageoffset);","pageoffset;","pagephi","pagephy;","pages);","pagetablephi","pagewalk(pagetable,","path","path,","pc","period","phyaddr","phyaddr,","physic","pid)","pid,","platform","platfrom","plic","plic_complete(nx_smp_getbootcore(),","plic_disableirq(nx_smp_getbootcore(),","plic_enableirq(nx_smp_getbootcore(),","plic_init(nx_true);","ppn","ppn。第一级硬件回填使用的","pr","prefix","prepar","prevsp,","prioriti","priority)","priority);","priority,","priority;","priority,即可创建一个线程,返回线程的地址。","process","processcreate(char","processexit(int","processgetid(void)","processlist;","processor)。","processor)启动后,进入内核,完成初始化,再由引导处理器去唤醒其它处理器,通常称为应用处理器(appl","processterminate(int","processwait(int","protect","pte","pte2paddr(*pte);","pwm,","python","qemu","qemu_riscv64","qemu_riscv64平台简介","qemu平台支持gdb调试,并搭配了vscode图形化调试","qemu是一种通用的开源计算机仿真器和虚拟器。本平台就是qemu对riscv64架构的仿真支持。","queue,","ra","rdtime","read","readcsr(satp);","readcsr(sstatus)","readcsr(sstatus);","readcsr(stvec);","real","receiv","red","refactor(mm):","refactor:重构(即不是新增功能,也不是修改bug的代码变动)","reference;","regbytes(sp)","regist","registers.","reserv","resourc","resource;","restor","restore_context","ret;","return","return,","return:","revert","revert:","rhr","ring1,","ring2,","ring3),在","risc","riscv","riscv(rv32)具有32个整数寄存器组(取名为:x0~x31),其中31个是通用寄存器(x1~x31),它们存储整数数值,寄存器x0是硬件连线的常数0。当你设计的riscv架构处理器实现了浮点扩展时,还必须有32个浮点寄存器f0~f31。对于rv32,其x寄存器是32位宽度的,xlen=32,对于rv64,它们是64位宽度的,xlen=64。","riscv,","riscv64","riscv64!\");","riscv64,","riscv64等","riscv架构移植","routin","rt","rtc,","rto","run","rustsbi","rustsbi固件","rustsbi,其内核的入口地址为","rv64imafdc","s","same","satp","save","save_context","saveconfig","sbi","sbi,","sbi_entry.","sbi_init();","sbi_print_version();","sbi_set_timer(gettimercounter()","sched","schedul","scope","scope用于说明","script","sdcard/harddisk","sdk","seciton,","see","seekmethod)","sepc,","set","setcsr(sie,","setup.bat","setup.sh","sha256","share","shot","showlogvers","sie","sie_stie);","simpl","singl","size","size)","size);","size,","sizeof(nx_halcontext));","sizeof(nx_halcontext);","sizeof(nx_uarch));","skip","smart。","smp","smp多核","smp多核启动流程","smp多核调度","smp负载均衡","sndhandler;","sound_ac97,","sound_hd,","sound_pc,","soundcallbackhandl","sounddevic","sounddevice;","soundtyp","soundtype;","sourc","sp","sp,","space","spdx","spi,","sram(6mib通用sram+2mib的ai专用sram)","src","src,","src/arch/riscv64/port","sret","sscrach","sscratch","sscratch,","ssize","sstatu","sstatus,","sstatus_si","sstatus_sie));","sstatus_sie);","sstatus_sie;","sstatus_spi","sstatus_spie;","sstatus_spp","sstatus_sum","stack","stack,","stacksize,","stacksize;","stacktop","startentri","state;","statu","store","str)","struct","stvec","style","style(*):","style:","subject","subject是","sudo","supervisor","supervisor,","supervisor模式的中断的打开与关闭是由状态寄存器","suport","support","sure","sv39","sv39,3级页表,页表和物理页都是4kb大小。","sv48","sv57","sv64","switch","syscal","system","system,","system的意思,是一个跨平台的简洁、高性能、高稳定性的支持多核的混合内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。","system设计好了再设计接口,目前还没有概念","t0,","t1","t1,","tabl","table,","tc=i","tc是testcase的缩写,表示启用测试案例。","team","test","test(mm):","test:增加测试","text,","thr","thread","thread,","threadcreate(threadhandl","threadexit(int","threadfindbynam","threadgetid(void)","threadhandl","threadhandler,","threadresume(int","threadsuspend(int","threadterminate(int","threadwait(int","tickdelta","tickdelta);","ticks;","tid)","tid,","tid;","time","timegetclock(void)","timegetcurrent(timesytem","timeout,","timer","timesetcurrent(timesytem","timeslice;","tlsalloc(void)","tlsfree(int","tlsgetvalue(int","tlsindex)","tlsindex,","tlssetvalue(int","tmpfilebuff","todo","toolchains\\x86_64","tools/","tools/genisoimag","tools/grub","tools/mkf","tools/mtool","tools服务器下载(速度较慢,请耐心等待)","top","translat","transmit","trap","trapentri","trapentry0;","trapentry1;","trapentry2;","trapentry3;","tri","truncat","type","typedef","u8","uart","uart,","uart.","uart=/dev/ttyusb0","uart=com3","uart是串口设备,需要在设备列表查看是哪个设备,默认是/dev/ttyusb0,可以不写。","uart是串口设备,需要在设备管理器查看,k210的设备是哪个串口。","ubuntu/kali","udriv","unknown","updat","us","used!\");","user","user\");","user:","userstack);","userverc","user)。","usiz","utest","util","v","v0.1","v64/32工具链:","v64工具链:","vaddr,","valu","value)","value);","value;","vf","vfs_createfil","viraddr","viraddr)","viraddr,","viraddr;","virstart,","virt","virtual","vmm","vmnode","vmnode,节点记录了地址的信息以及这段地址的属性。","vmspace虚拟地址空间","void","vs","vscode的一些配置文件,有gdb调试配置","v中c语言函数参数是","v中断分为两种类型,一种是同步中断,即ecall、ebreak等指令所产生的中断,另一种是异步中断,即gpio、uart等外设产生的中断。","v已经确立了版本2.22的用户空间的指令集(userspac","v指令集可以自由地用于任何目的,允许任何人设计、制造和销售risc","v指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。","v架构的64位双核soc。","v架构移植","v的mmu支持多种模式,有sv32/sv39/sv48/sv57/sv64等。不同的模式映射的页面等级,页面大小是有差异的。在64位处理器种最常用的是sv39,它是3级4kb页面大小映射。","v的中断管理由处理器核局部中断clint(corelocalinterrupt)和平台级中断控制器plic(platformlevelinterruptcontroller)组成。clint分为软件中断核计时器中断,负责响应处理器的异常核和计时器中断。plic负责处理外设的中断。","v目前有4种特权模式(machine,","v芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。","v被设计成可扩展的,可以配置的,根据不同的应用场景可以生产带有不同功能扩展的处理器。","v(发音为“risk","walk","weel.","window","windows:","windowsnt","windows下设置i386环境并设置platform=x86","windows下设置riscv64环境platform=riscv64","windows环境","within","work","write.","writecsr(satp,","writecsr(sstatus,","x","x86","x86_64","x:","xbook","xbuild改成了xmak","xnu","xxx","yum","yyi","z","{","{0x10,","{0x40,","|","|内容","|描述","}","};","~mask);","~sstatus_sie);","–","。","。由于有的时候只是为了暂时关闭中断,处理完后需要恢复中断的状态,于是则需要使用保存中断的状态和恢复中断的状态,即","一.","一、nxo","一、windows环境工具","一、开发环境搭建","一、描述","一、混合内核框架","一般情况下,第一个引导处理器(boot","三.","三、代码移植","三、内核功能","三、框架图","上下文切换","上下文切换是多线程实现的根基","上下文的切换分为上下文的初始化,从当前线程切换到下一个线程,直接切换到下一个线程。","上图为机器模式状态寄存器(rv32)","上图为机器模式状态寄存器(rv64)","下载到本地后,需要手动解压到一个目录下面,然后对工具链的bin路径配置环境变量。","下载后需要解压出来,然后将每一个目录配置到path系统环境变量中(最好是配置到环境变量的最前面,避免和其它系统已经存在的工具冲突),解压后您将会有:","下载工具链","下载链接:https://qemu.weilnetz.de/w64/","不同用法的地址。","不同的架构内核入口代码有差异,需要根据架构来实现","不带setup和clean的单元","不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。","不能使用内核的功能:","与大多数指令集相比,risc","个空格的方式。如果没有什么特殊意义,请在","个页面。在mmu映射和虚拟内存管理器中会使用到。","中使用","中断只需要对","中断延迟队列","中断延迟队列在某个驱动或者内核组件中会进行初始化。当产生中断的时候,在中断处理函数中,只对中断产生时的数据进行保存,不对中断产生时的数据进行处理,","中断延迟队列是一种延迟处理中断的机制,类似于","中断是可以全局打开和关闭的,打开后才会响应中断。除此之外,对于每一个具体的中断,都可以打开和关闭,在禁止了网卡中断后,即使打开了全局中断,也收不到网络数据包了。但是,异常是不可以屏蔽的,异常是来告诉内核出现一些问题了,需要根据具体的异常做处理。有的异常是不可以修复的,会导致系统死机,有的异常时可以修复的,比如页故障,可以拿来实现页面延迟映射,","中断是由处理器支持的一个临时打断当前执行流的功能,可分为设备中断和处理器异常。设备中断就是当网卡设备收到数据后会产生一个中断,打断处理器当前在处理的事情,去处理网络数据包。异常中断就是当处理器执行了一个不存在的指令或者访问了一个没有权限的内存地址,处理器就会中断当前的执行流,去对异常做一个处理,一般都是","中断机制中的中断下半部分,用来进行具体的中断处理。","中断的要求是快速地响应中断,并且是关闭了全局中断的,然后回到之前的工作。而延迟队列就是来完成这个工作的,产生了中断后,只进行最少的工作,","中断管理","中断管理接口对内核以及驱动都是至关重要的","中断管理框架,以及延迟中断队列机制","中断管理的实现是基于处理器的中断管理机制的,不同的架构具体实现机制可能有差别,但是在大体逻辑上都是一致的,因此可以抽象出一套统一的接口来供上层使用。","中断系统","中断表地址需要写入管理者模式的向量基址寄存器","中的","中这个频率是","中,使用了","中,内存对象被划分成3类,小(16byte","中,分为实时优先级和分时优先级。实时优先级是,只要有高的优先级,就不能运行低的优先级。而分时优先级是高低优先级线程都能得到运行,只是低优先级线程运行的时间更少而已。优先级","中,多了对当前线程的上下文的保存的工作,然后切换到下一个线程。","中,获取了栈的值后,就从栈中恢复寄存器上下文,然后调用","中,进行初始化,初始化完串口后,就能使用打印功能了。","中,需要构建的上下文参数是线程的入口","串口可以配置为调用","串口来输出是非常方便的。","串口输入输出","为","为了方便,我们将其他比较小的工具已经打包在一个工具包里面了,下载解压后,手动添加对应的工具到系统环境变量即可。","为选中的平台做初始化(仅仅第一次编译的时候需要),会为每一个平台下载平台特别需要的工具到平台中。","举例","举例:单元测试自身测试","之下,最后返回栈低。","之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入","之后又推出了包括","之间的这部分内存。简单的说就是对一段或者多段空闲的内存地址进行管理,可以进行分配与释放,让操作系统去使用。","二.","二、linux环境工具","二、nxo","二、原理","二、架构简述","二、目录框架","二、编译和运行","五、许可协议","产生时钟中断的时候,会去减少线程的时间片,时间片为0后,再去切换线程,这是属于线程被动切换。","仅仅编译源码","从","从代码阅读角度,建议每个大括号单独占用一行,而不是跟在语句的后面,例如:","代码提交日志规则commitrul","代码风格","以内进行数据存取。","以动词开头,使用第一人称现在时,比如change,而不是changed或chang","以及","以及参数","以及在做进程的堆分配和栈扩展的时候,都会使用到。","以及定时器的标志","以及线程运行时的参数","以及这个地址对应的内存大小,内存节点的属性,已经一些扩展的标志。","以线程为最小调度单元","以线程为最小调度单元的好处是可以很方便支持内核态以及用户态的多线程,并且层次框架也比较好,容易实现。","以避免重名,另外也可以根据文件名中是否包含多个词语而采用","休眠等待条件变量","优先级最低。","优先级最高,","优缺点","伙伴内存管理算法。为了便于页面的维护,将多个页面组成内存块,每个内存块都有2的方幂个页,方幂的指数被称为阶。在操作内存时,经常将这些内存块分成大小相等的两个块,分成的两个内存块被称为伙伴块,采用一位二进制数来表示它们的伙伴关系。当这个位为1,表示其中一块在使用;当这个位为0,表示两个页面块都空闲或者都在使用。系统根据该位为0或位为1来决定是否使用或者分配该页面块。系统每次分配和回收伙伴块时都要对它们的伙伴位跟1进行异或运算。所谓异或是指刚开始时,两个伙伴块都空闲,它们的伙伴位为0,如果其中一块被使用,异或后得1;如果另一块也被使用,异或后得0;如果前面一块回收了异或后得1;如果另一块也回收了异或后得0。","传入线程的名字","但是注意,此时只是创建了线程,还没有启动线程。","位","位。","位保存和恢复。","位做置位和清理的操作即可。","位的扩展,实现了","作为机器模式的固件,qemu_riscv64平台选择了","使用大写作为名字,单词间使用\"_\"隔开,例如:","使用方法","使用的时候需要注意,必须是通过","使用第一人称现在时,比如使用change而不是changed或changes。","使用菜单配置进行个性化剪裁。可以选择打开或者关闭某些功能,设置一些变量等。配置完成后需要按esc键退出,退出后会生成新的配置头文件。","使用这种方式的话,就非常方便移植到其它架构上。","例如在mm,thread,fs等。","例如采用如上的形式。","例如:","保存的,其格式如下:","保存,因为上下文切换的时候会模拟一次异常返回,返回后就到这个异常地址处执行。","保存,它是返回地址的意思,表示线程返回后就去执行该函数。","值得注意的是,在执行系统调用期间,需要打开中断,避免在系统调用时出现死循环,导致内核卡死。","值得注意的是,映射的时候,还会去对内存进行物理内存映射,只有映射后,进程才能访问该地址。","值,","值,其返回值范围为","值,就能获取到对应的内核服务功能,然后以函数指针的方式去调用执行即可。","做了一些兼容,使用起来比较简单。","入口地址使用","入口地址在链接脚本中写的是","关闭。","关闭文件","关闭目录","关闭设备","其中\"{\"和\"}\"需要单独使用一行。","其中,header","其他功能正在开发中,敬请期待!","其他工具","其他注意事项:","其他涉及到的工具:python","具体字段的解析如下:","内存屏障","内存屏障前的所有读写操作完成后才能执行屏障后的读写操作","内存是操作系统运行的根基,处理器从内存中取出指令来执行,在进入操作系统之前,一般会有引导器","内存管理","内存管理分为物理内存管理、虚拟内存管理、进程虚拟内存管理这三个大模块。","内存管理是操作系统中最为核心和重要的部分,这是由于很多其它模块的运行都需要内存的分配和释放。","内存管理最基本的接口就是分配和释放。为了能够支持分页机制,为页表映射提供内存的支持,将内存分为页面大小进行管理会比较合适。","内存管理模块","内存读/写屏障使用","内存释放堆内存的时候,需要传入内存对象地址,并返回释放的状态。","内核、苹果","内核一些功能的文档说明","内核中,休眠的单位是毫秒,休眠","内核入口","内核其余模块","内核分配堆内存的接口,需要传入待分配内存的大小,即可获取一个内存地址,如果为空,那么就是分配失败了。","内核初始化以及main核心","内核功能初始化","内核就只负责基础功能的支持,平台移植和驱动的移植,具体如何使用,可以根据用户态的","内核崩溃。","内核执行路径","内核是同一个数量级的。","内核源码目录","内核的定时器属于","内核的最小调度单位是线程,每个线程都有自己独立的栈,寄存器组,以及一些运行信息等。","内核的源码","内核虚拟内存管理之堆内存","内核虚拟堆内存管理,使用基于缓存的链表实现","内核,","内核,还有国产开源系统","内的物理地址,","内的物理地址,就能正确地进行数据存取,不然,则会产生页面故障。","内置了原子操作的函数,","内置函数","内置的原子操作即可。","再去对物理地址进行存取。比如虚拟地址是","写入文件","写入设备","函数","函数即可退出当前线程的运行。","函数后,就可以使用","函数来打印消息。","函数采用大驼峰命名风格,即每个单词的首字母都大写,如果单词是用的缩写,那么单词之间需要用\"_\"隔开,例如:","函数,相反关闭则是","分支","分配一个tl","分配内存","分配的内存对象。","创建一个延迟的中断工作,需要传入中断工作处理函数入口,以及函数执行时的参数,就可以创建一个延迟的工作对象。","创建了一个中断工作对象,就需要将其加入到某个延迟队列中,只需要传入队列和工作对象的地址即可。","创建互斥体","创建定时器后需要调用","创建定时器需要指定需要超时的时间","创建文件","创建条件变量","创建目录","创建线程","创建设备","创建进程","创建进程的时候,需要从文件系统上加载程序的代码和数据,然后再去执行进程的代码。","初始化互斥体","初始化完成后,会跳转到","初始化条件变量","初始化环境","初始化线程上下文是在栈上构建一个线程的上下文,当第一次切换到该线程的时候,寄存器就会使用栈中的值。","删除。","删除互斥体","删除文件","删除条件变量","删除目录","删除设备","到","前面有讲到关于全局中断的打开和关闭,全局中断的打开是","前,访问的地址都是物理地址,","功能","功能支持","加载平台的默认配置,会读取选中的平台的默认menuconfig配置到工作区中。","加速器","勘智kendryt","匹配的大括号单独占用一行,代码阅读起来就会有相应的层次而不会容易出现混淆的情况。空格建议在非函数方式的括号调用前留一个空格以和前面的进行区分,例如:","单元测试","单元测试表,填写要测试的单元","即可。","即定义的符号两侧采用","即直接访问的是内存的地址。比如内存只有","原子操作","原子操作用于对数据的加减运算不会被打断,以及一些原子级别的数据交换等","原子操作需要实现对数据的原子设置,获取,加法,减法,数据交换等。由于","原理","去分配内存。","去实现,而获取操作可以直接通过","去终止线程,传入线程指针即可。","去释放内存。","参考socket套接字接口设计","双核","双硬件512点16位复数fft","双精度","变量采用小驼峰命名风格,即首字母小写,后续单词首字母大写,例如:","另外拆分和合并涉及到","只编译","只能通过系统调用执行内核提供好的服务。在","只需要传入定时器对象地址即可。","只需要实现","可以直接在终端中输入命令安装:","可以省略。","可以获取页表的地址。","可以运行用户态的程序","可以通过串口输出调试,也可以通过串口输入按键","可以通过虚拟地址找到其映射的物理地址。","可编程","号。","同时运行。比如你一边听歌,一边写代码,其实就是音乐播放器和代码编辑器这两个任务在快速切换而形成的效果。","后进行分行,并在下一行都采用缩进的方式,例如:","后,访问的地址会发生变化。因此,为了能够保证访问内核的时候是正确的,在映射","后,访问的地址就是虚拟地址了。此时访问的地址,会通过","启动后,会进行一些初始化,然后参加到调度工作中。而调度队列的实现就需要依赖于原子操作来保证对公共队列访问的正确性。","启动它,才可以在超时后调用回调函数。","启动流程","启动进程的时候,需要传入进程的名字","和","和加入延迟队列相反,有离开延迟队列,那么和加入的参数一样,只是意思相反而已。","和服务,应用程序去构建应用。","和禁用","和线程结束时执行的函数","和裸机开发种,很多时候都是直接使用机器模式。","唤醒休眠等待条件的全部线程","唤醒休眠等待条件的单个线程","唤醒后,应用核会进入","唤醒应用核只需要调用","唯一的例外是","四.","四、平台支持","四、接口","四、移植总结","因此","图形系统","在","在menuconfig中,打开单元测试功能,选取需要测试的单元,退出保存。","在mmu的基础上对内核和进程进行隔离","在nxos中使用menuconfig","在上下文切换的时候,需要注意的是,传入的是线程的栈的地址,可以从地址中取出线程当前栈的值。","在中断中,使能","在使用函数指针类型定义的时候,需要使用handler后缀,来表示是一个处理函数。","在使用页面的过程中,可能会需要把一个地砖转换成其对应的页面结构,来访问该结构里面的成员,这在虚拟内存管理器","在做时钟定时器初始化的时候,需要先关闭","在内核中,涉及到多任务的是线程管理,调度算法,多核调度。","在函数","在创建一个线程后,可以运行该线程,可以让线程去完成一些独立的工作。内核中的","在初始化的时候,会创建一个","在命令行中输入命令即可开始测试:","在完成内核的初始化后,会创建","在定时器还没开始运行的时候,可以销毁一个定时器,调用","在嵌入式领域,rtos的实时性是非常重要的。简单来说,就是一个优先级最高的任务在执行的时候,低优先级的任务得不到执行,如果有更高","在平台初始化","在根目录中,打开一个终端,在配置了环境变量之后,就可以使用配置了。","在每个源文件文件头上,应该包括相应的版权信息,文件描述,chang","在现代操作系统中,分为了内核态和用户态。内核态是内核程序本身,可以对设备资源进行管理核控制。而用户态只能够去调用内核提供的服务,不能够直接对资源进行访问。","在现代操作系统中,多任务已成为标配,也就是一个处理器可以“同时”执行多个任务,这样可以最大化利用处理器,并且支持更多的功能。","在线程创建后,如果需要把线程绑定到某个处理器,则可以设置处理器亲和性,使得该线程被绑定在指定的线程上运行。","在线程结构体中,有链表,基础信息,栈信息,调度信息,以及内核的资源。","在获取nxos的系统源码后,您需要下载编译nxos的工具链(点我跳转),下载好后,进行环境变量的配置。","在解析","在设备开机后,处理器会跳到一个地址去执行代码,一般都是固定的,然后再从这些固定代码跳转到程序员自己编写的程序。程序员自己写的程序就是裸机,rtos或者操作系统。在nxos中,不同的平台会有不同的执行地址,所以我们需要指定内核程序的入口地址,在链接的时候指定一个标签","在调试过程中会遇到很多问题,需要耐心地调试。","在进程的运行过程中也会涉及到堆的分配,栈的扩展等。","在释放页面的时候,需要引用计数为0的时候,才会去正在释放这个页面。","地址空间通过映射和解除映射来进行管理,类似于分配和释放的操作。","地址翻译模式","基于","基于ticks实现的定时器,基于线性链表实现","填充内存","复制内存","多核中很重要的一个机制就是自旋锁,当需要访问公共资源的时候,就需要自旋锁来上锁,才能保证多个核同时访问数据的正确性。自旋锁依赖于原子操作,而原子操作又需要硬件做支持。","多核的实现是需要硬件支持的,操作系统内核只是根据硬件做一定的抽象,做好多核间的同步与互斥。","多核调度","多核,多架构,多平台。","头文件","如","如果type为feat和fix,则该","如果你的修改影响了不止一个scope,你可以使用*代替。","如果函数参数为空,必须使用void作为入口函数,例如:","如果只是需要运行起来,不需要线程环境,那么就只需要","如果当前定时器的值超过了超时定时器寄存器的值的时候,就会触发一个中断。注意:前提是打开了定时器中断。","如果您在文档中发现了问题或者想参与文档的编写,可以在文档仓库提出","如果支持多核,就可以在这个时候去唤醒其他核。不支持的话返回","如果是一个静态对象,不需要创建,那么可以直接调用初始化,并传入该对象的地址即可,参数同上。","如果是对静态的定时器进行初始化,只需要调用","如果需要在类型定义中使用指针,则需要使用ptr后缀或者其他可以表达意思的单词指明。","安全管理","完成配置后,就可以进行编译了,编译的时候就会根据最新的配置进行编译。","定义一个单元测试","定时器","定时器支持","定时器时钟","定时器是基于系统时钟实现的,精度比较低(1ms~10ms),可以用于线程的休眠,以及对于休眠精度不高的场景。","实现","实现的时候有使用到。","实现输出,也可以通过自己操作寄存器实现。在早期,调用","实现,","寄存器","寄存器保存。","寄存器的","寄存器,访问的地址都是新的","对于","对于中内存对象,就是使用一个链表来管理。","对于大内存对象,就直接从物理内存管理器分配和释放,不使用链表管理。","对于小内存对象,会划分得比较细,如:16,","对于应用程序来说,可以使用","对于开发者而言,我们已经做好了配置,你只需要知道如何去使用即可。","对处理器多核的启动和初始化","对象即可,传入工作对象的地址即可。","对进程的内存管理,是对它的虚拟地址进行管理。由于会有多个进程的存在,所以会对每个进程的虚拟地址","对齐的方式,","将肯定出现在","尝试获取互斥体","就会发起一次切换。这样,在人看来,就是多个任务在","就会将他们全部处理,调用定时器超时处理函数,然后更新最近超时定时器的ticks。","就可以升级为进程。除此之外,还会有一些其它进程独有的资源。","就可以启动线程,线程就可以开始运行了。","就可以让出执行权。值得注意的是,本线程不会阻塞,会在下一个时机再次被调度。","就注册了串口中断,可以接受输入。","尽管伙伴内存算法在内存碎片问题上已经做的相当出色,但是该算法中,一个很小的块往往会阻碍一个大块的合并,一个系统中,对内存块的分配,大小是随机的,一片内存中仅一个小的内存块没有释放,旁边两个大的就不能合并。","属于分时优先级,优先级","属于实时优先级。在使用过程中,通常使用宏,而不是直接使用数字。优先级宏如下:","工作队列的优先级如下,其中","工具链","带clean的单元","带setup和clean的单元","带setup的单元","常用的功能组件,小工具,log显示以及字符串操作等","平台","平台初始化","平台开发者实现)","平台支持,存放具体的平台,比如pc平台或者一个开发板","平台框架","平台配置文件,配置了支持的平台","年","年推出的","并传入定时器的地址即可。","应用核只需要设置中断表地址,初始化自己的中断控制器即可。","应该说明代码变动的动机,以及与以前行为的对比。","延迟队列","建议在括号前留出一个空格(涉及的包括","开始,intel","开源协议,可以自由的复制和修改代码,只需要保留版权说明即可,无潜在的商业风险。","引导核初始化完成后,会初始化内核,在内核初始化完成后,就会进入启动应用核的阶段","当","当你要使用某个平台的配置时,需要通过设置默认配置来进行选择。","当使用宏条件#if,","当函数参数过多的时候,一行写不下,那么就需要把每个参数写成一行。","当前","当前实现的线程结构体如下:","当前的进程。","当处理器调用","当宏需要使用多行的时候,则使用空格+\"\\\"的形式进行换行,例如:","当开启","当我们添加代码要提交到git仓库中时,我们需要统一下规范,这样不会显得整个项目乱糟糟的,当然是需要花点时间来学习和改变的。每次提交的代码尽量短小,涉及范围不要太广,专注于某个领域。","当时钟中断产生的时候,会改变ticks的值,与此同时也会去检测是否有定时器超时,如果有定时器超时,则会去处理定时器超时函数。","当有一个定时器的ticks到达了最近超时定时器的ticks值的时候,就去检测定时器链表,如果有多个同样超时的定时器,","当线程需要休眠的时候,就需要传入休眠的时间,","当超时后,就会产生一个中断,于是就设置下一个中断产生时的超时值。","当需要停止定时器的时候,调用","当需要注销某个中断的时候,只需要传入中断号以及注册时的数据即可。相当于解除了中断函数的绑定。","彩色日志输出","影响的范围,比如文件系统,进程管理,内存管理等等,视项目不同而不同。","很多情况下,需要获取当前线程,可以使用","快速体验","快速入门","总结","恢复线程","我们以简洁、高效、稳定为核心,用比较简洁且高效的方式去实现一些功能,去掉一些复杂,冗杂的功能,化繁为简。","我们是使用基于缓存的链表来管理堆,这种方式的原理是,在释放一个页面后,会放到一个链表上面,下次分配的时候,直接从链表获取内存对象即可。","我们采用的是世界上最流行的qemu虚拟机,各种平台都有支持,刚好有我们需要的版本。","我们需要管理的内存就是","我们需要管理的物理内存是除了保留地址和操作系统占用以外的空闲的内存,这部分内存就是需要在操作系统运行的过程中进行静态/动态分配的内存。","或者提交","截至2017年5月,risc","所以需要计算出产生一次中断,需要间隔多少个tick即可。","所以,4kb也就延续到64位系统了。所以,我们使用4kb作为一个页面的大小。","所以,分配和释放的基础单位就是页面。通常来说,页面大小是4kb,也可以更大,但是由于4kb在32位操作系统中可以很好地对4gb内存进行映射,","所以,需要在内核中实现同样的功能,在","所有需要对接的接口都存放在","打开文件","打开目录","打开设备","执行。","执行用户态程序","执行结束后,会从机器模式跳转到位于监护者模式的内核中,并且寄存器","执行,那么入口程序的移植就完成了。","把内核加载到内核中,然后跳转进去执行。","拿到1个线程执行,避免内核跑飞。","挂起线程","指令去实现。内存指令屏障使用","指令实现。","指令获取。","指令集","指定了虚拟地址需要映射到的物理地址,映射的时候,就把虚拟地址映射到该物理地址(未来做共享内存的时候会用到)","指定的地址就行了。使用","接口","控制的,置为1则表示使能中断,置为0则表示禁用中断。","推荐的一个不错的终端(非必须)下载后安装即可。","描述","提交规则","提供的唤醒核心功能即可。","撤销上一次的","操作系统更多运行在","支持","支持gdb调试内核","支持vf","支持中断管理","支持串口输入输出","支持定时器","支持特权保护的处理器架构中,都提供了模式切换的指令。至少需要有两个特权级,一个用于内核态,特权更高,可以直接访问硬件。另外一个用于用户态,","支持线程绑定核,处理器均衡负载","支持虚拟地址","支持进程","支持配置日志输出时间,格式,名称,颜色,消息等级等","改变了build工具","整体框架","文件名称也是使用首字母大写,如果有缩写,可以全部都大写。文件命名尽量不要使用通用化、使用频率高的名称。例如:mutexlock.c","文件系统","文件系统框架以及各种文件系统支持","文件:src/arch/riscv64/kernel/context.","文件:src/arch/riscv64/kernel/sbi_entry.","文件:src/arch/riscv64/port/atomic.c","文件:src/arch/riscv64/port/barrier.c","文件:src/arch/riscv64/port/clock.c","文件:src/arch/riscv64/port/context.c","文件:src/arch/riscv64/port/interrupt.c","文件:src/arch/riscv64/port/mmu.c","文件:src/arch/riscv64/port/process.c","文件:src/arch/riscv64/port/smp.c","文件:src/platform/qemu_riscv64/drivers/direct_uart.c","文件:src/platform/qemu_riscv64/hal/init.c","文档版本","新架构的移植,都是按照一套统一的接口去实现的。","时间模块,时钟和定时器","时间管理","时间长度后,就会被唤醒,继续往后执行。","时,mmu","映射内存","映射某段空间的时候,会先检测地址是否被使用,如果已经被使用了,就不能直接使用这块地址。没有被使用,就可以在地址空间中添加一个","映射的物理内存。","映射的虚拟地址。","映射虚拟地址,但是会指定物理地址,就不用自动分配物理地址了。","映射表,切换进程的时候需要修改硬件","是一个分时多进程/多线程(也支持实时优先级),支持","是使能","是在该延迟中断工作初始化的时候设定的。","是必需的,bodi","是映射虚拟地址,会自动分配物理地址并映射页面。","是虚拟地址转换成为物理地址的硬件机制。在开启","暂不设计,等内核基本功能完成后再设计","暂不需要","更新配置文件","更贴近,也不用管太多机器模式需要做的事情。通常,","最先超时的定时器会插入到链表头,超时时间比较久的定时器会被加入到链表的末尾。","最后,如果想要保存当前的配置到选中的平台,则需要在执行save操作才行。操作完后,你所修改的配置就保存了,当切换到其它平台后,这个配置依然存在,只需要重复第一步,更新一下配置即可。","最后,当有中断产生的时候,就可以去激活中断工作,那么则需要调用","最小的单元测试","最开始是可以不开启","最开始,内核是没有线程概念的,处理器只有一个执行流。","最精简框架:","有一个例外,就是如果遇到循环函数,里面不会执行代码的情况,括号就直接写在右边。","有一个定时器链表来记录所有等待超时的定时器,值得注意的是,它们是通过线性的方式插入到链表中的。","有两个注意点:","有创建工作,那么就有销毁工作,只需要传入工作对象的地址即可。","有必要的时候,也会在需要物理内存的时候,直接调用该分配。","有时候需要终止某个线程的运行,就需要使用","有的情况下,当一个页面被多次使用的时候,需要去增加其引用计数,来避免被释放掉。","服务器下载(较慢)","本文档存放了工具链的下载地址,搭建编译环境的时候需要下载工具链后再进行编译。","本文档存放的是用户程序的编程接口的设计说明。","本文档将带您从入门到劝退。","本文档是关于nxos的代码编程风格的描述。开发者必须遵守本文档规范进行开发。nxos系统内核使用c语言作为主要开发语言,因此以下规则仅仅适用于c语言代码。","机器模式用于固件程序代码执行,例如","来动态地分配内存,那么,对于内核来说,也需要这样的功能。","来处理工作","来管理一段连续的物理内存。需要制定物理内存地址和物理内存大小。","来进行超时。","构建过程或辅助工具的变动,比如把grub改成了uefi。","枚举结构名也是用大驼峰,枚举成员使用全大写,单词间用\"_\"隔开。","枢纽系统","架构","架构中,内存全(读和写)屏障使用","架构中,有3个特权级(machine,","架构中,有4个特权级(ring0,","架构相关代码,x86,","架构进行","架构首度出现在","标志有多重,表明不同类型的定时器。","格式的可执行程序的时候,需要映射一段内存来储存代码和数据,就会用到映射功能。","格式(不影响代码运行的变动)","框架","检查文件结束","模式去调用内核提供的服务。","模式的定时器中断,然后再设置超时定时器的值。","模式(因为线程的切换是在内核中完成的)。","模式,进入内核。内核只需要链接到","模式,降低开发的复杂度。","欢迎来到nxos内核!nxos是一个跨平台的简洁的高性能,高稳定性的操作系统内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。","此时,处理器就进入线程环境,开启线程调度生涯。","步骤拆解","每个线程执行一段时间后,就会切换到其它线程执行。这个切换可能是主动的,也可能是被动的。线程在阻塞(block)和让出(yield)的时候是属于线程主动发起切换。在","每个线程都有一个其对应的线程结构体,使用其来记录线程的信息,比如线程链表,线程状态,线程栈等基础信息。","每次提交,commit","永远别忘了第2行是空行","没有对象才重新从物理内存管理器中分配,有的话就直接从链表上面摘取。","没有资源即可。","注册了中断后,并不能产生中断,还需要解除中断的屏蔽(unmask),相当于打开中断。除此之外,如果不希望产生该中断,则需要屏蔽某个中断(mask),相当于关闭中断。","注意,\"//\"注释只能放到右边。","测试","测试模块,测试框架和测试代码","清空内存","源代码的注释不应该过多,更多的说明应该是代码做了什么,仅当个别关键点才需要一些相应提示性的注释以解释一段复杂的算法它是如何工作的。对语句的注释只能写在它的上方或右方,其他位置都是非法的。","然后再初始化中断,初始化物理内存管理。","然后激活中断队列工作,然后就返回,完成了本次中断。等到没有中断的时候,再去从延迟队列中获取一个工作来处理其对应的中断下半部分处理工作。","片上","物理内存分配/释放管理之伙伴算法(buddy)","物理内存管理","物理内存管理,使用伙伴算法实现。","特权模式","特权级寄存器的命名规则,特权模式+寄存器名字,表示只能在该特权级使用。比如status寄存器,在机器模式有mstatus,监管模式有sstatus。","用于分发系统调用,不同的架构传参数的方式会有区别,因此需要特殊处理。","用于在进程切换的时候切换页表。","用于在进程创建的时候,创建进程的页表","用于在进程退出的时候释放页表。","用于获取内核的页表。","用于说明","用于进程从内核跳到用户态执行。","用到的xbuild脚本和kconfig脚本等","用户态驱动框架","用户模式就是应用程序执行的模式,需要通过系统调用进入到","由于","由于中断数量会比较多,因此,都会有一个中断表来注册中断。然后由一个寄存器或者多个寄存器来记录该表的地址。产生中断的时候会去查表,根据具体的中断号去找对应的中断处理函数,简单来说就是去调用中断的回调函数。","由于中断是具有一定优先级的,有的中断需要先处理,而有的中断则可以后处理,因此就有了多个中断队列,每个队列的优先级是不同的。至于需要加入哪种队列,","由于任务数量众多,如何管理它们,是要做到公平运行还是谁先谁后,这和应用场景密切相关。","由于切换了","由于我们想实现1秒钟产生","由于线程的切换速度非常快,一般在","百度网盘链接,提取码:nxo","的","的任务被唤醒,就得立即切换过去执行。","的内存范围,但是,只要在访问前映射","的初期目标是运行在一些高性能的嵌入式设备上,比如手机终端,游戏掌机等。后期目标是能够作为服务器使用,甚至是桌面操作系统使用。","的大小。","的好处是,可以直接使用串口的输入输出,很方便调试,不用自己从机器模式跳转到","的封装。","的时候,内核也能够正常运行,新进程的地址访问也不会出错。","的时候,就去获取一个线程来运行。","的时候,每个进程都会把部分","的现代操作系统,它和","的类别,只允许使用下面7个标识。","的设置,","的详细描述,可以分成多行。下面是一个范例。","的,最开始不需要跑进程,","监管者模式的页表的地址是由地址转换寄存器","监管者模式,这样可以和","目前支持的是mmu","目录","目录下面,新的平台只需要支持这些接口的功能即可。","目录名称采用首字母大写的形式,子目录应该是属于父目录的内容,需要有相关性。例如:drivers/disk/","目标","目的的简短描述,不超过50个字符。","直接内存存取控制器","相信看到最后,您已经对我们的编程规范有了一定的了解,那么就开始您的nxos开发之旅吧!","着重点:参数,返回值,功能。","硬件回填根","硬件时钟会按照一定的频率去增长当前定时器寄存器的值,在","神经网络处理器(kpu)","移动内存","移植一个新的平台需要实现如下内容:","移植过程是需要慢慢琢磨,长期积累,才能实现更好的代码。","究竟是何物?mmu","第一个字母小写","第一次执行时,为平台做初始化","第一次编译一个新的平台的时候需要clean一下","等hub","等于","等内核基础功能完成后实现","等待线程退出","等待进程退出","等机制。","等,但是在","简介","算法中有一定的浪费现象,伙伴算法是按2的幂次方大小进行分配内存块,当然这样做是有原因的,即为了避免把大的内存块拆的太碎,更重要的是使分配和释放过程迅速。但是他也带来了不利的一面,如果所需内存大小不是2的幂次方,就会有部分页面浪费。有时还很严重。比如原来是1024个块,申请了16个块,再申请600个块就申请不到了,因为已经被分割了。","算法中,每个小的对象都有一个对应的链表来管理内存对象,分配的时候先去链表上获取对象,","算法的具体实现不进行讲解,除非你需要来优化这部分代码,才需要了解到,如果只是去使用,那么就只需要熟悉接口即可。","系统中分配的页面。","系统调用","系统调用支持","系统调用是指用户态程序通过特殊的指令陷入到内核态,执行内核态提供的服务程序,然后再返回到用户态。","系统调用的实现,是基于特权级切换指令实现的,一般都是中断或者异常。用户态通过调用这些指令,就会产生一个中断或者异常,处理器会去中断表中查找系统调用指令对应的处理函数,然后就根据系统调用的","系统调用表是在内核固定下来的,不同的架构只要根据固定的","索引文件","线程","线程上下文","线程创建好后,需要启动线程,调用","线程完成了自己的工作后,可以主动退出运行,调用","线程是具有优先级的,优先级高的线程先运行,优先级低的线程后运行。在","线程有一个让出当前执行的操作,就是暂时不允许,希望把运行机会让给其它线程,做一个\"好人\",此时调用","线程栈使用","线程的创建是","线程等都有自己独立的工作任务。","线程管理","线程,","线程,来保证处理器至少能够","终止线程","终止进程","结尾不加句号(.)","结束时执行的函数使用","结构体命名使用大驼峰风格,结构体成员使用小驼峰命名,如果成员是函数指针,则使用大驼峰。","结构体的类型定义是为了消除struct关键字,可以和结构体名一致。","编程风格","编译器工具链","编译并运行","编译源码并运行","编译源码并运行,默认使用qemu虚拟机模拟运行,按下小写的ctrl+x后再按下a则可以退出qemu运行。","编译运行","缩进请采用","网络系统","而内核的任务调度属于","而在桌面和服务器领域,需要保证任务的公平性,即使优先级比较低,也要能够得到运行。","而是处理中断延迟工作,然后就直接返回。等到响应了该中断之后,再去调用延迟队列中的工作。","自从进入21世纪,处理器的性能就有了瓶颈,不再迅猛增长。此时就有人提出多个处理器一起工作的方式,来弥补处理器性能的问题。","至于在","获取tls的值","获取互斥体","获取当前的时间","获取文件偏移","获取系统运行的时间","获取线程id","获取自己的线程指针。","获取进程id","获取默认配置","菜单配置","虚拟内存管理","虚拟化模式用于使用虚拟化的场景,目前还在开发阶段。","虚拟地址在映射的时候,需要指定对应的地址空间,然后就是传入一个想要映射的地址,如果为0,那么就会自动分配一个地址。","虚拟地址的实现和访问,mmu的切换,映射和解除页面映射","虚拟平台中,内存布局如下:","虚拟平台运行","虚拟文件系统,目前支持cpio只读文件系统实现","虚拟机","表示只超时一次,","表示周期性地按照","解压到工具目录下面","解压到路径:nxo","解除地址映射的时候,需要制定虚拟地址和内存大小,如果在已经映射的内存空间中匹配到vmnode,就可以将其解除映射,并释放其","解除地址映射,解除后就不能访问了。","解除映射内存","解除映射的时候,会先判断该地址是否映射,已经映射才能解除。会先解除物理内存映射,然后再把","计时器时钟","计时器时钟用于驱动多线程的切换和内核定时器","记录了当前处理器核心的","记录:","设备管理","设置tls的值","设置临时环境变量,在目录中有脚本来设置,直接运行即可。windows使用bat,linux使用sh。","设置了线程的入口地址,那么","设置当前的时间","设置环境变量","设置页表的地址到硬件寄存器中,当访问虚拟地址的时候,会根据设置的页表进行地址转换。","该代码简单地设置了栈就进入了","该操作只是多了对","该项目2010年始于加州大学伯克利分校,但许多贡献者是该大学以外的志愿者和行业工作者。","语句),而运算表达式中,运算符与字符串间留一个空格。另外,不要在括号的表达式两侧留空格,例如:","语句与","语句采用","语句,switch","请使用英文做为注释,使用中文注释将意味着在编写代码时需要来回不停的切换中英文输入法从而打断编写代码的思路。并且使用英文注释也能够比较好的与中国以外的技术者进行交流。除非必须引用原来的文本的时候,就可以写中文。","读取文件","读取目录","读取设备","调度模块,线程和smp的内容,以及同步机制","调度管理","调用平台的初始化代码","调试完成后,需要将配置信息和文件保存到对应平台中,使得配置永久生效。","转换成那","较多的链表和位图操作,开销还是比较大的。","输入","运行方法","返回。","返回后就可以让","还有一个很重要的地方就是对状态寄存器","还有值得注意的是,获取处理器的索引","还有重要的优先级","还能自动处理依赖关系。","这3个接口都是对","这个符号,因此会进入","这么做的目的是为了避免用户恶意程序对系统的损坏,对设备进行恶意操作。于是用户态核与内核态之间的接口就出现了,它就是系统调用。","这是操作需要通过","这样的话,内核也就占用了一部分的内存,那么我们应该去管理哪部分内存呢?","这里只需要调用","进入nxos源码,打开终端。","进入一个单元测试时执行","进入到nxos目录中,在目录中打开一个终端。","进入单元时执行","进程在启动前,需要加载对应的代码、数据到内存中,然后才开始执行。","进程地址空间(vmspace)就是用来管理进程的虚拟地址的。由于不同地址会有不同的用途,于是会有虚拟地址节点(vmnode)来管理","进程地址空间的管理使用链表来维护每一个节点,节点是根据虚拟地址的值来进行线性排序,低地址在链表的开头,高地址在链表的结尾。","进程执行独立的程序,程序运行出故障也不会导致系统出现故障。因此可以把一些服务程序放到用户态作为进程执行,当服务出错的时候不会导致","进程执行结束的时候,需要退出,并传入退出时候的状态码。","进程是具有独立的线性地址空间的线程集合,是线程的容器。在现代操作系统中,硬件的","进程的实现依赖于","进程管理","进程管理相关操作是实现进程的必要条件","进程管理,系统调用相关内容","进程虚拟内存管理之虚拟空间","进程虚拟内存管理,基于线性链表实现","进程间通信","进行内核服务的分发,去调用对应的内核函数。","进行独立的管理,于是进程地址空间就出现了。","进行菜单配置,就可以选择你想要的功能或者进行某些功能的配置。配置完后,可以根据菜单的提示进行退出或者保存。","连接起来。例如:","退出","退出k210的运行","退出qemu","退出一个单元测试时执行","退出单元时执行","退出线程","退出进程","选择了","选择最新版本下载即可。下载后,安装到一个路径,再把路径配置到path系统环境变量中即可。","通常,内核会使用","通常,都是在启动后尽快地实现串口调试,以便能够知道自己跑到什么地方了。","通过单元测试和集成测试","通过对","那么","部分是对本次","都会被映射成索引,相当于是处理器","都包括两个部分:header和body。","配置环境变量时的路径:nxo","配置环境并运行","采取架构和平台分离的措施,其原因在于,一个架构可能有多个平台,分离后可以服用架构的代码。","采用混合内核框架,也就是结合宏内核和微内核。这样的系统有","释放一个tl","释放互斥体","释放内存","释放的时候,也是先释放到链表上面,当链表超出了最大链表长度阈值的时候,才会释放到物理内存分配器中。","里面分配","里面释放某个地址指针,该指针必须是从","里面,它们是","重置读取位置","针对","针对函数单元进行测试,测试函数的基本功能,稳定性,健壮性,覆盖率。","销毁一个线程是只需要传入线程地址即可。注意,销毁不代表把线程从运行队列中摘除,只是释放线程占用的内存。","阵列","除此之外就是对某个中断的使能","除此之外,还提供了一个获取某个内存对象大小的功能,传入地址即可获取内存对象所在的","除此之外,还提供了对当前中断状态保存和恢复的操作","除此之外,还有一个最近超时的时间变量,来记录下一个即将超时的定时器,可以用它来检测是否需要去检测定时器链表。","需要注册某个中断的时候,需要传入中断号,绑定中断处理函数,设置中断的参数数据,设置中断的名字。","需要能够访问用户态的内存,需要在返回后开启中断以及设置为","音频处理器(apu)","页表项映射到内核,并设置权限为内核才能访问,这样就能实现切换","页面分配函数,可以从一个","页面释放函数,从一个","项目目录","预留一个上下文空间后,设置参数为","驱动程序,磁盘,输入输出设备等","(一般在100~1000)次定时器中断的效果,","(以上摘自百度百科)","(内存管理单元)为虚拟内存的实现奠定基础。",",产生中断后,就去该寄存器保存的中断向量表地址找中断号对应的中断服务。",",以及中断处理完后的应答处理",",以及将这些数据构建在栈顶",",以及进程标志",",其内核的入口地址为",",及时调度的精度低一点也没有太大影响。",",可以根据寄存器的值来判断处理器",",因为risc",",处理函数参数",",并复制内核的页表项。",",所有地址都变成虚拟地址了。",",显然超过了",",来实现进程的虚拟地址空间。每个进程都有一个",",线程处理函数",",要加载程序的路径",",超时后调用的处理函数",",这样才能保证时间的精度。",",那么就切换到线程里面去了。",",那么访问的地址就只能是在"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"NXOS 简介","keywords":"","body":"文档版本 v0.1 基于 NXOS develop 分支\n如果您在文档中发现了问题或者想参与文档的编写,可以在文档仓库提出 issuse 或者提交 pr :\nnxos-doc\n一、NXOS 简介\nNXOS是Next XBook Operating System的意思,是一个跨平台的简洁、高性能、高稳定性的支持多核的混合内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。\n我们以简洁、高效、稳定为核心,用比较简洁且高效的方式去实现一些功能,去掉一些复杂,冗杂的功能,化繁为简。\nNXOS 是一个分时多进程/多线程(也支持实时优先级),支持 MMU 的现代操作系统,它和 Linux 内核, WindowsNT 内核是同一个数量级的。\nNXOS采用混合内核架构,即宏内核和微内核相结合。优势是减小内核代码,增加功能可扩展性,功能模块是独立的进程,添加和删除模块就是进程的创建和关闭。\n二、NXOS 目标\nNXOS 的初期目标是运行在一些高性能的嵌入式设备上,比如手机终端,游戏掌机等。后期目标是能够作为服务器使用,甚至是桌面操作系统使用。\n内核就只负责基础功能的支持,平台移植和驱动的移植,具体如何使用,可以根据用户态的 sdk 和服务,应用程序去构建应用。\n三、内核功能\nNXOS 支持 SMP 多核,多架构,多平台。\n\n\n\n功能\n描述\n\n\n\n\n物理内存管理\nbuddy伙伴算法\n\n\n虚拟内存管理\nheapCache算法\n\n\n线程管理\n以线程为最小调度单元\n\n\nSMP多核调度\n支持线程绑定核,处理器均衡负载\n\n\n支持中断管理\n中断管理框架,以及延迟中断队列机制\n\n\n支持定时器\n基于ticks实现的定时器,基于线性链表实现\n\n\n支持虚拟地址\n在MMU的基础上对内核和进程进行隔离\n\n\n支持进程\n可以运行用户态的程序\n\n\n支持串口输入输出\n可以通过串口输出调试,也可以通过串口输入按键\n\n\n支持vfs\n虚拟文件系统,目前支持cpio只读文件系统实现\n\n\n支持gdb调试内核\nqemu平台支持gdb调试,并搭配了vscode图形化调试\n\n\n彩色日志输出\n支持配置日志输出时间,格式,名称,颜色,消息等级等\n\n\n其他功能正在开发中,敬请期待!\n...\n\n\n\n四、平台支持\n\n\n\nARCH\nPLATFORM\nSTATUS\n\n\n\n\nx86\ni386\nDOING\n\n\nriscv64\nqemu\nDOING\n\n\nriscv64\nk210\nDOING\n\n\nx86_64\namd64\nTODO\n\n\narm64\nqemu\nTODO\n\n\narm32\nqemu\nTODO\n\n\nlongarch\nqemu\nTODO\n\n\n\n五、许可协议\nNXOS采用 Apache-2.0 开源协议,可以自由的复制和修改代码,只需要保留版权说明即可,无潜在的商业风险。\n"},"tutorial/quick-start.html":{"url":"tutorial/quick-start.html","title":"虚拟平台运行","keywords":"","body":"快速入门\n欢迎来到NXOS内核!NXOS是一个跨平台的简洁的高性能,高稳定性的操作系统内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。\n本文档将带您从入门到劝退。\n一、开发环境搭建\n1. 编译器工具链\n在获取NXOS的系统源码后,您需要下载编译NXOS的工具链(点我跳转),下载好后,进行环境变量的配置。\n2. 虚拟机\n我们采用的是世界上最流行的QEMU虚拟机,各种平台都有支持,刚好有我们需要的版本。\na. Windows环境\n下载链接:https://qemu.weilnetz.de/w64/ \n选择最新版本下载即可。下载后,安装到一个路径,再把路径配置到Path系统环境变量中即可。\nb. Linux环境\n可以直接在终端中输入命令安装:\n# Ubuntu/Kali Linux: \nsudo apt-get install qemu-system-i386\nsudo apt-get install qemu-system-riscv64\n# Red hat/Fedora/Centos: \nsudo yum install qemu-system-i386\nsudo yum install qemu-system-riscv64\n\n3. 其他工具\n其他涉及到的工具:python mtools make git genisoimage mkfs grub2\na. Windows环境\n(cmder) 推荐的一个不错的终端(非必须)下载后安装即可。\n(python)下载后安装即可。\n(git)下载后安装即可。\n为了方便,我们将其他比较小的工具已经打包在一个工具包里面了,下载解压后,手动添加对应的工具到系统环境变量即可。\nnxos-windows-tools服务器下载(速度较慢,请耐心等待)\n下载后需要解压出来,然后将每一个目录配置到Path系统环境变量中(最好是配置到环境变量的最前面,避免和其它系统已经存在的工具冲突),解压后您将会有:\nnxos-windows-tools/\nnxos-windows-tools/genisoimage\nnxos-windows-tools/grub-2.04\nnxos-windows-tools/mkfs\nnxos-windows-tools/mtools\nb. Linux环境\n可以直接在终端中输入命令安装:\n# Ubuntu/Kali Linux: \nsudo apt-get install python mtools make git genisoimage mkfs grub2 truncate\n# Red hat/Fedora/Centos: \nsudo yum install python mtools make git genisoimage mkfs grub2 truncate\n\n二、编译和运行\n进入到NXOS目录中,在目录中打开一个终端。\n1. 快速体验\n# 1. 设置环境变量\nsetup.bat # Windows环境\nsource setup.sh # linux环境\n\n# 2. 配置环境并运行\nmake prepare && make defconfig && make run\n\n\n输入 Ctrl+a x 退出 QEMU\n输入 Ctrl+d 退出 GDB\n\n2. 步骤拆解\n\n设置临时环境变量,在目录中有脚本来设置,直接运行即可。windows使用bat,linux使用sh。\n\n# Windows下设置i386环境并设置PLATFORM=x86-i386\nsetup.bat\n# Windows下设置riscv64环境PLATFORM=riscv64-qemu_riscv64\nsetup.bat riscv64-qemu_riscv64\n\n# Linux下设置i386环境并设置PLATFORM=x86-i386\nsource setup.sh\n# Linux下设置riscv64环境PLATFORM=riscv64-qemu_riscv64\nsource setup.sh riscv64-qemu_riscv64\n\n\n为选中的平台做初始化(仅仅第一次编译的时候需要),会为每一个平台下载平台特别需要的工具到平台中。\n\n# 第一次执行时,为平台做初始化\nmake prepare\n\n\n加载平台的默认配置,会读取选中的平台的默认menuconfig配置到工作区中。\n\nmake defconfig\n\n\n使用菜单配置进行个性化剪裁。可以选择打开或者关闭某些功能,设置一些变量等。配置完成后需要按ESC键退出,退出后会生成新的配置头文件。\n\nmake menuconfig\n\n\n编译源码并运行,默认使用QEMU虚拟机模拟运行,按下小写的ctrl+x后再按下a则可以退出QEMU运行。\n\n# 第一次编译一个新的平台的时候需要clean一下\nmake clean\n# 编译源码并运行\nmake run\n# 仅仅编译源码\nmake\n\n\n调试完成后,需要将配置信息和文件保存到对应平台中,使得配置永久生效。\n\nmake saveconfig\n\n"},"programing-manual/base/framework.html":{"url":"programing-manual/base/framework.html","title":"整体框架","keywords":"","body":"NXOS 框架\n一、混合内核框架\nNXOS 采用混合内核框架,也就是结合宏内核和微内核。这样的系统有 Windows NT 内核、苹果 XNU 内核,还有国产开源系统 RT-Thread Smart。 \n+-----------------------------------+\n| app |\n+-----------------------------------+\n| (fatfs, extfs, netstack) |\n+-----------------------------------+\n| nxbase | udrivers | userverce |\n+-----------------------------------+\n/ syscall /\n+-----------------------------------+\n| vfs | hub system |\n+-----------------------------------+\n| kdrivers | kservice |\n+-----------------------------------+\n| thread | vmm | irq | timer |\n+-----------------------------------+\n| arch (x86, arm, riscv, ...) | \n+-----------------------------------+\n| hardware |\n+-----------------------------------+\n二、目录框架\n1. 项目目录\n\n\n\n目录\n描述\n\n\n\n\n.vscode\nvscode的一些配置文件,有gdb调试配置\n\n\nconfigs\n平台配置文件,配置了支持的平台\n\n\ndocs\n内核一些功能的文档说明\n\n\nscripts\n用到的xbuild脚本和kconfig脚本等\n\n\nsrc\nnxos 内核的源码\n\n\n\n2. 内核源码目录\n\n\n\n目录\n描述\n\n\n\n\narch\n架构相关代码,x86, riscv64等\n\n\ndrivers\n驱动程序,磁盘,输入输出设备等\n\n\nfs\n文件系统框架以及各种文件系统支持\n\n\ninclude\n头文件\n\n\ninit\n内核初始化以及main核心\n\n\nio\nI/O驱动框架和中断管理\n\n\nipc\n进程间通信\n\n\nkernel\n内核其余模块\n\n\nmm\n内存管理模块\n\n\nplatform\n平台支持,存放具体的平台,比如pc平台或者一个开发板\n\n\nprocess\n进程管理,系统调用相关内容\n\n\nsched\n调度模块,线程和SMP的内容,以及同步机制\n\n\ntest\n测试模块,测试框架和测试代码\n\n\ntime\n时间模块,时钟和定时器\n\n\nutils\n常用的功能组件,小工具,log显示以及字符串操作等\n\n\n\n3. 平台框架\nNXOS 采取架构和平台分离的措施,其原因在于,一个架构可能有多个平台,分离后可以服用架构的代码。\n\n\n\n架构\n平台\n\n\n\n\nx86\ni386, pc\n\n\nriscv64\nvirt riscv64, k210, d1\n\n\n\n"},"programing-manual/base/start.html":{"url":"programing-manual/base/start.html","title":"启动流程","keywords":"","body":"NXOS 启动流程\n在设备开机后,处理器会跳到一个地址去执行代码,一般都是固定的,然后再从这些固定代码跳转到程序员自己编写的程序。程序员自己写的程序就是裸机,rtos或者操作系统。在nxos中,不同的平台会有不同的执行地址,所以我们需要指定内核程序的入口地址,在链接的时候指定一个标签 _Start,当执行到这个地方的时候,内核就开始运行了。\n内核执行路径\n-> _Start\n -> NX_Main (内核的主函数)\n -> NX_SMP_Preload\n -> NX_HalPlatformInit (平台初始化, 不能使用内核的功能: 平台开发者实现)\n -> ShowLogVersion\n -> ... 内核功能初始化 ...\n -> NX_CallsInit (初始化调用)\n -> NX_HalPlatformStage2 (平台初始化二阶段,可以使用内核的功能: 平台开发者实现) \n\n -> NX_SMP_Main (SMP初始化)\n -> NX_SchedToFirstThread (调度第一个线程)\n -> NX_HalPlatformMain (平台的主函数,什么都可以使用: 平台开发者实现)\n"},"programing-manual/mm/mm.html":{"url":"programing-manual/mm/mm.html","title":"内存管理","keywords":"","body":"内存管理\n内存管理是操作系统中最为核心和重要的部分,这是由于很多其它模块的运行都需要内存的分配和释放。\n内存管理分为物理内存管理、虚拟内存管理、进程虚拟内存管理这三个大模块。\n一. 物理内存管理,使用伙伴算法实现。\n二. 内核虚拟堆内存管理,使用基于缓存的链表实现\n三. 进程虚拟内存管理,基于线性链表实现\n"},"programing-manual/mm/buddy.html":{"url":"programing-manual/mm/buddy.html","title":"buddy伙伴算法","keywords":"","body":"物理内存分配/释放管理之伙伴算法(buddy)\n一. 描述\n内存是操作系统运行的根基,处理器从内存中取出指令来执行,在进入操作系统之前,一般会有引导器 bootloader 把内核加载到内核中,然后跳转进去执行。\n这样的话,内核也就占用了一部分的内存,那么我们应该去管理哪部分内存呢?\n我们需要管理的物理内存是除了保留地址和操作系统占用以外的空闲的内存,这部分内存就是需要在操作系统运行的过程中进行静态/动态分配的内存。\nnxos 在 qemu 的 riscv64 虚拟平台中,内存布局如下:\n/**\n * Physical memory layout:\n *\n * +------------------------+ \n我们需要管理的内存就是 0x82000000-TOP 之间的这部分内存。简单的说就是对一段或者多段空闲的内存地址进行管理,可以进行分配与释放,让操作系统去使用。\n二. 原理\n在 nxos 中使用 buddy 伙伴内存管理算法。为了便于页面的维护,将多个页面组成内存块,每个内存块都有2的方幂个页,方幂的指数被称为阶。在操作内存时,经常将这些内存块分成大小相等的两个块,分成的两个内存块被称为伙伴块,采用一位二进制数来表示它们的伙伴关系。当这个位为1,表示其中一块在使用;当这个位为0,表示两个页面块都空闲或者都在使用。系统根据该位为0或位为1来决定是否使用或者分配该页面块。系统每次分配和回收伙伴块时都要对它们的伙伴位跟1进行异或运算。所谓异或是指刚开始时,两个伙伴块都空闲,它们的伙伴位为0,如果其中一块被使用,异或后得1;如果另一块也被使用,异或后得0;如果前面一块回收了异或后得1;如果另一块也回收了异或后得0。\n算法的具体实现不进行讲解,除非你需要来优化这部分代码,才需要了解到,如果只是去使用,那么就只需要熟悉接口即可。\n\n优缺点\n\n尽管伙伴内存算法在内存碎片问题上已经做的相当出色,但是该算法中,一个很小的块往往会阻碍一个大块的合并,一个系统中,对内存块的分配,大小是随机的,一片内存中仅一个小的内存块没有释放,旁边两个大的就不能合并。\n\n算法中有一定的浪费现象,伙伴算法是按2的幂次方大小进行分配内存块,当然这样做是有原因的,即为了避免把大的内存块拆的太碎,更重要的是使分配和释放过程迅速。但是他也带来了不利的一面,如果所需内存大小不是2的幂次方,就会有部分页面浪费。有时还很严重。比如原来是1024个块,申请了16个块,再申请600个块就申请不到了,因为已经被分割了。\n\n另外拆分和合并涉及到 较多的链表和位图操作,开销还是比较大的。\n\n\n三、框架图\n\n四. 接口\n内存管理最基本的接口就是分配和释放。为了能够支持分页机制,为页表映射提供内存的支持,将内存分为页面大小进行管理会比较合适。\n所以,分配和释放的基础单位就是页面。通常来说,页面大小是4kb,也可以更大,但是由于4kb在32位操作系统中可以很好地对4GB内存进行映射,\n所以,4kb也就延续到64位系统了。所以,我们使用4kb作为一个页面的大小。\n在初始化的时候,会创建一个 buddy system 来管理一段连续的物理内存。需要制定物理内存地址和物理内存大小。\nNX_BuddySystem* NX_BuddyCreate(void *mem, NX_Size size);\n\n页面分配函数,可以从一个 buddy system 里面分配 count 个页面。在MMU映射和虚拟内存管理器中会使用到。\n有必要的时候,也会在需要物理内存的时候,直接调用该分配。\nvoid *NX_BuddyAllocPage(NX_BuddySystem* system, NX_Size count);\n\n页面释放函数,从一个 buddy system 里面释放某个地址指针,该指针必须是从 buddy 系统中分配的页面。\n在释放页面的时候,需要引用计数为0的时候,才会去正在释放这个页面。\nNX_Error NX_BuddyFreePage(NX_BuddySystem* system, void *ptr);\n\n有的情况下,当一个页面被多次使用的时候,需要去增加其引用计数,来避免被释放掉。\nNX_Error NX_BuddyIncreasePage(NX_BuddySystem* system, void *ptr);\n\n在使用页面的过程中,可能会需要把一个地砖转换成其对应的页面结构,来访问该结构里面的成员,这在虚拟内存管理器\n实现的时候有使用到。\nNX_Page* NX_PageFromPtr(NX_BuddySystem* system, void *ptr);\n\n"},"programing-manual/mm/heap.html":{"url":"programing-manual/mm/heap.html","title":"heapCache虚拟内存管理","keywords":"","body":"内核虚拟内存管理之堆内存\n一、描述\n对于应用程序来说,可以使用 malloc 和 free 来动态地分配内存,那么,对于内核来说,也需要这样的功能。\n所以,需要在内核中实现同样的功能,在 nxos 里面,它们是 NX_MemAlloc 和 NX_MemFree。\n我们是使用基于缓存的链表来管理堆,这种方式的原理是,在释放一个页面后,会放到一个链表上面,下次分配的时候,直接从链表获取内存对象即可。\n二、原理\n在 heap cache 算法中,每个小的对象都有一个对应的链表来管理内存对象,分配的时候先去链表上获取对象,\n没有对象才重新从物理内存管理器中分配,有的话就直接从链表上面摘取。\n释放的时候,也是先释放到链表上面,当链表超出了最大链表长度阈值的时候,才会释放到物理内存分配器中。\n在 heap cache 中,内存对象被划分成3类,小(16byte size size size > 1mb)内存对象。\n对于小内存对象,会划分得比较细,如:16, 32, 48, 64, 80, 96, 112, 128等。\n对于中内存对象,就是使用一个链表来管理。\n对于大内存对象,就直接从物理内存管理器分配和释放,不使用链表管理。\n三、框架图\n\n四、接口\n内核分配堆内存的接口,需要传入待分配内存的大小,即可获取一个内存地址,如果为空,那么就是分配失败了。\n通常,内核会使用 NX_MemAlloc 去分配内存。\nvoid *NX_HeapAlloc(NX_Size size);\n#define NX_MemAlloc(size) NX_HeapAlloc(size)\n\n内存释放堆内存的时候,需要传入内存对象地址,并返回释放的状态。\n通常,内核会使用 NX_MemFree 去释放内存。\nNX_Error NX_HeapFree(void *object);\n#define NX_MemFree(ptr) NX_HeapFree(ptr)\n\n除此之外,还提供了一个获取某个内存对象大小的功能,传入地址即可获取内存对象所在的 cache 的大小。\n使用的时候需要注意,必须是通过 NX_HeapAlloc 分配的内存对象。\nNX_Size NX_HeapGetObjectSize(void *object);\n\n"},"programing-manual/mm/vmspace.html":{"url":"programing-manual/mm/vmspace.html","title":"vmspace虚拟地址空间","keywords":"","body":"进程虚拟内存管理之虚拟空间\n一、描述\n进程在启动前,需要加载对应的代码、数据到内存中,然后才开始执行。\n在进程的运行过程中也会涉及到堆的分配,栈的扩展等。\n对进程的内存管理,是对它的虚拟地址进行管理。由于会有多个进程的存在,所以会对每个进程的虚拟地址\n进行独立的管理,于是进程地址空间就出现了。\n进程地址空间(vmspace)就是用来管理进程的虚拟地址的。由于不同地址会有不同的用途,于是会有虚拟地址节点(vmnode)来管理\n不同用法的地址。\n二、原理\n进程地址空间的管理使用链表来维护每一个节点,节点是根据虚拟地址的值来进行线性排序,低地址在链表的开头,高地址在链表的结尾。\n地址空间通过映射和解除映射来进行管理,类似于分配和释放的操作。\n映射某段空间的时候,会先检测地址是否被使用,如果已经被使用了,就不能直接使用这块地址。没有被使用,就可以在地址空间中添加一个\nvmnode,节点记录了地址的信息以及这段地址的属性。\n值得注意的是,映射的时候,还会去对内存进行物理内存映射,只有映射后,进程才能访问该地址。\n解除映射的时候,会先判断该地址是否映射,已经映射才能解除。会先解除物理内存映射,然后再把 vmnode 删除。\n三、框架图\n\n四、接口\n虚拟地址在映射的时候,需要指定对应的地址空间,然后就是传入一个想要映射的地址,如果为0,那么就会自动分配一个地址。\n以及这个地址对应的内存大小,内存节点的属性,已经一些扩展的标志。\n在解析 elf 格式的可执行程序的时候,需要映射一段内存来储存代码和数据,就会用到映射功能。\n以及在做进程的堆分配和栈扩展的时候,都会使用到。\nNX_Error NX_VmspaceMap(NX_Vmspace *space,\n NX_Addr addr,\n NX_Size size,\n NX_U32 attr,\n NX_U32 flags,\n void **outAddr);\n\n/* 指定了虚拟地址需要映射到的物理地址,映射的时候,就把虚拟地址映射到该物理地址(未来做共享内存的时候会用到) */\nNX_Error NX_VmspaceMapWithPhy(NX_Vmspace *space,\n NX_Addr vaddr,\n NX_Addr paddr,\n NX_Size size,\n NX_U32 attr,\n NX_U32 flags,\n void **outAddr);\n\n解除地址映射的时候,需要制定虚拟地址和内存大小,如果在已经映射的内存空间中匹配到vmnode,就可以将其解除映射,并释放其\n映射的物理内存。\nNX_Error NX_VmspaceUnmap(NX_Vmspace *space, NX_Addr addr, NX_Size size);\n\n"},"programing-manual/sched/sched.html":{"url":"programing-manual/sched/sched.html","title":"调度管理","keywords":"","body":"调度管理\n在现代操作系统中,多任务已成为标配,也就是一个处理器可以“同时”执行多个任务,这样可以最大化利用处理器,并且支持更多的功能。\n由于任务数量众多,如何管理它们,是要做到公平运行还是谁先谁后,这和应用场景密切相关。\n在嵌入式领域,rtos的实时性是非常重要的。简单来说,就是一个优先级最高的任务在执行的时候,低优先级的任务得不到执行,如果有更高\n的任务被唤醒,就得立即切换过去执行。\n而在桌面和服务器领域,需要保证任务的公平性,即使优先级比较低,也要能够得到运行。\n在内核中,涉及到多任务的是线程管理,调度算法,多核调度。\n一. 线程管理\n二. 多核调度\n"},"programing-manual/sched/thread.html":{"url":"programing-manual/sched/thread.html","title":"线程管理","keywords":"","body":"线程管理\n一. 描述\n内核的最小调度单位是线程,每个线程都有自己独立的栈,寄存器组,以及一些运行信息等。\n以线程为最小调度单元的好处是可以很方便支持内核态以及用户态的多线程,并且层次框架也比较好,容易实现。\n每个线程都有一个其对应的线程结构体,使用其来记录线程的信息,比如线程链表,线程状态,线程栈等基础信息。\n在创建一个线程后,可以运行该线程,可以让线程去完成一些独立的工作。内核中的 idle 线程, deamon 线程等都有自己独立的工作任务。\n二. 原理\n当前实现的线程结构体如下:\nstruct NX_Thread\n{\n /* thread list */\n NX_List list;\n NX_List globalList;\n NX_List exitList;\n NX_List processList; /* list for process */\n\n NX_Spin lock; /* lock for thread */\n\n /* thread info */\n NX_ThreadState state;\n NX_I32 tid; /* thread id, -1 means no alloc failed */\n NX_ThreadHandler handler;\n void *threadArg;\n char name[NX_THREAD_NAME_LEN];\n\n /* thread stack */\n NX_U8 *stackBase; /* stack base */\n NX_Size stackSize; \n NX_U8 *stack; /* stack top */\n\n /* thread sched */\n NX_U32 timeslice;\n NX_U32 ticks;\n NX_U32 fixedPriority; /* fixed priority, does not change dynamically */\n NX_U32 priority; /* dynamic priority, or in the case of time-sharing scheduling priority will change dynamically */\n NX_U32 needSched;\n NX_U32 isTerminated;\n NX_UArch onCore; /* thread on which core */\n NX_UArch coreAffinity; /* thread would like to run on the core */\n\n /* thread resource */\n NX_ThreadResource resource;\n};\ntypedef struct NX_Thread NX_Thread;\n\n在线程结构体中,有链表,基础信息,栈信息,调度信息,以及内核的资源。\n最开始,内核是没有线程概念的,处理器只有一个执行流。\n在完成内核的初始化后,会创建 idle 线程,来保证处理器至少能够\n拿到1个线程执行,避免内核跑飞。\n当处理器调用 NX_SchedToFirstThread 的时候,就去获取一个线程来运行。\n此时,处理器就进入线程环境,开启线程调度生涯。\n每个线程执行一段时间后,就会切换到其它线程执行。这个切换可能是主动的,也可能是被动的。线程在阻塞(block)和让出(yield)的时候是属于线程主动发起切换。在\n产生时钟中断的时候,会去减少线程的时间片,时间片为0后,再去切换线程,这是属于线程被动切换。\n由于线程的切换速度非常快,一般在 1ms~100ms 就会发起一次切换。这样,在人看来,就是多个任务在\n同时运行。比如你一边听歌,一边写代码,其实就是音乐播放器和代码编辑器这两个任务在快速切换而形成的效果。\n\n线程是具有优先级的,优先级高的线程先运行,优先级低的线程后运行。在 nxos 中,分为实时优先级和分时优先级。实时优先级是,只要有高的优先级,就不能运行低的优先级。而分时优先级是高低优先级线程都能得到运行,只是低优先级线程运行的时间更少而已。优先级 [0, 6] 属于分时优先级,优先级 [7, MAX - 1] 属于实时优先级。在使用过程中,通常使用宏,而不是直接使用数字。优先级宏如下:\n\n/* time-sharing priority */\n#define NX_THREAD_PRIORITY_IDLE 0 /* idle thread priority */\n#define NX_THREAD_PRIORITY_LOW 1 /* low level priority */\n#define NX_THREAD_PRIORITY_NORMAL 3 /* normal level priority */\n#define NX_THREAD_PRIORITY_HIGH 6 /* high level priority */\n\n#define NX_THREAD_PRIORITY_RT_MIN (NX_THREAD_PRIORITY_HIGH + 1) /* real time min priority */\n#define NX_THREAD_PRIORITY_RT_MAX (NX_THREAD_MAX_PRIORITY_NR - 1) /* real time max priority */\n\n三、框架图\n\n四. 接口\n线程的创建是 NX_ThreadCreate , 传入线程的名字 name ,线程处理函数 handler 以及参数 arg , 还有重要的优先级 priority,即可创建一个线程,返回线程的地址。\n但是注意,此时只是创建了线程,还没有启动线程。\nNX_Thread *NX_ThreadCreate(const char *name, NX_ThreadHandler handler, void *arg, NX_U32 priority);\n\n销毁一个线程是只需要传入线程地址即可。注意,销毁不代表把线程从运行队列中摘除,只是释放线程占用的内存。\nNX_Error NX_ThreadDestroy(NX_Thread *thread);\n\n在线程创建后,如果需要把线程绑定到某个处理器,则可以设置处理器亲和性,使得该线程被绑定在指定的线程上运行。\nNX_Error NX_ThreadSetAffinity(NX_Thread *thread, NX_UArch coreId);\n\n线程创建好后,需要启动线程,调用 NX_ThreadStart 就可以启动线程,线程就可以开始运行了。\nNX_Error NX_ThreadStart(NX_Thread *thread);\n\n有时候需要终止某个线程的运行,就需要使用 NX_ThreadTerminate 去终止线程,传入线程指针即可。\nNX_Error NX_ThreadTerminate(NX_Thread *thread);\n\n线程完成了自己的工作后,可以主动退出运行,调用 NX_ThreadExit 函数即可退出当前线程的运行。\nvoid NX_ThreadExit(void);\n\n很多情况下,需要获取当前线程,可以使用 NX_ThreadSelf 获取自己的线程指针。\nNX_Thread *NX_ThreadSelf(void);\n\n线程有一个让出当前执行的操作,就是暂时不允许,希望把运行机会让给其它线程,做一个\"好人\",此时调用 NX_ThreadYield 就可以让出执行权。值得注意的是,本线程不会阻塞,会在下一个时机再次被调度。\nvoid NX_ThreadYield(void);\n\n当线程需要休眠的时候,就需要传入休眠的时间, 在 nxos 内核中,休眠的单位是毫秒,休眠 microseconds 时间长度后,就会被唤醒,继续往后执行。\nNX_Error NX_ThreadSleep(NX_UArch microseconds);\n\n"},"programing-manual/sched/smp.html":{"url":"programing-manual/sched/smp.html","title":"SMP多核调度","keywords":"","body":"多核调度\n一. 描述\n自从进入21世纪,处理器的性能就有了瓶颈,不再迅猛增长。此时就有人提出多个处理器一起工作的方式,来弥补处理器性能的问题。\n二. 原理\n多核的实现是需要硬件支持的,操作系统内核只是根据硬件做一定的抽象,做好多核间的同步与互斥。\n多核中很重要的一个机制就是自旋锁,当需要访问公共资源的时候,就需要自旋锁来上锁,才能保证多个核同时访问数据的正确性。自旋锁依赖于原子操作,而原子操作又需要硬件做支持。\n一般情况下,第一个引导处理器(Boot Processor)启动后,进入内核,完成初始化,再由引导处理器去唤醒其它处理器,通常称为应用处理器(Application Processor)。 AP 启动后,会进行一些初始化,然后参加到调度工作中。而调度队列的实现就需要依赖于原子操作来保证对公共队列访问的正确性。\n三、框架图\n \n \n \n \n SMP多核启动流程 \n \n\n\n \n \n \n \n SMP负载均衡 \n \n\n"},"programing-manual/process/process.html":{"url":"programing-manual/process/process.html","title":"进程管理","keywords":"","body":"进程管理\n一. 描述\n进程是具有独立的线性地址空间的线程集合,是线程的容器。在现代操作系统中,硬件的 MMU (内存管理单元)为虚拟内存的实现奠定基础。\n线程 + MMU 就可以升级为进程。除此之外,还会有一些其它进程独有的资源。\n进程执行独立的程序,程序运行出故障也不会导致系统出现故障。因此可以把一些服务程序放到用户态作为进程执行,当服务出错的时候不会导致\n内核崩溃。\n二. 原理\n进程的实现依赖于 MMU ,来实现进程的虚拟地址空间。每个进程都有一个 MMU 映射表,切换进程的时候需要修改硬件 MMU 寄存器,访问的地址都是新的 MMU 映射的虚拟地址。\n由于切换了 MMU 后,访问的地址会发生变化。因此,为了能够保证访问内核的时候是正确的,在映射 MMU 的时候,每个进程都会把部分\n页表项映射到内核,并设置权限为内核才能访问,这样就能实现切换 MMU 的时候,内核也能够正常运行,新进程的地址访问也不会出错。\n那么 MMU 究竟是何物?MMU 是虚拟地址转换成为物理地址的硬件机制。在开启 MMU 前,访问的地址都是物理地址,\n即直接访问的是内存的地址。比如内存只有 32MB ,那么访问的地址就只能是在 32MB 以内进行数据存取。\n当开启 MMU 后,访问的地址就是虚拟地址了。此时访问的地址,会通过 MMU 转换成那 32MB 内的物理地址,\n再去对物理地址进行存取。比如虚拟地址是 0xF0000000 ,显然超过了 32MB 的内存范围,但是,只要在访问前映射 0xF0000000 到\n 32MB 内的物理地址,就能正确地进行数据存取,不然,则会产生页面故障。\n三、框架图\n\n四. 接口\n创建进程的时候,需要从文件系统上加载程序的代码和数据,然后再去执行进程的代码。\n启动进程的时候,需要传入进程的名字 name ,要加载程序的路径 path ,以及进程标志 flags。\nNX_Error NX_ProcessLaunch(char *name, char *path, NX_U32 flags);\n\n进程执行结束的时候,需要退出,并传入退出时候的状态码。\nvoid NX_ProcessExit(int exitCode);\n\n"},"programing-manual/process/syscall.html":{"url":"programing-manual/process/syscall.html","title":"系统调用","keywords":"","body":"系统调用\n一. 描述\n在现代操作系统中,分为了内核态和用户态。内核态是内核程序本身,可以对设备资源进行管理核控制。而用户态只能够去调用内核提供的服务,不能够直接对资源进行访问。\n这么做的目的是为了避免用户恶意程序对系统的损坏,对设备进行恶意操作。于是用户态核与内核态之间的接口就出现了,它就是系统调用。\n系统调用是指用户态程序通过特殊的指令陷入到内核态,执行内核态提供的服务程序,然后再返回到用户态。\n支持特权保护的处理器架构中,都提供了模式切换的指令。至少需要有两个特权级,一个用于内核态,特权更高,可以直接访问硬件。另外一个用于用户态,\n只能通过系统调用执行内核提供好的服务。在 x86 架构中,有4个特权级(ring0, ring1, ring2, ring3),在 riscv 架构中,有3个特权级(Machine, Supervisor, User)。\n二. 原理\n系统调用的实现,是基于特权级切换指令实现的,一般都是中断或者异常。用户态通过调用这些指令,就会产生一个中断或者异常,处理器会去中断表中查找系统调用指令对应的处理函数,然后就根据系统调用的 API 进行内核服务的分发,去调用对应的内核函数。\n值得注意的是,在执行系统调用期间,需要打开中断,避免在系统调用时出现死循环,导致内核卡死。\n三、框架图\n\n四. 接口\n系统调用表是在内核固定下来的,不同的架构只要根据固定的 API 值,就能获取到对应的内核服务功能,然后以函数指针的方式去调用执行即可。\nNX_SyscallHandler NX_SyscallGetHandler(NX_SyscallApi api);\n\n"},"programing-manual/interrupt/irq.html":{"url":"programing-manual/interrupt/irq.html","title":"中断系统","keywords":"","body":"中断管理\n一、描述\n中断是由处理器支持的一个临时打断当前执行流的功能,可分为设备中断和处理器异常。设备中断就是当网卡设备收到数据后会产生一个中断,打断处理器当前在处理的事情,去处理网络数据包。异常中断就是当处理器执行了一个不存在的指令或者访问了一个没有权限的内存地址,处理器就会中断当前的执行流,去对异常做一个处理,一般都是 kill 当前的进程。\n二、原理\n中断管理的实现是基于处理器的中断管理机制的,不同的架构具体实现机制可能有差别,但是在大体逻辑上都是一致的,因此可以抽象出一套统一的接口来供上层使用。\n由于中断数量会比较多,因此,都会有一个中断表来注册中断。然后由一个寄存器或者多个寄存器来记录该表的地址。产生中断的时候会去查表,根据具体的中断号去找对应的中断处理函数,简单来说就是去调用中断的回调函数。\n中断是可以全局打开和关闭的,打开后才会响应中断。除此之外,对于每一个具体的中断,都可以打开和关闭,在禁止了网卡中断后,即使打开了全局中断,也收不到网络数据包了。但是,异常是不可以屏蔽的,异常是来告诉内核出现一些问题了,需要根据具体的异常做处理。有的异常是不可以修复的,会导致系统死机,有的异常时可以修复的,比如页故障,可以拿来实现页面延迟映射, COW 等机制。\n三、框架图\n\n四、接口\n需要注册某个中断的时候,需要传入中断号,绑定中断处理函数,设置中断的参数数据,设置中断的名字。\nNX_Error NX_IRQ_Bind(NX_IRQ_Number irqno,\n NX_IRQ_Handler handler,\n void *data,\n char *name,\n NX_U32 flags);\n\n当需要注销某个中断的时候,只需要传入中断号以及注册时的数据即可。相当于解除了中断函数的绑定。\nNX_Error NX_IRQ_Unbind(NX_IRQ_Number irqno, void *data);\n\n注册了中断后,并不能产生中断,还需要解除中断的屏蔽(unmask),相当于打开中断。除此之外,如果不希望产生该中断,则需要屏蔽某个中断(mask),相当于关闭中断。\nNX_Error NX_IRQ_Unmask(NX_IRQ_Number irqno);\nNX_Error NX_IRQ_Mask(NX_IRQ_Number irqno);\n\n前面有讲到关于全局中断的打开和关闭,全局中断的打开是 NX_IRQ_Enable 函数,相反关闭则是\n NX_IRQ_Disable 。由于有的时候只是为了暂时关闭中断,处理完后需要恢复中断的状态,于是则需要使用保存中断的状态和恢复中断的状态,即 NX_IRQ_SaveLevel 和 NX_IRQ_RestoreLevel 。\n#define NX_IRQ_Enable() NX_IRQ_ControllerInterface.enable()\n#define NX_IRQ_Disable() NX_IRQ_ControllerInterface.disable()\n#define NX_IRQ_SaveLevel() NX_IRQ_ControllerInterface.saveLevel()\n#define NX_IRQ_RestoreLevel(level) NX_IRQ_ControllerInterface.restoreLevel(level)\n\n"},"programing-manual/interrupt/delay_queue.html":{"url":"programing-manual/interrupt/delay_queue.html","title":"延迟队列","keywords":"","body":"中断延迟队列\n一、描述\n中断延迟队列是一种延迟处理中断的机制,类似于 linux 中断机制中的中断下半部分,用来进行具体的中断处理。\n中断的要求是快速地响应中断,并且是关闭了全局中断的,然后回到之前的工作。而延迟队列就是来完成这个工作的,产生了中断后,只进行最少的工作,\n然后激活中断队列工作,然后就返回,完成了本次中断。等到没有中断的时候,再去从延迟队列中获取一个工作来处理其对应的中断下半部分处理工作。\n二、原理\n中断延迟队列在某个驱动或者内核组件中会进行初始化。当产生中断的时候,在中断处理函数中,只对中断产生时的数据进行保存,不对中断产生时的数据进行处理,\n而是处理中断延迟工作,然后就直接返回。等到响应了该中断之后,再去调用延迟队列中的工作。\n由于中断是具有一定优先级的,有的中断需要先处理,而有的中断则可以后处理,因此就有了多个中断队列,每个队列的优先级是不同的。至于需要加入哪种队列,\n是在该延迟中断工作初始化的时候设定的。\n工作队列的优先级如下,其中 NX_IRQ_FAST_QUEUE 优先级最高, NX_IRQ_SLOW_QUEUE 优先级最低。\nenum NX_IRQ_DelayQueue \n{\n NX_IRQ_FAST_QUEUE = 0,\n NX_IRQ_NORMAL_QUEUE,\n NX_IRQ_PERIOD_QUEUE,\n NX_IRQ_SCHED_QUEUE,\n NX_IRQ_SLOW_QUEUE,\n NX_IRQ_QUEUE_NR,\n};\n\n内核的定时器属于 NX_IRQ_FAST_QUEUE ,这样才能保证时间的精度。\n而内核的任务调度属于 NX_IRQ_SCHED_QUEUE ,及时调度的精度低一点也没有太大影响。\n三、框架图\n\n四、接口\n创建一个延迟的中断工作,需要传入中断工作处理函数入口,以及函数执行时的参数,就可以创建一个延迟的工作对象。\nNX_IRQ_DelayWork *NX_IRQ_DelayWorkCreate(NX_IRQ_WorkHandler handler, void *arg, NX_U32 flags);\n\n如果是一个静态对象,不需要创建,那么可以直接调用初始化,并传入该对象的地址即可,参数同上。\nNX_Error NX_IRQ_DelayWorkInit(NX_IRQ_DelayWork *work, NX_IRQ_WorkHandler handler, void *arg, NX_U32 flags);\n\n有创建工作,那么就有销毁工作,只需要传入工作对象的地址即可。\nNX_Error NX_IRQ_DelayWorkDestroy(NX_IRQ_DelayWork *work);\n\n创建了一个中断工作对象,就需要将其加入到某个延迟队列中,只需要传入队列和工作对象的地址即可。\nNX_Error NX_IRQ_DelayQueueEnter(NX_IRQ_DelayQueue queue, NX_IRQ_DelayWork *work);\n\n和加入延迟队列相反,有离开延迟队列,那么和加入的参数一样,只是意思相反而已。\nNX_Error NX_IRQ_DelayQueueLeave(NX_IRQ_DelayQueue queue, NX_IRQ_DelayWork *work);\n\n最后,当有中断产生的时候,就可以去激活中断工作,那么则需要调用 NX_IRQ_DelayWorkHandle 来处理工作\n对象即可,传入工作对象的地址即可。\nNX_Error NX_IRQ_DelayWorkHandle(NX_IRQ_DelayWork *work);\n\n"},"programing-manual/timer/timer.html":{"url":"programing-manual/timer/timer.html","title":"定时器","keywords":"","body":"定时器\n一、描述\n定时器是基于系统时钟实现的,精度比较低(1ms~10ms),可以用于线程的休眠,以及对于休眠精度不高的场景。\n二、原理\n当时钟中断产生的时候,会改变ticks的值,与此同时也会去检测是否有定时器超时,如果有定时器超时,则会去处理定时器超时函数。\n有一个定时器链表来记录所有等待超时的定时器,值得注意的是,它们是通过线性的方式插入到链表中的。\n最先超时的定时器会插入到链表头,超时时间比较久的定时器会被加入到链表的末尾。\n除此之外,还有一个最近超时的时间变量,来记录下一个即将超时的定时器,可以用它来检测是否需要去检测定时器链表。\n当有一个定时器的ticks到达了最近超时定时器的ticks值的时候,就去检测定时器链表,如果有多个同样超时的定时器,\n就会将他们全部处理,调用定时器超时处理函数,然后更新最近超时定时器的ticks。\n三、框架图\n\n四、接口\n创建定时器需要指定需要超时的时间 milliseconds ,超时后调用的处理函数 handler ,处理函数参数 arg,\n以及定时器的标志 flags。\n标志有多重,表明不同类型的定时器。 ONESHOT 表示只超时一次, PERIOD 表示周期性地按照 milliseconds 来进行超时。\n#define NX_TIMER_ONESHOT 0x01 /* timer type is one shot */\n#define NX_TIMER_PERIOD 0x02 /* timer type is period */\n\nNX_Timer *NX_TimerCreate(NX_UArch milliseconds, \n NX_Bool (*handler)(struct NX_Timer *, void *arg), void *arg, \n int flags);\n\n如果是对静态的定时器进行初始化,只需要调用 NX_TimerInit 并传入定时器的地址即可。\nNX_Error NX_TimerInit(NX_Timer *timer, NX_UArch milliseconds, \n NX_Bool (*handler)(struct NX_Timer *, void *arg), void *arg, \n int flags);\n\n在定时器还没开始运行的时候,可以销毁一个定时器,调用 NX_TimerDestroy, 只需要传入定时器对象地址即可。\nNX_Error NX_TimerDestroy(NX_Timer *timer);\n\n创建定时器后需要调用 NX_TimerStart 启动它,才可以在超时后调用回调函数。\nNX_Error NX_TimerStart(NX_Timer *timer);\n\n当需要停止定时器的时候,调用 NX_TimerStop 即可。\nNX_Error NX_TimerStop(NX_Timer *timer);\n\n"},"programing-manual/port/riscv/riscv.html":{"url":"programing-manual/port/riscv/riscv.html","title":"riscv架构移植","keywords":"","body":"RISC-V架构移植\n一、描述\nRISC-V(发音为“risk-five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。\n与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。\n该项目2010年始于加州大学伯克利分校,但许多贡献者是该大学以外的志愿者和行业工作者。\nRISC-V指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。\n截至2017年5月,RISC-V已经确立了版本2.22的用户空间的指令集(userspace ISA),而特权指令集(privileged ISA)也处在草案版本1.10。\n(以上摘自百度百科)\n二、架构简述\n1. 指令集\nRISC-V被设计成可扩展的,可以配置的,根据不同的应用场景可以生产带有不同功能扩展的处理器。\n\n2. 特权模式\nRISC-V目前有4种特权模式(Machine, Hypervisor,Supervisor, User)。\n机器模式用于固件程序代码执行,例如 OpenSBI, RustSBI 等,但是在 rtos 和裸机开发种,很多时候都是直接使用机器模式。\nHypervisor 虚拟化模式用于使用虚拟化的场景,目前还在开发阶段。\n操作系统更多运行在 Supervisor 监管者模式,这样可以和 User 更贴近,也不用管太多机器模式需要做的事情。通常, OpenSBI 和 RustSBI 初始化完成后,会跳转到 Supervisor 模式,进入内核。内核只需要链接到 SBI 指定的地址就行了。使用 SBI 的好处是,可以直接使用串口的输入输出,很方便调试,不用自己从机器模式跳转到 Supervisor 模式,降低开发的复杂度。\nUser 用户模式就是应用程序执行的模式,需要通过系统调用进入到 Supervisor 模式去调用内核提供的服务。\n\n3. 寄存器\nRISCV(RV32)具有32个整数寄存器组(取名为:x0~x31),其中31个是通用寄存器(x1~x31),它们存储整数数值,寄存器x0是硬件连线的常数0。当你设计的RISCV架构处理器实现了浮点扩展时,还必须有32个浮点寄存器f0~f31。对于RV32,其x寄存器是32位宽度的,XLEN=32,对于RV64,它们是64位宽度的,XLEN=64。\n\n\n特权级寄存器的命名规则,特权模式+寄存器名字,表示只能在该特权级使用。比如status寄存器,在机器模式有mstatus,监管模式有sstatus。\n.jpg)\n上图为机器模式状态寄存器(rv64)\n.jpg)\n上图为机器模式状态寄存器(rv32)\n3. 中断管理\nRISC-V中断分为两种类型,一种是同步中断,即ECALL、EBREAK等指令所产生的中断,另一种是异步中断,即GPIO、UART等外设产生的中断。\nRISC-V的中断管理由处理器核局部中断CLINT(CoreLocalInterrupt)和平台级中断控制器PLIC(PlatformLevelInterruptController)组成。CLINT分为软件中断核计时器中断,负责响应处理器的异常核和计时器中断。PLIC负责处理外设的中断。\n\n中断表地址需要写入管理者模式的向量基址寄存器 STVEC ,产生中断后,就去该寄存器保存的中断向量表地址找中断号对应的中断服务。\nSupervisor模式的中断的打开与关闭是由状态寄存器 SSTATUS 中的 SIE 控制的,置为1则表示使能中断,置为0则表示禁用中断。\n4. MMU内存管理单元\nRISC-V的MMU支持多种模式,有Sv32/Sv39/Sv48/Sv57/Sv64等。不同的模式映射的页面等级,页面大小是有差异的。在64位处理器种最常用的是Sv39,它是3级4KB页面大小映射。\n监管者模式的页表的地址是由地址转换寄存器 SATP 保存的,其格式如下:\n\n具体字段的解析如下:\n\nMode - MMU 地址翻译模式\n\n\n\n\nValue\nName\nDescription\n\n\n\n\n0\nBare\nNo translation or protection\n\n\n1-7\n-\nReserved\n\n\n8\nSv39\nPage-based 39-bit virtual addressing\n\n\n9\nSv48\nPage-based 48-bit virtual addressing\n\n\n10\nSv57\nReserved for page-based 57-bit virtual addressing\n\n\n11\nSv64\nReserved for page-based 64-bit virtual addressing\n\n\n12-15\n-\nReserved\n\n\n\n当 Mode 为 0 时,MMU 关闭。\n\nASID – 当前 ASID。表示当前程序的 ASID 号。\nPPN – 硬件回填根 PPN。第一级硬件回填使用的 PPN (Phsical Page Number)。\n\n三、代码移植\n移植一个新的平台需要实现如下内容:\n|内容 |描述 |\n| ------- | ---------- |\n| 内核入口 | 不同的架构内核入口代码有差异,需要根据架构来实现 |\n| 平台初始化 | 调用平台的初始化代码 |\n| 原子操作 | 原子操作用于对数据的加减运算不会被打断,以及一些原子级别的数据交换等 |\n| 内存屏障 | 内存屏障前的所有读写操作完成后才能执行屏障后的读写操作 |\n| 计时器时钟 | 计时器时钟用于驱动多线程的切换和内核定时器 |\n| 线程上下文 | 上下文切换是多线程实现的根基 |\n| 中断管理 | 中断管理接口对内核以及驱动都是至关重要的 |\n| MMU虚拟内存管理 | 虚拟地址的实现和访问,MMU的切换,映射和解除页面映射 |\n| 进程管理 | 进程管理相关操作是实现进程的必要条件 |\n| SMP多核 | 对处理器多核的启动和初始化 |\n所有需要对接的接口都存放在 src/arch/riscv64/port 目录下面,新的平台只需要支持这些接口的功能即可。\n1. 内核入口\n在 nxos 中,使用了 OpenSBI 和 RustSBI 作为机器模式的固件,qemu_riscv64平台选择了 OpenSBI ,其内核的入口地址为 0x80200000,\nk210 选择了 RustSBI,其内核的入口地址为 0x80020000, RustSBI 针对 k210 做了一些兼容,使用起来比较简单。\n在 SBI 执行结束后,会从机器模式跳转到位于监护者模式的内核中,并且寄存器 a0 记录了当前处理器核心的 id ,可以根据寄存器的值来判断处理器 id。\n入口地址在链接脚本中写的是 _Start 这个符号,因此会进入 sbi_entry.S 的 _Start 执行。\n\n文件:src/arch/riscv64/kernel/sbi_entry.S\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: Riscv64 entry \n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-1 JasonHu Init\n */\n\n .section .text.start\n .extern NX_Main\n\n .globl CPU_StackTop0\n .globl CPU_StackTop1\n .globl CPU_StackTop2\n .globl CPU_StackTop3\n\n .global _Start\n_Start:\n li t0, 0\n beq a0, t0, _SetSP0\n li t0, 1\n beq a0, t0, _SetSP1\n li t0, 2\n beq a0, t0, _SetSP2\n li t0, 3\n beq a0, t0, _SetSP3\n\n j _EnterMain\n\n_SetSP0:\n la sp, CPU_StackTop0\n j _EnterMain\n\n_SetSP1:\n la sp, CPU_StackTop1\n j _EnterMain\n\n_SetSP2:\n la sp, CPU_StackTop2\n j _EnterMain\n\n_SetSP3:\n la sp, CPU_StackTop3\n j _EnterMain\n\n_EnterMain:\n csrw sscratch, sp /* first set sscrach as cpu stack here */\n csrc sstatus, 0x2 /* disable interrupt */\n call NX_Main\n\nloop:\n j loop\n\n /* set in data seciton, avoid clear bss to clean stack */\n .section .data.stack\n .align 12\n\nCPU_Stack0:\n .space 8192\nCPU_StackTop0:\n\nCPU_Stack1:\n .space 8192\nCPU_StackTop1:\n\nCoreStack2:\n .space 8192\nCPU_StackTop2:\n\nCoreStack3:\n .space 8192\nCPU_StackTop3:\n\n该代码简单地设置了栈就进入了 NX_Main 执行,那么入口程序的移植就完成了。\n2. 平台初始化\n在平台初始化 NX_HalPlatformInit 中,进行初始化,初始化完串口后,就能使用打印功能了。\n然后再初始化中断,初始化物理内存管理。\n在 NX_HalPlatformStage2中,可以使用内核的功能,内存分配,中断注册等。\n因此 NX_HalDirectUartStage2 就注册了串口中断,可以接受输入。\n\n文件:src/platform/qemu_riscv64/hal/init.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: Init Riscv64 Qemu platfrom \n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-1 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#define NX_LOG_LEVEL NX_LOG_INFO\n#define NX_LOG_NAME \"INIT\"\n#include \n\nNX_INTERFACE NX_Error NX_HalPlatformInit(NX_UArch coreId)\n{\n NX_HalClearBSS();\n\n /* NOTE: init trap first before do anything */\n CPU_InitTrap(coreId);\n\n NX_HalDirectUartInit();\n\n sbi_init();\n sbi_print_version();\n\n NX_LOG_I(\"Hello, QEMU Riscv64!\");\n\n PLIC_Init(NX_True);\n\n NX_HalPageZoneInit();\n\n return NX_EOK;\n}\n\nNX_INTERFACE NX_Error NX_HalPlatformStage2(void)\n{\n NX_LOG_I(\"stage2!\");\n\n NX_HalDirectUartStage2();\n\n return NX_EOK;\n}\n\n串口可以配置为调用 SBI 实现输出,也可以通过自己操作寄存器实现。在早期,调用 SBI 串口来输出是非常方便的。\n实现 NX_HalConsoleOutChar 函数后,就可以使用 NX_Printf 和 NX_LOG_* 函数来打印消息。\n\n文件:src/platform/qemu_riscv64/drivers/direct_uart.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: Direct uart driver \n * low-level driver routines for 16550a UART.\n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-1 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#include \n\n#ifdef CONFIG_NX_UART0_FROM_SBI\n#include \n#endif\n\n#include \n\n// the UART control registers.\n// some have different meanings for\n// read vs write.\n// see http://byterunner.com/16550.html\n#define RHR 0 // receive holding register (for input bytes)\n#define THR 0 // transmit holding register (for output bytes)\n#define IER 1 // interrupt enable register\n#define IER_RX_ENABLE (1 \n3. 原子操作\n原子操作需要实现对数据的原子设置,获取,加法,减法,数据交换等。由于 gcc 内置了原子操作的函数,\n这里只需要调用 gcc 内置的原子操作即可。\n\n文件:src/arch/riscv64/port/atomic.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: HAL NX_Atomic \n * \n * Change Logs:\n * Date Author Notes\n * 2021-12-1 JasonHu Init\n */\n\n#include \n\nNX_PRIVATE void NX_HalAtomicSet(NX_Atomic *atomic, long value)\n{\n atomic->value = value;\n}\n\nNX_PRIVATE long NX_HalAtomicGet(NX_Atomic *atomic)\n{\n return atomic->value;\n}\n\nNX_PRIVATE void NX_HalAtomicAdd(NX_Atomic *atomic, long value)\n{\n /* gcc build-in functions */\n __sync_fetch_and_add(&atomic->value, value);\n}\n\nNX_PRIVATE void NX_HalAtomicSub(NX_Atomic *atomic, long value)\n{\n __sync_fetch_and_sub(&atomic->value, value);\n}\n\nNX_PRIVATE void NX_HalAtomicInc(NX_Atomic *atomic)\n{\n __sync_fetch_and_add(&atomic->value, 1);\n}\n\nNX_PRIVATE void NX_HalAtomicDec(NX_Atomic *atomic)\n{\n __sync_fetch_and_sub(&atomic->value, 1);\n}\n\nNX_PRIVATE void NX_HalAtomicSetMask(NX_Atomic *atomic, long mask)\n{\n __sync_fetch_and_or(&atomic->value, mask);\n}\n\nNX_PRIVATE void NX_HalAtomicClearMask(NX_Atomic *atomic, long mask)\n{ \n __sync_fetch_and_and(&atomic->value, ~mask);\n}\n\nNX_PRIVATE long NX_HalAtomicSwap(NX_Atomic *atomic, long newValue)\n{\n return __sync_lock_test_and_set(&((atomic)->value), newValue);\n}\n\nNX_PRIVATE long NX_HalAtomicCAS(NX_Atomic *atomic, long old, long newValue)\n{\n return __sync_val_compare_and_swap(&atomic->value, old, newValue);\n}\n\nNX_INTERFACE struct NX_AtomicOps NX_AtomicOpsInterface = \n{\n .set = NX_HalAtomicSet,\n .get = NX_HalAtomicGet,\n .add = NX_HalAtomicAdd,\n .sub = NX_HalAtomicSub,\n .inc = NX_HalAtomicInc,\n .dec = NX_HalAtomicDec,\n .setMask = NX_HalAtomicSetMask,\n .clearMask = NX_HalAtomicClearMask,\n .swap = NX_HalAtomicSwap,\n .cas = NX_HalAtomicCAS,\n};\n\n4. 内存屏障\n在 risc-v 架构中,内存全(读和写)屏障使用 gcc 内置函数 __sync_synchronize 实现,\n内存读/写屏障使用 fence 指令去实现。内存指令屏障使用 fence.i 指令实现。\n\n文件:src/arch/riscv64/port/barrier.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: HAL Memory Barrier\n * \n * Change Logs:\n * Date Author Notes\n * 2021-12-9 JasonHu Init\n */\n\n#include \n\nNX_PRIVATE void NX_HalMemBarrier(void)\n{\n __sync_synchronize();\n}\n\nNX_PRIVATE void NX_HalMemBarrierRead(void)\n{\n NX_CASM(\"fence\":::\"memory\");\n}\n\nNX_PRIVATE void NX_HalMemBarrierWrite(void)\n{\n NX_CASM(\"fence\":::\"memory\");\n}\n\nNX_PRIVATE void NX_HalMemBarrierInstruction(void)\n{\n NX_CASM(\"fence.i\":::\"memory\");\n}\n\nNX_INTERFACE struct NX_MemBarrierOps NX_MemBarrierOpsInterface = \n{\n .barrier = NX_HalMemBarrier,\n .barrierRead = NX_HalMemBarrierRead,\n .barrierWrite = NX_HalMemBarrierWrite,\n .barrierInstruction = NX_HalMemBarrierInstruction,\n};\n\n5. 计时器时钟\n硬件时钟会按照一定的频率去增长当前定时器寄存器的值,在 qemu 中这个频率是 10MHZ 。\n如果当前定时器的值超过了超时定时器寄存器的值的时候,就会触发一个中断。注意:前提是打开了定时器中断。\n在做时钟定时器初始化的时候,需要先关闭 Supervisor 模式的定时器中断,然后再设置超时定时器的值。\n这是操作需要通过 SBI 去实现,而获取操作可以直接通过 rdtime 指令获取。\n由于我们想实现1秒钟产生 NX_TICKS_PER_SECOND (一般在100~1000)次定时器中断的效果,\n所以需要计算出产生一次中断,需要间隔多少个tick即可。\n当超时后,就会产生一个中断,于是就设置下一个中断产生时的超时值。\n\n文件:src/arch/riscv64/port/clock.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: Clock for system \n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-16 JasonHu Init\n */\n\n#include \n#include \n#include \n\n#include \n#include \n#include \n\n#define NX_LOG_NAME \"Clock\"\n#include \n\n#define NX_TIMER_CLK_FREQ 10000000 /* qemu has 10MHZ clock frequency */\n\nNX_PRIVATE NX_U64 TickDelta = NX_TIMER_CLK_FREQ / NX_TICKS_PER_SECOND;\n\nNX_PRIVATE NX_U64 GetTimerCounter()\n{\n NX_U64 ret;\n NX_CASM (\"rdtime %0\" : \"=r\"(ret));\n return ret;\n}\n\nvoid NX_HalClockHandler(void)\n{\n NX_ClockTickGo();\n /* update timer */\n sbi_set_timer(GetTimerCounter() + TickDelta);\n}\n\nNX_INTERFACE NX_Error NX_HalInitClock(void)\n{\n /* Clear the Supervisor-Timer bit in SIE */\n ClearCSR(sie, SIE_STIE);\n\n /* Set timer */\n sbi_set_timer(GetTimerCounter() + TickDelta);\n\n /* Enable the Supervisor-Timer bit in SIE */\n SetCSR(sie, SIE_STIE);\n return NX_EOK;\n}\n\n6. 线程上下文\n上下文的切换分为上下文的初始化,从当前线程切换到下一个线程,直接切换到下一个线程。\n初始化线程上下文是在栈上构建一个线程的上下文,当第一次切换到该线程的时候,寄存器就会使用栈中的值。\n在函数 NX_HalContextInit 中,需要构建的上下文参数是线程的入口 startEntry 和线程结束时执行的函数 exitEntry,\n以及线程运行时的参数 arg ,以及将这些数据构建在栈顶 stackTop 之下,最后返回栈低。\n预留一个上下文空间后,设置参数为 a0 ,因为risc-v中c语言函数参数是 a0~a7 。\n入口地址使用 epc 保存,因为上下文切换的时候会模拟一次异常返回,返回后就到这个异常地址处执行。\n结束时执行的函数使用 ra 保存,它是返回地址的意思,表示线程返回后就去执行该函数。\n线程栈使用 sp 寄存器保存。\n还有一个很重要的地方就是对状态寄存器 sstatus 的设置,\n需要能够访问用户态的内存,需要在返回后开启中断以及设置为 Supervisor 模式(因为线程的切换是在内核中完成的)。\n\n文件:src/arch/riscv64/port/context.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: NX_Thread context \n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-16 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#include \n#include \n\nNX_IMPORT void NX_HalContextSwitchNext(NX_Addr nextSP);\nNX_IMPORT void NX_HalContextSwitchPrevNext(NX_Addr prevSP, NX_Addr nextSP);\n\nNX_PRIVATE void *NX_HalContextInit(void *startEntry, void *exitEntry, void *arg, void *stackTop)\n{\n NX_U8 *stack = NX_NULL;\n NX_HalContext *context = NX_NULL;\n\n stack = (NX_U8 *)stackTop;\n stack = (NX_U8 *)NX_ALIGN_DOWN((NX_UArch)stack, sizeof(NX_UArch));\n\n stack -= sizeof(NX_HalContext);\n context = (NX_HalContext *)stack;\n\n NX_MemZero(context, sizeof(NX_HalContext));\n\n context->a0 = (NX_UArch)arg;\n context->epc = (NX_UArch)startEntry;\n context->sp = (NX_UArch)(((NX_UArch)stack) + sizeof(NX_HalContext));\n context->ra = (NX_UArch)exitEntry;\n\n /**\n * allow to access user space memory,\n * return to supervisor mode,\n * enable interrupt\n */\n#ifdef CONFIG_NX_PLATFORM_K210\n /* NOTICE: in k210, SSTATUS_SUM mean disable Supervisor Access User memroy */\n context->sstatus = SSTATUS_SPP | SSTATUS_SPIE;\n#else\n context->sstatus = SSTATUS_SUM | SSTATUS_SPP | SSTATUS_SPIE;\n#endif\n return (void *)stack;\n}\n\nNX_INTERFACE struct NX_ContextOps NX_ContextOpsInterface = \n{\n .init = NX_HalContextInit,\n .switchNext = NX_HalContextSwitchNext,\n .switchPrevNext = NX_HalContextSwitchPrevNext,\n};\n\n在上下文切换的时候,需要注意的是,传入的是线程的栈的地址,可以从地址中取出线程当前栈的值。\n使用这种方式的话,就非常方便移植到其它架构上。\n在 NX_HalContextSwitchNext 中,获取了栈的值后,就从栈中恢复寄存器上下文,然后调用 sret 返回。\n由于 epc 设置了线程的入口地址,那么 sret 返回后就可以让 pc 等于 epc ,那么就切换到线程里面去了。\n至于在 NX_HalContextSwitchPrevNext 中,多了对当前线程的上下文的保存的工作,然后切换到下一个线程。\n\n文件:src/arch/riscv64/kernel/context.S\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: NX_Thread context \n * \n * Change Logs:\n * Date Author Notes\n * 2021-12-01 JasonHu Init\n */\n\n.text\n\n#define __ASSEMBLY__\n#include \n#include \n\n/**\n * void NX_HalContextSwitchNext(NX_Addr nextSP);\n */\n.globl NX_HalContextSwitchNext\nNX_HalContextSwitchNext:\n LOAD sp, (a0) /* sp = *nextSP */\n\n RESTORE_CONTEXT\n sret\n\n/**\n * void NX_HalContextSwitchPrevNext(NX_Addr prevSP, NX_Addr nextSP);\n */\n.globl NX_HalContextSwitchPrevNext\nNX_HalContextSwitchPrevNext:\n mv t0, sp\n\n /**\n * set as supervisor mode and enable interupt \n * make sure kernel mode thread do context switch\n */\n li t1, SSTATUS_SPP | SSTATUS_SPIE | SSTATUS_SUM\n csrs sstatus, t1\n\n /**\n * set `sepc` as `ra`, `ra` saved return address of NX_HalContextSwitchPrevNext\n * when do `sret`, will return from NX_HalContextSwitchPrevNext\n */\n csrw sepc, ra\n\n /* save context to stack */\n SAVE_CONTEXT\n\n /* save old sp to stack, instead the sp in sscratch */\n STORE t0, CTX_SP_OFF * REGBYTES(sp)\n\n /* save sp to from thread, *from = `sp` */\n STORE sp, (a0)\n\n LOAD sp, (a1) /* sp = *nextSP */\n\n /* restore context from stack */\n RESTORE_CONTEXT\n\n /* supervisor return, `pc` = `sepc` */\n sret\n\n7. 中断管理\n在中断中,使能 NX_HalIrqEnable 和禁用 NX_HalIrqDisable 中断只需要对 sstatus 寄存器的 SSTATUS_SIE 位做置位和清理的操作即可。\n除此之外,还提供了对当前中断状态保存和恢复的操作 NX_HalIrqSaveLevel 和 NX_HalIrqRestoreLevel。\n该操作只是多了对 sstatus 寄存器的 SSTATUS_SIE 位保存和恢复。\n除此之外就是对某个中断的使能 NX_HalIrqUnmask 和禁用 NX_HalIrqMask ,以及中断处理完后的应答处理 NX_HalIrqAck。\n这3个接口都是对 PLIC 的封装。\n\n文件:src/arch/riscv64/port/interrupt.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: interrupt manage\n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-31 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#include \n\nNX_PRIVATE NX_Error NX_HalIrqUnmask(NX_IRQ_Number irqno)\n{\n if (irqno = NX_NR_IRQS)\n {\n return NX_EINVAL;\n }\n\n return PLIC_EnableIRQ(NX_SMP_GetBootCore(), irqno);\n}\n\nNX_PRIVATE NX_Error NX_HalIrqMask(NX_IRQ_Number irqno)\n{\n if (irqno = NX_NR_IRQS)\n {\n return NX_EINVAL;\n }\n\n return PLIC_DisableIRQ(NX_SMP_GetBootCore(), irqno);\n}\n\nNX_PRIVATE NX_Error NX_HalIrqAck(NX_IRQ_Number irqno)\n{\n if (irqno = NX_NR_IRQS)\n {\n return NX_EINVAL;\n }\n\n return PLIC_Complete(NX_SMP_GetBootCore(), irqno);\n}\n\nNX_PRIVATE void NX_HalIrqEnable(void)\n{\n WriteCSR(sstatus, ReadCSR(sstatus) | SSTATUS_SIE);\n}\n\nNX_PRIVATE void NX_HalIrqDisable(void)\n{\n WriteCSR(sstatus, ReadCSR(sstatus) & ~SSTATUS_SIE);\n}\n\nNX_PRIVATE NX_UArch NX_HalIrqSaveLevel(void)\n{\n NX_UArch level = 0;\n level = ReadCSR(sstatus);\n WriteCSR(sstatus, level & ~SSTATUS_SIE);\n return level & SSTATUS_SIE;\n}\n\nNX_PRIVATE void NX_HalIrqRestoreLevel(NX_UArch level)\n{\n WriteCSR(sstatus, ReadCSR(sstatus) | (level & SSTATUS_SIE));\n}\n\nNX_INTERFACE NX_IRQ_Controller NX_IRQ_ControllerInterface = \n{\n .unmask = NX_HalIrqUnmask,\n .mask = NX_HalIrqMask,\n .ack = NX_HalIrqAck,\n .enable = NX_HalIrqEnable,\n .disable = NX_HalIrqDisable,\n .saveLevel = NX_HalIrqSaveLevel,\n .restoreLevel = NX_HalIrqRestoreLevel,\n};\n\n8. MMU虚拟内存管理\n目前支持的是mmu-sv39,3级页表,页表和物理页都是4kb大小。\nNX_HalMapPage 是映射虚拟地址,会自动分配物理地址并映射页面。\nNX_HalMapPageWithPhy 映射虚拟地址,但是会指定物理地址,就不用自动分配物理地址了。\nNX_HalUnmapPage 解除地址映射,解除后就不能访问了。\nNX_HalVir2Phy 可以通过虚拟地址找到其映射的物理地址。\nNX_HalSetPageTable 设置页表的地址到硬件寄存器中,当访问虚拟地址的时候,会根据设置的页表进行地址转换。\nNX_HalGetPageTable 可以获取页表的地址。\nNX_HalEnable 是使能 MMU ,所有地址都变成虚拟地址了。\n\n文件:src/arch/riscv64/port/mmu.c\n\nNX_PRIVATE void *NX_HalMapPage(NX_Mmu *mmu, NX_Addr virAddr, NX_Size size, NX_UArch attr)\n{\n NX_ASSERT(mmu);\n if (!attr)\n {\n return NX_NULL;\n }\n\n virAddr = virAddr & NX_PAGE_ADDR_MASK;\n size = NX_PAGE_ALIGNUP(size);\n\n NX_UArch level = NX_IRQ_SaveLevel();\n void *addr = __MapPage(mmu, virAddr, size, attr);\n NX_IRQ_RestoreLevel(level);\n return addr;\n}\n\nNX_PRIVATE void *NX_HalMapPageWithPhy(NX_Mmu *mmu, NX_Addr virAddr, NX_Addr phyAddr, NX_Size size, NX_UArch attr)\n{\n NX_ASSERT(mmu);\n if (!attr)\n {\n return NX_NULL;\n }\n\n virAddr = virAddr & NX_PAGE_ADDR_MASK;\n phyAddr = phyAddr & NX_PAGE_ADDR_MASK;\n size = NX_PAGE_ALIGNUP(size);\n\n NX_UArch level = NX_IRQ_SaveLevel();\n void *addr = __MapPageWithPhy(mmu, virAddr, phyAddr, size, attr);\n NX_IRQ_RestoreLevel(level);\n return addr;\n}\n\nNX_PRIVATE NX_Error NX_HalUnmapPage(NX_Mmu *mmu, NX_Addr virAddr, NX_Size size)\n{\n NX_ASSERT(mmu);\n\n virAddr = virAddr & NX_PAGE_ADDR_MASK;\n size = NX_PAGE_ALIGNUP(size);\n\n NX_Addr addrStart = virAddr;\n NX_Addr addrEnd = virAddr + size - 1;\n NX_Size pages = GET_PF_ID(addrEnd) - GET_PF_ID(addrStart) + 1;\n\n NX_UArch level = NX_IRQ_SaveLevel();\n NX_Error err = __UnmapPage(mmu, virAddr, pages);\n NX_IRQ_RestoreLevel(level);\n return err;\n}\n\nNX_PRIVATE void *NX_HalVir2Phy(NX_Mmu *mmu, NX_Addr virAddr)\n{\n NX_ASSERT(mmu);\n\n NX_Addr pagePhy;\n NX_Addr pageOffset;\n\n MMU_PDE *pageTable = (MMU_PDE *)mmu->table;\n\n MMU_PTE *pte = PageWalk(pageTable, virAddr, NX_False);\n if (pte == NX_NULL)\n {\n NX_PANIC(\"vir2phy walk fault!\");\n }\n\n if (!PTE_USED(*pte))\n {\n NX_PANIC(\"vir2phy pte not used!\");\n }\n\n pagePhy = PTE2PADDR(*pte);\n pageOffset = virAddr % NX_PAGE_SIZE;\n return (void *)(pagePhy + pageOffset);\n}\n\nNX_PRIVATE void NX_HalSetPageTable(NX_Addr addr)\n{\n WriteCSR(satp, MAKE_SATP(addr));\n MMU_FlushTLB();\n}\n\nNX_PRIVATE NX_Addr NX_HalGetPageTable(void)\n{\n NX_Addr addr = ReadCSR(satp);\n return (NX_Addr)GET_ADDR_FROM_SATP(addr);\n}\n\nNX_PRIVATE void NX_HalEnable(void)\n{\n MMU_FlushTLB();\n}\n\nNX_INTERFACE struct NX_MmuOps NX_MmuOpsInterface = \n{\n .setPageTable = NX_HalSetPageTable,\n .getPageTable = NX_HalGetPageTable,\n .enable = NX_HalEnable,\n .mapPage = NX_HalMapPage,\n .mapPageWithPhy = NX_HalMapPageWithPhy,\n .unmapPage = NX_HalUnmapPage,\n .vir2Phy = NX_HalVir2Phy,\n};\n\n9. 进程管理\nNX_HalProcessInitUserSpace 用于在进程创建的时候,创建进程的页表 ,并复制内核的页表项。\nNX_HalProcessFreePageTable 用于在进程退出的时候释放页表。 \nNX_HalProcessSwitchPageTable 用于在进程切换的时候切换页表。\nNX_HalProcessSyscallDispatch 用于分发系统调用,不同的架构传参数的方式会有区别,因此需要特殊处理。\nNX_HalProcessExecuteUser 用于进程从内核跳到用户态执行。\nNX_HalProcessGetKernelPageTable 用于获取内核的页表。\n\n文件:src/arch/riscv64/port/process.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: Process for RISCV64\n * \n * Change Logs:\n * Date Author Notes\n * 2022-1-16 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#include \n#define NX_LOG_NAME \"syscall\"\n#define NX_LOG_LEVEL NX_LOG_INFO\n#include \n#include \n#include \n#include \n#include \n\nNX_PRIVATE NX_Error NX_HalProcessInitUserSpace(NX_Process *process, NX_Addr virStart, NX_Size size)\n{\n void *table = NX_MemAlloc(NX_PAGE_SIZE);\n if (table == NX_NULL)\n {\n return NX_ENOMEM;\n }\n NX_MemZero(table, NX_PAGE_SIZE);\n NX_MemCopy(table, NX_HalGetKernelPageTable(), NX_PAGE_SIZE);\n NX_MmuInit(&process->vmspace.mmu, table, virStart, size, 0);\n return NX_EOK;\n}\n\nNX_PRIVATE NX_Error NX_HalProcessFreePageTable(NX_Vmspace *vmspace)\n{\n NX_ASSERT(vmspace);\n if(vmspace->mmu.table == NX_NULL)\n {\n return NX_EFAULT;\n }\n NX_MemFree(vmspace->mmu.table);\n return NX_EOK;\n}\n\nNX_PRIVATE NX_Error NX_HalProcessSwitchPageTable(void *pageTableVir)\n{\n NX_Addr pageTablePhy = (NX_Addr)NX_Virt2Phy(pageTableVir);\n /* no need switch same page table */\n if (pageTablePhy != NX_MmuGetPageTable())\n {\n NX_MmuSetPageTable(pageTablePhy);\n }\n return NX_EOK;\n}\n\nvoid NX_HalProcessSyscallDispatch(NX_HalTrapFrame *frame)\n{\n NX_SyscallWithArgHandler handler = (NX_SyscallWithArgHandler)NX_SyscallGetHandler((NX_SyscallApi)frame->a7);\n NX_ASSERT(handler);\n\n NX_LOG_D(\"riscv64 syscall api: %x, arg0:%x, arg1:%x, arg2:%x, arg3:%x, arg4:%x, arg5:%x, arg6:%x\",\n frame->a7, frame->a0, frame->a1, frame->a2, frame->a3, frame->a4, frame->a5, frame->a6);\n\n frame->a0 = handler(frame->a0, frame->a1, frame->a2, frame->a3, frame->a4, frame->a5, frame->a6);\n frame->a7 = 0; /* clear syscall api */\n frame->epc += 4; /* skip ecall instruction */\n\n NX_LOG_D(\"riscv64 syscall return: %x\", frame->a0);\n}\n\nNX_IMPORT void NX_HalProcessEnterUserMode(void *args, const void *text, void *userStack);\nNX_PRIVATE void NX_HalProcessExecuteUser(const void *text, void *userStack, void *kernelStack, void *args)\n{\n NX_LOG_D(\"riscv64 process enter user: %p, user stack %p\", text, userStack);\n NX_HalProcessEnterUserMode(args, text, userStack);\n NX_PANIC(\"should never return after into user\");\n}\n\nNX_PRIVATE void *NX_HalProcessGetKernelPageTable(void)\n{\n return NX_HalGetKernelPageTable();\n}\n\nNX_INTERFACE struct NX_ProcessOps NX_ProcessOpsInterface = \n{\n .initUserSpace = NX_HalProcessInitUserSpace,\n .switchPageTable = NX_HalProcessSwitchPageTable,\n .getKernelPageTable = NX_HalProcessGetKernelPageTable,\n .executeUser = NX_HalProcessExecuteUser,\n .freePageTable = NX_HalProcessFreePageTable,\n};\n\n10. SMP多核\n引导核初始化完成后,会初始化内核,在内核初始化完成后,就会进入启动应用核的阶段 NX_HalCoreBootApp。\n如果支持多核,就可以在这个时候去唤醒其他核。不支持的话返回 NX_ENORES 没有资源即可。\n唤醒应用核只需要调用 SBI 提供的唤醒核心功能即可。\n唤醒后,应用核会进入 NX_HalCoreEnterApp, 应用核只需要设置中断表地址,初始化自己的中断控制器即可。\n还有值得注意的是,获取处理器的索引 NX_HalCoreGetIndex。该索引是在处理器数组中的索引,不管什么处理器 id 值,\n都会被映射成索引,相当于是处理器 id 的 hash 值,其返回值范围为 0~NX_MULTI_CORES_NR - 1。\n\n文件:src/arch/riscv64/port/smp.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: HAL Multi Core support\n * \n * Change Logs:\n * Date Author Notes\n * 2021-12-9 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#define NX_LOG_NAME \"Multi Core\"\n#include \n\n#include \n#include \n#include \n#include \n#include \n\nNX_IMPORT NX_Addr TrapEntry0;\nNX_IMPORT NX_Addr TrapEntry1;\nNX_IMPORT NX_Addr TrapEntry2;\nNX_IMPORT NX_Addr TrapEntry3;\n\n/**\n * Within SBI, we can't read mhartid, so I try to use `trap entry` to see who am I.\n */\nNX_PRIVATE NX_UArch NX_HalCoreGetIndex(void)\n{\n NX_Addr trapEntry = ReadCSR(stvec);\n\n if (trapEntry == (NX_Addr)&TrapEntry0)\n {\n return 0;\n }\n else if (trapEntry == (NX_Addr)&TrapEntry1)\n {\n return 1;\n }\n else if (trapEntry == (NX_Addr)&TrapEntry2)\n {\n return 2;\n }\n else if (trapEntry == (NX_Addr)&TrapEntry3)\n {\n return 3;\n }\n /* should never be here */\n while (1);\n}\n\nNX_PRIVATE NX_Error NX_HalCoreBootApp(NX_UArch bootCoreId)\n{\n\n NX_LOG_I(\"boot core is:%d\", bootCoreId);\n NX_UArch coreId;\n for (coreId = 0; coreId \n四、移植总结\n对于 nxos 新架构的移植,都是按照一套统一的接口去实现的。\n在调试过程中会遇到很多问题,需要耐心地调试。\n通常,都是在启动后尽快地实现串口调试,以便能够知道自己跑到什么地方了。\n最开始是可以不开启 MMU 的,最开始不需要跑进程,\n只需要实现 atomic.c、barrier.c、clock.c、context.c、interrupt.c即可。\n如果只是需要运行起来,不需要线程环境,那么就只需要 atomic.c、barrier.c即可。\n移植过程是需要慢慢琢磨,长期积累,才能实现更好的代码。\n"},"programing-manual/platform/i386.html":{"url":"programing-manual/platform/i386.html","title":"i386","keywords":"","body":"i386平台简介\nx86 架构首度出现在 1978 年推出的 Intel 8086 CPU。Intel 之后又推出了包括 80186、80286、80386 以及 80486。\n从 1985 年 80386 开始,Intel 通过对 x86 架构进行 32 位的扩展,实现了 32 位 CPU,而之前的都是 16 位。 \n32位的PC电脑基本都是x86架构,而最早的一款处理器就是i386。因此,几乎所有的32位电脑都兼容i386。\n功能支持\n\n[x] GRUB2引导\n[x] 内存管理\n[x] 上下文切换\n[x] 定时器时钟\n[x] 原子操作\n[x] 内存屏障\n[ ] SMP多核\n[x] MMU支持\n[x] 中断管理\n[x] 系统调用支持\n[x] 执行用户态程序\n[x] 串口输入输出\n[x] 通过单元测试和集成测试\n[x] gdb调试\n\n运行方法\n# 1. 进入nxos源码,打开终端。\n# 2. 初始化环境\nsource setup.sh # linux\nsetup.bat # windows\n# 3. 获取默认配置\nmake defconfig\n# 4. 编译运行\nmake run -j8 # -jN是多线程编译\n# 5. ctrl + a z 退出qemu\n\n"},"programing-manual/platform/qemu_riscv64.html":{"url":"programing-manual/platform/qemu_riscv64.html","title":"qemu_riscv64","keywords":"","body":"qemu_riscv64平台简介\nQEMU是一种通用的开源计算机仿真器和虚拟器。本平台就是qemu对riscv64架构的仿真支持。\n功能支持\n\n[x] OpenSBI固件\n[x] 内存管理\n[x] 上下文切换\n[x] 定时器时钟\n[x] 原子操作\n[x] 内存屏障\n[x] SMP多核\n[x] MMU支持\n[x] 中断管理\n[x] 系统调用支持\n[x] 执行用户态程序\n[x] 串口输入输出\n[x] 通过单元测试和集成测试\n[x] gdb调试\n\n运行方法\n# 1. 进入nxos源码,打开终端。\n# 2. 初始化环境\nsource setup.sh riscv64-qemu_riscv64 # linux\nsetup.bat riscv64-qemu_riscv64 # windows\n# 3. 获取默认配置\nmake defconfig\n# 4. 编译运行\nmake run -j8 # -jN是多线程编译\n# 5. ctrl + a z 退出qemu\n\n"},"programing-manual/platform/k210.html":{"url":"programing-manual/platform/k210.html","title":"k210","keywords":"","body":"k210平台简介\n勘智Kendryte K210是嘉楠科技公司推出的基于RISC-V架构的64位双核SOC。\n\n双核 64-bit RISC-V RV64IMAFDC (RV64GC) CPU / 400MHz(可超频到600MHz)\n双精度 FPU\n8MiB 64bit 片上 SRAM(6MiB通用SRAM+2MiB的AI专用SRAM)\n神经网络处理器(KPU) / 0.8TFLOPS\n音频处理器(APU)\n可编程 IO 阵列 (FPIOA)\n双硬件512点16位复数FFT\nSPI, I2C, UART, I2S, RTC, PWM, 定时器支持\nAES, SHA256 加速器\n直接内存存取控制器 (DMAC)\n\n功能支持\n\n[x] RustSBI固件\n[x] 内存管理\n[x] 上下文切换\n[x] 定时器时钟\n[x] 原子操作\n[x] 内存屏障\n[x] SMP多核\n[x] MMU支持\n[x] 中断管理\n[x] 系统调用支持\n[x] 执行用户态程序\n[x] 串口输入输出\n[x] 通过单元测试和集成测试\n[ ] gdb调试\n\n运行方法\n# 1. 进入nxos源码,打开终端。\n# 2. 初始化环境\nsource setup.sh riscv64-k210 # linux\nsetup.bat riscv64-k210 # windows\n# 3. 获取默认配置\nmake defconfig\n# 4. 编译运行\nmake run -j8 UART=/dev/ttyUSB0 # linux: -jN是多线程编译, UART是串口设备,需要在设备列表查看是哪个设备,默认是/dev/ttyUSB0,可以不写。\nmake run -j8 UART=com3 # windows: -jN是多线程编译, UART是串口设备,需要在设备管理器查看,k210的设备是哪个串口。\n\n# 5. ctrl + ] 退出k210的运行\n\n"},"programing-manual/user/api.html":{"url":"programing-manual/user/api.html","title":"API设计","keywords":"","body":"API应用程序接口\n本文档存放的是用户程序的编程接口的设计说明。\nNXOS的API接口分为几个大类。进程,线程,内存管理,时间管理,枢纽系统,文件系统,设备管理,网络管理,图形管理,安全管理,用户态驱动框架。\n进程管理\n\n\n\n功能\n函数\n\n\n\n\n创建进程\nint ProcessCreate(char name, char path, int flags, char cmd, void env)\n\n\n退出进程\nvoid ProcessExit(int exitCode)\n\n\n终止进程\nint ProcessTerminate(int pid)\n\n\n获取进程ID\nint ProcessGetId(void)\n\n\n等待进程退出\nint ProcessWait(int pid, int timeout, int flags)\n\n\n\n线程管理\n\n\n\n功能\n函数\n\n\n\n\n创建线程\nint ThreadCreate(ThreadHandler handler, void *arg, USize stackSize, int flags)\n\n\n退出线程\nvoid ThreadExit(int exitCode)\n\n\n获取线程ID\nint ThreadGetId(void)\n\n\n终止线程\nint ThreadTerminate(int tid)\n\n\n挂起线程\nint ThreadSuspend(int tid)\n\n\n恢复线程\nint ThreadResume(int tid)\n\n\n等待线程退出\nint ThreadWait(int tid, int timeout, int flags)\n\n\n创建互斥体\nMutex MutexCreate(int attr, char name)\n\n\n删除互斥体\nint MutexDelete(Mutex *mutex)\n\n\n初始化互斥体\nint MutexInit(Mutex mutex, int attr, char name)\n\n\n获取互斥体\nint MutexAcquire(Mutex *mutex)\n\n\n释放互斥体\nint MutexRelease(Mutex *mutex)\n\n\n尝试获取互斥体\nint MutexTryAcquire(Mutex *mutex)\n\n\n创建条件变量\nCondition ConditionCreate(int attr, char name)\n\n\n删除条件变量\nint ConditionDelete(Condition *cond)\n\n\n初始化条件变量\nint ConditionInit(Condition cond, int attr, char name)\n\n\n休眠等待条件变量\nint ConditionSleep(Condition cond, Mutex mutex)\n\n\n唤醒休眠等待条件的单个线程\nint ConditionWake(Condition *cond)\n\n\n唤醒休眠等待条件的全部线程\nint ConditionWakeAll(Condition *cond)\n\n\n分配一个tls\nint TlsAlloc(void)\n\n\n释放一个tls\nint TlsFree(int tlsIndex)\n\n\n设置tls的值\nint TlsSetValue(int tlsIndex, void *value)\n\n\n获取tls的值\nvoid TlsGetValue(int tlsIndex)\n\n\n\n内存管理\n\n\n\n功能\n函数\n\n\n\n\n分配内存\nvoid *MemAlloc(USize size)\n\n\n释放内存\nint MemFree(void *object)\n\n\n映射内存\nvoid MemMap(void addr, USize size, int attr)\n\n\n解除映射内存\nint MemUnmap(void *addr)\n\n\n复制内存\nvoid MemCopy(void dest, void src, USize size)\n\n\n移动内存\nvoid MemMove(void dest, void src, USize size)\n\n\n填充内存\nvoid MemFill(void *addr, USize size, U8 value)\n\n\n清空内存\nvoid MemZero(void *addr, USize size)\n\n\n\n时间管理\n\n\n\n功能\n函数\n\n\n\n\n获取当前的时间\nvoid TimeGetCurrent(TimeSytem *time)\n\n\n设置当前的时间\nvoid TimeSetCurrent(TimeSytem *time)\n\n\n获取系统运行的时间\nUSize TimeGetClock(void)\n\n\n\n文件系统\n\n\n\n功能\n函数\n\n\n\n\n创建文件\nNX_Error NX_FileCreate(char *path, int attr)\n\n\n删除文件\nNX_Error NX_FileDelete(char *path)\n\n\n打开文件\nNX_FD NX_FileOpen(char *path, int flags, int attr)\n\n\n关闭文件\nNX_Error NX_FileClose(NX_FD fd)\n\n\n读取文件\nSSize NX_FileRead(NX_FD fd, void *buf, USize bytes)\n\n\n写入文件\nSSize NX_FileWrite(NX_FD fd, void *buf, USize bytes)\n\n\n索引文件\nOffset NX_FileSeek(NX_FD fd, Offset offset, int seekMethod)\n\n\n获取文件偏移\nOffset NX_FileTellOffset(NX_FD fd)\n\n\n检查文件结束\nNX_Bool NX_FileIsEnd(NX_FD fd)\n\n\n检查文件结束\nNX_Bool NX_FileAccess(char *path, int attr)\n\n\n创建目录\nNX_Bool NX_DirectoryCreate(char *path, int attr)\n\n\n删除目录\nNX_Bool NX_DirectoryDelete(char *path)\n\n\n打开目录\nNX_Dir DirectoryOpen(char *path, int flags)\n\n\n关闭目录\nNX_Error DirectoryClose(NX_Dir dir)\n\n\n读取目录\nNX_DirEntry *DirectoryRead(NX_Dir dir)\n\n\n重置读取位置\nNX_Error DirectoryRewind(NX_Dir dir)\n\n\n\n网络系统\n参考socket套接字接口设计\n\n\n\n功能\n函数\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n设备管理\n\n\n\n功能\n函数\n\n\n\n\n创建设备\nint DeviceCreate(char *path, int attr)\n\n\n删除设备\nint DeviceDelete(char *path)\n\n\n打开设备\nint DeviceOpen(char *path, int flags)\n\n\n关闭设备\nint DeviceClose(int dev)\n\n\n读取设备\nISize DeviceRead(int dev, void *buf, USize len, Offset offset)\n\n\n写入设备\nISize DeviceWrite(int dev, void *buf, USize len, Offset offset)\n\n\n写入设备\nISize DeviceControl(int dev, int cmd, void *arg)\n\n\n\n枢纽系统\n等hub system设计好了再设计接口,目前还没有概念\n\n\n\n功能\n函数\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n图形系统\n暂不设计,等内核基本功能完成后再设计\n\n\n\n功能\n函数\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n安全管理\n暂不需要\n\n\n\n功能\n函数\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n用户态驱动框架\n等内核基础功能完成后实现\n\n\n\n功能\n函数\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},"tutorial/code-style.html":{"url":"tutorial/code-style.html","title":"代码风格","keywords":"","body":"NXOS 编程风格\n本文档是关于NXOS的代码编程风格的描述。开发者必须遵守本文档规范进行开发。NXOS系统内核使用C语言作为主要开发语言,因此以下规则仅仅适用于C语言代码。\n1.目录名称\n目录名称采用首字母大写的形式,子目录应该是属于父目录的内容,需要有相关性。例如:Drivers/Disk/\n2.文件名称\n文件名称也是使用首字母大写,如果有缩写,可以全部都大写。文件命名尽量不要使用通用化、使用频率高的名称。例如:MutexLock.c\n3.头文件定义\nC语言头文件为了避免多次重复包含,需要定义一个符号。这个符号的定义形式请采用如下的风格:\n#ifndef __FILE__\n#define __FILE__\n/* header file content */\n#endif /* __FILE__ */\n\n即定义的符号两侧采用 \"_\" 以避免重名,另外也可以根据文件名中是否包含多个词语而采用 \"\" 连接起来。例如:\n__DRIVER_KEYBOARD__\n4.头文件注释\n在每个源文件文件头上,应该包括相应的版权信息,文件描述,Change Log 记录:\n/**\n * Copyright (c) 2018-2021, BookOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: This file is a code style example\n * \n * Change Logs:\n * Date Author Notes\n * 2021-9-12 JasonHu Init\n * 2021-10-1 JasonHu Add xxx\n */\n\n例如采用如上的形式。\n5.变量命名\n变量采用小驼峰命名风格,即首字母小写,后续单词首字母大写,例如:\nmyThread, tmpFileBuffer\n\n6.函数命名\n函数采用大驼峰命名风格,即每个单词的首字母都大写,如果单词是用的缩写,那么单词之间需要用\"_\"隔开,例如:\nThreadFindByName\nVFS_CreateFile\n\n如果函数参数为空,必须使用void作为入口函数,例如:\nCpu *CpuGetCurrent(void)\n\n7.结构体定义\n结构体命名使用大驼峰风格,结构体成员使用小驼峰命名,如果成员是函数指针,则使用大驼峰。\nstruct SoundDevice\n{\n char name[SOUND_DEVICE_NAME_LEN];\n int reference;\n void (*Write)(void *buffer, NX_Size len);\n};\n\n其中\"{\"和\"}\"需要单独使用一行。\n结构体的类型定义是为了消除struct关键字,可以和结构体名一致。\ntypedef struct SoundDevice SoundDevice;\n\n如果需要在类型定义中使用指针,则需要使用Ptr后缀或者其他可以表达意思的单词指明。\ntypedef struct Device *DevicePtr;\n\n8.枚举定义\n枚举结构名也是用大驼峰,枚举成员使用全大写,单词间用\"_\"隔开。\nenum SoundType\n{\n SOUND_AC97,\n SOUND_PC,\n SOUND_HD,\n};\ntypedef enum SoundType SoundType;\n\n9.宏定义\n使用大写作为名字,单词间使用\"_\"隔开,例如:\n#define DEVICE_NAME_LEN 32\n\n当宏需要使用多行的时候,则使用空格+\"\\\"的形式进行换行,例如:\n#define ConsolePrintColor(color, str) \\\n ConsoleSetColor(color); \\\n ConsolePrint(str); \\\n ConsoleRestoreColor()\n\n10.注释编写\n请使用英文做为注释,使用中文注释将意味着在编写代码时需要来回不停的切换中英文输入法从而打断编写代码的思路。并且使用英文注释也能够比较好的与中国以外的技术者进行交流。除非必须引用原来的文本的时候,就可以写中文。\n源代码的注释不应该过多,更多的说明应该是代码做了什么,仅当个别关键点才需要一些相应提示性的注释以解释一段复杂的算法它是如何工作的。对语句的注释只能写在它的上方或右方,其他位置都是非法的。\n注意,\"//\"注释只能放到右边。\n/* Single line comment */\n/**\n * Multi-line comments \n * Line1\n * Line2\n */\n\nbufSize = 16; // set buffer Size\n11.缩进以及分行\n缩进请采用 4 个空格的方式。如果没有什么特殊意义,请在 \"{\" 后进行分行,并在下一行都采用缩进的方式,例如:\n if (condition)\n {\n /* xxx */\n }\n\n唯一的例外是 switch 语句,switch-case 语句采用 case 语句与 switch 对齐的方式, 例如:\n switch (data)\n {\n case data1:\n break;\n case data2:\n break;\n default:\n break;\n }\n\n12.大括号与空格\n从代码阅读角度,建议每个大括号单独占用一行,而不是跟在语句的后面,例如:\n if (condition)\n {\n /* xxx */\n }\n\n匹配的大括号单独占用一行,代码阅读起来就会有相应的层次而不会容易出现混淆的情况。空格建议在非函数方式的括号调用前留一个空格以和前面的进行区分,例如:\n if (x \n建议在括号前留出一个空格(涉及的包括 if、for、while、switch 语句),而运算表达式中,运算符与字符串间留一个空格。另外,不要在括号的表达式两侧留空格,例如:\n /* X: Bad!!! */\n if ( x \n有一个例外,就是如果遇到循环函数,里面不会执行代码的情况,括号就直接写在右边。\n while (x \n13.函数指针类型定义\n在使用函数指针类型定义的时候,需要使用Handler后缀,来表示是一个处理函数。\ntypedef void (*SoundCallbackHandler)(void *buffer, NX_Size len);\n\nSoundCallbackHandler sndHandler;\n\n14.函数参数太多\n当函数参数过多的时候,一行写不下,那么就需要把每个参数写成一行。\nNX_Thread NX_CreateThread(char *threadName,\n ThreadHandler threadHandler,\n void *param,\n void *stackBase,\n NX_Size stackSize,\n int priority)\n{\n ... \n}\n\n15.宏条件定义\n当使用宏条件#if, #else, #endif这种时,需要在开头和结尾后面写上注释来帮助开发这快速找到对应的宏。\n#ifdef NX_HAS_SMP\nxxx\n#else\n#ifdef NX_HAS_ONECORE\nyyy\n#endif /* NX_HAS_ONECORE */\n#endif /* NX_HAS_SMP */\n\n总结\n相信看到最后,您已经对我们的编程规范有了一定的了解,那么就开始您的NXOS开发之旅吧!\n"},"tutorial/commit-rule.html":{"url":"tutorial/commit-rule.html","title":"提交规则","keywords":"","body":"代码提交日志规则CommitRule\n当我们添加代码要提交到git仓库中时,我们需要统一下规范,这样不会显得整个项目乱糟糟的,当然是需要花点时间来学习和改变的。每次提交的代码尽量短小,涉及范围不要太广,专注于某个领域。\n每次提交,Commit message 都包括两个部分:header和body。\n(): \n\n\n\n其中,header 是必需的,body 可以省略。\n不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。\nHeader\nHeader部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。\ntype\n用于说明 commit 的类别,只允许使用下面7个标识。\n\nfeat:新功能(feature)\nfix:修补bug\ndocs:文档(documentation)\nstyle: 格式(不影响代码运行的变动)\nrefactor:重构(即不是新增功能,也不是修改bug的代码变动)\ntest:增加测试\nbuild : 改变了build工具 如 xbuild改成了xmake\nrevert : 撤销上一次的 commit\nchore : 构建过程或辅助工具的变动,比如把grub改成了UEFI。\n\n如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。\nscope\nscope用于说明 commit 影响的范围,比如文件系统,进程管理,内存管理等等,视项目不同而不同。\n例如在mm,thread,fs等。\n如果你的修改影响了不止一个scope,你可以使用*代替。\nsubject\nsubject是 commit 目的的简短描述,不超过50个字符。\n其他注意事项:\n\n以动词开头,使用第一人称现在时,比如change,而不是changed或changes\n第一个字母小写\n结尾不加句号(.)\n\nBody\nBody 部分是对本次 commit 的详细描述,可以分成多行。下面是一个范例。\nAdd fatfs, suport fat12, fat16, fat32, exfat.\n\n- fat12: used for floppy\n- fat32: used for sdcard/harddisk\n\n有两个注意点:\n\n使用第一人称现在时,比如使用change而不是changed或changes。\n永远别忘了第2行是空行\n应该说明代码变动的动机,以及与以前行为的对比。\n\n举例\nfeat(mm): add buddy system\n\nAdd simple buddy system code, it works weel.\nfix(mm): bug on buddy alloc page\ndocs(mm): add buddy system doc\nstyle(*): add NX_ prefix for all kernel function\nrefactor(mm): update buddy system\ntest(mm): add utest for buddy system\nrevert: feat(mm): add buddy system\n"},"tutorial/menuconfig.html":{"url":"tutorial/menuconfig.html","title":"菜单配置","keywords":"","body":"菜单配置\nmenuconfig简介\nmenuconfig是一个可以在终端显示的图形化配置界面,他不仅可以极大的方便我们对于配置文件的修改, 还能自动处理依赖关系。\n在NXOS中使用menuconfig\nNXOS使用了一个python开发的menuconfig,它的跨平台性以及易用性成为了我们的首选。\n对于开发者而言,我们已经做好了配置,你只需要知道如何去使用即可。\n在根目录中,打开一个终端,在配置了环境变量之后,就可以使用配置了。\n\n更新配置文件\n当你要使用某个平台的配置时,需要通过设置默认配置来进行选择。\nmake defconfig\n\n\n进行菜单配置,就可以选择你想要的功能或者进行某些功能的配置。配置完后,可以根据菜单的提示进行退出或者保存。\nmake menuconfig\n\n\n完成配置后,就可以进行编译了,编译的时候就会根据最新的配置进行编译。\n# 只编译\nmake\n# 编译并运行\nmake run\n\n\n最后,如果想要保存当前的配置到选中的平台,则需要在执行save操作才行。操作完后,你所修改的配置就保存了,当切换到其它平台后,这个配置依然存在,只需要重复第一步,更新一下配置即可。\nmake saveconfig\n\n\n\n"},"tutorial/toolchains.html":{"url":"tutorial/toolchains.html","title":"工具链","keywords":"","body":"工具链\n本文档存放了工具链的下载地址,搭建编译环境的时候需要下载工具链后再进行编译。\n一、Windows环境工具\n\n下载工具链\n\nx86-64/i386工具链:\n服务器下载(较慢)\n百度网盘链接,提取码:NXOS\nrisc-v64工具链:\n服务器下载(较慢)\n百度网盘链接,提取码:NXOS\n\n解压到工具目录下面\n\n下载到本地后,需要手动解压到一个目录下面,然后对工具链的bin路径配置环境变量。\n例如:\n解压到路径:nxos-toolchains\\x86_64-elf-gcc\n配置环境变量时的路径:nxos-toolchains\\x86_64-elf-gcc\\bin\n二、Linux环境工具\nLinux工具链只需要从软件包管理器下载安装即可:\nx86-64/i386工具链:apt install gcc\nrisc-v64/32工具链: apt install gcc-riscv64-unknown-elf\n"},"tutorial/utest.html":{"url":"tutorial/utest.html","title":"单元测试","keywords":"","body":"测试\n单元测试\n针对函数单元进行测试,测试函数的基本功能,稳定性,健壮性,覆盖率。\n着重点:参数,返回值,功能。\n/* 最小的单元测试 */\nNX_TEST(TestUnitName)\n{\n ASSERT_TRUE(...)\n ASSERT_FALSE(...)\n\n EXCEPT_TRUE(...)\n EXCEPT_FALSE(...)\n}\n\n/* 进入单元时执行 */\nNX_TEST_SETUP(TestUnitName)\n{\n\n}\n\n/* 退出单元时执行 */\nNX_TEST_CLEAN(TestUnitName)\n{\n\n}\n\n/* 单元测试表,填写要测试的单元 */\nNX_TEST_TABLE(TestCaseName)\n{\n NX_TEST_UNIT(TestUnitName), /* 不带setup和clean的单元 */\n NX_TEST_UNIT_SETUP(TestUnitName), /* 带setup的单元 */\n NX_TEST_UNIT_CLEAN(TestUnitName), /* 带clean的单元 */\n NX_TEST_UNIT_SETUP_CLEAN(TestUnitName), /* 带setup和clean的单元 */\n};\n\n/* 进入一个单元测试时执行 */\nNX_TEST_CASE_SETUP(TestCaseName)\n{\n return NX_EOK;\n}\n\n/* 退出一个单元测试时执行 */\nNX_TEST_CASE_CLEAN(TestCaseName)\n{\n return NX_EOK;\n}\n\n/* 定义一个单元测试 */\nNX_TEST_CASE(TestCaseName);\n\n举例:单元测试自身测试\nNX_TEST(Test)\n{\n NX_ASSERT_TRUE(1);\n NX_ASSERT_TRUE(NX_True);\n NX_ASSERT_FALSE(0);\n NX_ASSERT_FALSE(NX_False);\n}\n\nNX_TEST(Test1)\n{\n NX_ASSERT_EQ(1, 1);\n NX_ASSERT_NE(0, 1);\n\n NX_ASSERT_LT(3, 5);\n NX_ASSERT_LE(3, 3);\n NX_ASSERT_LE(3, 4);\n NX_ASSERT_GT(4, 3);\n NX_ASSERT_GE(3, 3);\n\n char *p = NX_NULL;\n NX_ASSERT_NULL(p);\n char *q = (char *) 0x1000;\n NX_ASSERT_NOT_NULL(q);\n}\n\nNX_TEST(Test2)\n{\n NX_ASSERT_IN_RANGE(1, 0, 5);\n NX_ASSERT_IN_RANGE(4, 0, 5);\n NX_ASSERT_IN_RANGE(1, 1, 5);\n NX_ASSERT_IN_RANGE(5, 1, 5);\n\n NX_ASSERT_NI_RANGE(1, 2, 5);\n NX_ASSERT_NI_RANGE(0, 1, 5);\n NX_ASSERT_NI_RANGE(6, 1, 5);\n NX_ASSERT_NI_RANGE(5, 1, 4);\n}\n\nNX_TEST(Test3)\n{\n NX_ASSERT_STREQ(\"hello\", \"hello\");\n char *s = \"world!\";\n NX_ASSERT_STREQ(s, \"world!\");\n\n char buf0[32] = {0x10, 0x20, 0x30,};\n char buf1[32] = {0x10, 0x20, 0x30,};\n NX_ASSERT_BUFEQ(buf0, buf1, 32);\n\n NX_ASSERT_STRNE(\"hello\", \"world\");\n s = \"hello!\";\n NX_ASSERT_STRNE(s, \"world!\");\n\n char buf2[32] = {0x40, 0x50, 0x60,};\n NX_ASSERT_BUFNE(buf1, buf2, 32);\n}\n\nNX_TEST_SETUP(Test)\n{\n NX_ASSERT_TRUE(1);\n}\n\nNX_TEST_CLEAN(Test)\n{\n NX_ASSERT_FALSE(0);\n}\n\nNX_TEST_TABLE(UTest)\n{\n NX_TEST_UNIT(Test),\n NX_TEST_UNIT_SETUP_CLEAN(Test),\n NX_TEST_UNIT(Test1),\n NX_TEST_UNIT(Test2),\n NX_TEST_UNIT(Test3),\n};\n\nNX_TEST_CASE_SETUP(UTest)\n{\n NX_ASSERT_TRUE(1);\n return NX_EOK;\n}\n\nNX_TEST_CASE_CLEAN(UTest)\n{\n NX_ASSERT_FALSE(0);\n return NX_EOK;\n}\n\nNX_TEST_CASE(UTest);\n\n最精简框架:\nNX_TEST(yyy)\n{\n}\n\nNX_TEST_TABLE(xxx)\n{\n NX_TEST_UNIT(yyy),\n};\n\nNX_TEST_CASE(xxx);\n\n使用方法\n在menuconfig中,打开单元测试功能,选取需要测试的单元,退出保存。\n在命令行中输入命令即可开始测试:\nmake run TC=y # TC是TestCase的缩写,表示启用测试案例。\n"}}} \ No newline at end of file +{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["...","2.0",":","amd64","apach","arch","arm32","arm64","buddy伙伴算法","develop","do","doc","heapcache算法","i386","issus","k210","linux","longarch","mmu","nxo","nxos是next","nxos采用","nxos采用混合内核架构,即宏内核和微内核相结合。优势是减小内核代码,增加功能可扩展性,功能模块是独立的进程,添加和删除模块就是进程的创建和关闭。","oper","platform","pr","qemu","qemu平台支持gdb调试,并搭配了vscode图形化调试","riscv64","sdk","smp","smp多核调度","statu","system的意思,是一个跨平台的简洁、高性能、高稳定性的支持多核的混合内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。","todo","v0.1","windowsnt","x86","x86_64","xbook","一、nxo","三、内核功能","中断管理框架,以及延迟中断队列机制","二、nxo","五、许可协议","以线程为最小调度单元","其他功能正在开发中,敬请期待!","内核就只负责基础功能的支持,平台移植和驱动的移植,具体如何使用,可以根据用户态的","内核是同一个数量级的。","内核,","分支","功能","可以运行用户态的程序","可以通过串口输出调试,也可以通过串口输入按键","和服务,应用程序去构建应用。","四、平台支持","在mmu的基础上对内核和进程进行隔离","基于","基于ticks实现的定时器,基于线性链表实现","多核,多架构,多平台。","如果您在文档中发现了问题或者想参与文档的编写,可以在文档仓库提出","开源协议,可以自由的复制和修改代码,只需要保留版权说明即可,无潜在的商业风险。","彩色日志输出","我们以简洁、高效、稳定为核心,用比较简洁且高效的方式去实现一些功能,去掉一些复杂,冗杂的功能,化繁为简。","或者提交","描述","支持","支持gdb调试内核","支持vf","支持中断管理","支持串口输入输出","支持定时器","支持线程绑定核,处理器均衡负载","支持虚拟地址","支持进程","支持配置日志输出时间,格式,名称,颜色,消息等级等","文档版本","是一个分时多进程/多线程(也支持实时优先级),支持","物理内存管理","的初期目标是运行在一些高性能的嵌入式设备上,比如手机终端,游戏掌机等。后期目标是能够作为服务器使用,甚至是桌面操作系统使用。","的现代操作系统,它和","目标","简介","线程管理","虚拟内存管理","虚拟文件系统,目前支持cpio只读文件系统实现"],"tutorial/quick-start.html":["#","&&","(cmder)","(git)下载后安装即可。","(python)下载后安装即可。","1.","2.","2.04","3.","a.","apt","b.","clean","ctrl+a","ctrl+d","defconfig","gdb","genisoimag","git","grub2","hat/fedora/centos:","i386","instal","linux:","linux下设置i386环境并设置platform=x86","linux下设置riscv64环境platform=riscv64","linux环境","make","menuconfig","mkf","mtool","nxo","prepar","python","qemu","qemu_riscv64","red","riscv64","run","saveconfig","setup.bat","setup.sh","sourc","sudo","system","tools/","tools/genisoimag","tools/grub","tools/mkf","tools/mtool","tools服务器下载(速度较慢,请耐心等待)","truncat","ubuntu/kali","window","windows下设置i386环境并设置platform=x86","windows下设置riscv64环境platform=riscv64","windows环境","x","yum","一、开发环境搭建","下载后需要解压出来,然后将每一个目录配置到path系统环境变量中(最好是配置到环境变量的最前面,避免和其它系统已经存在的工具冲突),解压后您将会有:","下载链接:https://qemu.weilnetz.de/w64/","为了方便,我们将其他比较小的工具已经打包在一个工具包里面了,下载解压后,手动添加对应的工具到系统环境变量即可。","为选中的平台做初始化(仅仅第一次编译的时候需要),会为每一个平台下载平台特别需要的工具到平台中。","二、编译和运行","仅仅编译源码","使用菜单配置进行个性化剪裁。可以选择打开或者关闭某些功能,设置一些变量等。配置完成后需要按esc键退出,退出后会生成新的配置头文件。","其他工具","其他涉及到的工具:python","加载平台的默认配置,会读取选中的平台的默认menuconfig配置到工作区中。","可以直接在终端中输入命令安装:","在获取nxos的系统源码后,您需要下载编译nxos的工具链(点我跳转),下载好后,进行环境变量的配置。","快速体验","快速入门","我们采用的是世界上最流行的qemu虚拟机,各种平台都有支持,刚好有我们需要的版本。","推荐的一个不错的终端(非必须)下载后安装即可。","本文档将带您从入门到劝退。","欢迎来到nxos内核!nxos是一个跨平台的简洁的高性能,高稳定性的操作系统内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。","步骤拆解","第一次执行时,为平台做初始化","第一次编译一个新的平台的时候需要clean一下","编译器工具链","编译源码并运行","编译源码并运行,默认使用qemu虚拟机模拟运行,按下小写的ctrl+x后再按下a则可以退出qemu运行。","虚拟平台运行","虚拟机","设置临时环境变量,在目录中有脚本来设置,直接运行即可。windows使用bat,linux使用sh。","设置环境变量","调试完成后,需要将配置信息和文件保存到对应平台中,使得配置永久生效。","输入","进入到nxos目录中,在目录中打开一个终端。","退出","选择最新版本下载即可。下载后,安装到一个路径,再把路径配置到path系统环境变量中即可。","配置环境并运行"],"programing-manual/base/framework.html":["(fatfs,","(x86,","+","...)",".vscode","/","1.","2.","3.","app","arch","arm,","config","d1","doc","driver","extfs,","fs","hardwar","hub","i/o驱动框架和中断管理","i386,","includ","init","io","ipc","irq","k210,","kdriver","kernel","kservic","mm","netstack)","nt","nxbase","nxo","pc","platform","process","riscv,","riscv64","riscv64,","riscv64等","rt","sched","script","smart。","src","syscal","system","test","thread","time","timer","udriv","userverc","util","vf","virt","vmm","vscode的一些配置文件,有gdb调试配置","window","x86","xnu","|","一、混合内核框架","二、目录框架","内存管理模块","内核、苹果","内核一些功能的文档说明","内核其余模块","内核初始化以及main核心","内核源码目录","内核的源码","内核,还有国产开源系统","头文件","常用的功能组件,小工具,log显示以及字符串操作等","平台","平台支持,存放具体的平台,比如pc平台或者一个开发板","平台框架","平台配置文件,配置了支持的平台","描述","整体框架","文件系统框架以及各种文件系统支持","时间模块,时钟和定时器","架构","架构相关代码,x86,","框架","测试模块,测试框架和测试代码","用到的xbuild脚本和kconfig脚本等","目录","调度模块,线程和smp的内容,以及同步机制","进程管理,系统调用相关内容","进程间通信","采取架构和平台分离的措施,其原因在于,一个架构可能有多个平台,分离后可以服用架构的代码。","采用混合内核框架,也就是结合宏内核和微内核。这样的系统有","项目目录","驱动程序,磁盘,输入输出设备等"],"programing-manual/base/start.html":["(smp初始化)","(内核的主函数)","(初始化调用)","(平台初始化,","(平台初始化二阶段,可以使用内核的功能:","(平台的主函数,什么都可以使用:","(调度第一个线程)","...",">","_start","_start,当执行到这个地方的时候,内核就开始运行了。","nx_callsinit","nx_halplatforminit","nx_halplatformmain","nx_halplatformstage2","nx_main","nx_schedtofirstthread","nx_smp_main","nx_smp_preload","nxo","showlogvers","不能使用内核的功能:","内核功能初始化","内核执行路径","启动流程","在设备开机后,处理器会跳到一个地址去执行代码,一般都是固定的,然后再从这些固定代码跳转到程序员自己编写的程序。程序员自己写的程序就是裸机,rtos或者操作系统。在nxos中,不同的平台会有不同的执行地址,所以我们需要指定内核程序的入口地址,在链接的时候指定一个标签","平台开发者实现)"],"programing-manual/mm/mm.html":["一.","三.","二.","内存管理","内存管理分为物理内存管理、虚拟内存管理、进程虚拟内存管理这三个大模块。","内存管理是操作系统中最为核心和重要的部分,这是由于很多其它模块的运行都需要内存的分配和释放。","内核虚拟堆内存管理,使用基于缓存的链表实现","物理内存管理,使用伙伴算法实现。","进程虚拟内存管理,基于线性链表实现"],"programing-manual/mm/buddy.html":["*","*mem,","*nx_buddyallocpage(nx_buddysystem*","*ptr);","+","/**","0x82000000","bootload","buddi","buddy伙伴算法","count","count);","layout:","memori","nx_buddycreate(void","nx_buddyfreepage(nx_buddysystem*","nx_buddyincreasepage(nx_buddysystem*","nx_buddysystem*","nx_error","nx_page*","nx_pagefromptr(nx_buddysystem*","nx_size","nxo","physic","qemu","riscv64","size);","system","system,","top","void","一.","三、框架图","个页面。在mmu映射和虚拟内存管理器中会使用到。","中使用","之间的这部分内存。简单的说就是对一段或者多段空闲的内存地址进行管理,可以进行分配与释放,让操作系统去使用。","二.","优缺点","伙伴内存管理算法。为了便于页面的维护,将多个页面组成内存块,每个内存块都有2的方幂个页,方幂的指数被称为阶。在操作内存时,经常将这些内存块分成大小相等的两个块,分成的两个内存块被称为伙伴块,采用一位二进制数来表示它们的伙伴关系。当这个位为1,表示其中一块在使用;当这个位为0,表示两个页面块都空闲或者都在使用。系统根据该位为0或位为1来决定是否使用或者分配该页面块。系统每次分配和回收伙伴块时都要对它们的伙伴位跟1进行异或运算。所谓异或是指刚开始时,两个伙伴块都空闲,它们的伙伴位为0,如果其中一块被使用,异或后得1;如果另一块也被使用,异或后得0;如果前面一块回收了异或后得1;如果另一块也回收了异或后得0。","内存是操作系统运行的根基,处理器从内存中取出指令来执行,在进入操作系统之前,一般会有引导器","内存管理最基本的接口就是分配和释放。为了能够支持分页机制,为页表映射提供内存的支持,将内存分为页面大小进行管理会比较合适。","原理","另外拆分和合并涉及到","四.","在","在使用页面的过程中,可能会需要把一个地砖转换成其对应的页面结构,来访问该结构里面的成员,这在虚拟内存管理器","在初始化的时候,会创建一个","在释放页面的时候,需要引用计数为0的时候,才会去正在释放这个页面。","实现的时候有使用到。","尽管伙伴内存算法在内存碎片问题上已经做的相当出色,但是该算法中,一个很小的块往往会阻碍一个大块的合并,一个系统中,对内存块的分配,大小是随机的,一片内存中仅一个小的内存块没有释放,旁边两个大的就不能合并。","我们需要管理的内存就是","我们需要管理的物理内存是除了保留地址和操作系统占用以外的空闲的内存,这部分内存就是需要在操作系统运行的过程中进行静态/动态分配的内存。","所以,4kb也就延续到64位系统了。所以,我们使用4kb作为一个页面的大小。","所以,分配和释放的基础单位就是页面。通常来说,页面大小是4kb,也可以更大,但是由于4kb在32位操作系统中可以很好地对4gb内存进行映射,","把内核加载到内核中,然后跳转进去执行。","接口","描述","有必要的时候,也会在需要物理内存的时候,直接调用该分配。","有的情况下,当一个页面被多次使用的时候,需要去增加其引用计数,来避免被释放掉。","来管理一段连续的物理内存。需要制定物理内存地址和物理内存大小。","物理内存分配/释放管理之伙伴算法(buddy)","的","算法中有一定的浪费现象,伙伴算法是按2的幂次方大小进行分配内存块,当然这样做是有原因的,即为了避免把大的内存块拆的太碎,更重要的是使分配和释放过程迅速。但是他也带来了不利的一面,如果所需内存大小不是2的幂次方,就会有部分页面浪费。有时还很严重。比如原来是1024个块,申请了16个块,再申请600个块就申请不到了,因为已经被分割了。","算法的具体实现不进行讲解,除非你需要来优化这部分代码,才需要了解到,如果只是去使用,那么就只需要熟悉接口即可。","系统中分配的页面。","虚拟平台中,内存布局如下:","较多的链表和位图操作,开销还是比较大的。","这样的话,内核也就占用了一部分的内存,那么我们应该去管理哪部分内存呢?","里面分配","里面释放某个地址指针,该指针必须是从","页面分配函数,可以从一个","页面释放函数,从一个"],"programing-manual/mm/heap.html":["#defin","*nx_heapalloc(nx_s","*object);","112,","128等。","1mb)内存对象。","32,","48,","64,","80,","96,",">","cach","free","heap","heapcache虚拟内存管理","malloc","nx_error","nx_heapalloc","nx_heapalloc(size)","nx_heapfree(ptr)","nx_heapfree(void","nx_heapgetobjectsize(void","nx_memalloc","nx_memalloc(size)","nx_memfre","nx_memfree(ptr)","nx_memfree。","nx_size","nxo","size","size);","void","一、描述","三、框架图","中,内存对象被划分成3类,小(16byte","二、原理","使用的时候需要注意,必须是通过","内存释放堆内存的时候,需要传入内存对象地址,并返回释放的状态。","内核分配堆内存的接口,需要传入待分配内存的大小,即可获取一个内存地址,如果为空,那么就是分配失败了。","内核虚拟内存管理之堆内存","分配的内存对象。","去分配内存。","去释放内存。","和","四、接口","在","对于中内存对象,就是使用一个链表来管理。","对于大内存对象,就直接从物理内存管理器分配和释放,不使用链表管理。","对于小内存对象,会划分得比较细,如:16,","对于应用程序来说,可以使用","我们是使用基于缓存的链表来管理堆,这种方式的原理是,在释放一个页面后,会放到一个链表上面,下次分配的时候,直接从链表获取内存对象即可。","所以,需要在内核中实现同样的功能,在","来动态地分配内存,那么,对于内核来说,也需要这样的功能。","没有对象才重新从物理内存管理器中分配,有的话就直接从链表上面摘取。","的大小。","算法中,每个小的对象都有一个对应的链表来管理内存对象,分配的时候先去链表上获取对象,","通常,内核会使用","释放的时候,也是先释放到链表上面,当链表超出了最大链表长度阈值的时候,才会释放到物理内存分配器中。","里面,它们是","除此之外,还提供了一个获取某个内存对象大小的功能,传入地址即可获取内存对象所在的"],"programing-manual/mm/vmspace.html":["**outaddr);","*/","*space,","/*","addr,","attr,","elf","flags,","nx_addr","nx_error","nx_size","nx_u32","nx_vmspacemap(nx_vmspac","nx_vmspacemapwithphy(nx_vmspac","nx_vmspaceunmap(nx_vmspac","paddr,","size);","size,","vaddr,","vmnode","vmnode,节点记录了地址的信息以及这段地址的属性。","vmspace虚拟地址空间","void","一、描述","三、框架图","不同用法的地址。","二、原理","以及在做进程的堆分配和栈扩展的时候,都会使用到。","以及这个地址对应的内存大小,内存节点的属性,已经一些扩展的标志。","值得注意的是,映射的时候,还会去对内存进行物理内存映射,只有映射后,进程才能访问该地址。","删除。","四、接口","在解析","在进程的运行过程中也会涉及到堆的分配,栈的扩展等。","地址空间通过映射和解除映射来进行管理,类似于分配和释放的操作。","对进程的内存管理,是对它的虚拟地址进行管理。由于会有多个进程的存在,所以会对每个进程的虚拟地址","指定了虚拟地址需要映射到的物理地址,映射的时候,就把虚拟地址映射到该物理地址(未来做共享内存的时候会用到)","映射某段空间的时候,会先检测地址是否被使用,如果已经被使用了,就不能直接使用这块地址。没有被使用,就可以在地址空间中添加一个","映射的物理内存。","格式的可执行程序的时候,需要映射一段内存来储存代码和数据,就会用到映射功能。","虚拟地址在映射的时候,需要指定对应的地址空间,然后就是传入一个想要映射的地址,如果为0,那么就会自动分配一个地址。","解除地址映射的时候,需要制定虚拟地址和内存大小,如果在已经映射的内存空间中匹配到vmnode,就可以将其解除映射,并释放其","解除映射的时候,会先判断该地址是否映射,已经映射才能解除。会先解除物理内存映射,然后再把","进程在启动前,需要加载对应的代码、数据到内存中,然后才开始执行。","进程地址空间(vmspace)就是用来管理进程的虚拟地址的。由于不同地址会有不同的用途,于是会有虚拟地址节点(vmnode)来管理","进程地址空间的管理使用链表来维护每一个节点,节点是根据虚拟地址的值来进行线性排序,低地址在链表的开头,高地址在链表的结尾。","进程虚拟内存管理之虚拟空间","进行独立的管理,于是进程地址空间就出现了。"],"programing-manual/sched/sched.html":["一.","二.","在内核中,涉及到多任务的是线程管理,调度算法,多核调度。","在嵌入式领域,rtos的实时性是非常重要的。简单来说,就是一个优先级最高的任务在执行的时候,低优先级的任务得不到执行,如果有更高","在现代操作系统中,多任务已成为标配,也就是一个处理器可以“同时”执行多个任务,这样可以最大化利用处理器,并且支持更多的功能。","多核调度","由于任务数量众多,如何管理它们,是要做到公平运行还是谁先谁后,这和应用场景密切相关。","的任务被唤醒,就得立即切换过去执行。","线程管理","而在桌面和服务器领域,需要保证任务的公平性,即使优先级比较低,也要能够得到运行。","调度管理"],"programing-manual/sched/thread.html":["#defin","(nx_thread_max_priority_nr","(nx_thread_priority_high","*/","*arg,","*name,","*nx_threadcreate(const","*nx_threadself(void);","*stack;","*stackbase;","*thread);","*thread,","*threadarg;","+",",","/*","0","1","1)","1]","1ms~100m","3","6","6]","[0,","[7,","alloc","arg","base","case","chang","char","core","coreaffinity;","coreid);","deamon","dynam","exitlist;","fail","fix","fixedpriority;","globallist;","handler","handler,","handler;","high","id,","idl","info","isterminated;","level","list","list;","lock","lock;","low","max","mean","microsecond","microseconds);","min","name","name[nx_thread_name_len];","needsched;","normal","nx_error","nx_i32","nx_list","nx_schedtofirstthread","nx_size","nx_spin","nx_thread","nx_thread;","nx_thread_priority_high","nx_thread_priority_idl","nx_thread_priority_low","nx_thread_priority_norm","nx_thread_priority_rt_max","nx_thread_priority_rt_min","nx_threadcreat","nx_threaddestroy(nx_thread","nx_threadexit","nx_threadexit(void);","nx_threadhandl","nx_threadresourc","nx_threadself","nx_threadsetaffinity(nx_thread","nx_threadsleep(nx_uarch","nx_threadstart","nx_threadstart(nx_thread","nx_threadstat","nx_threadtermin","nx_threadterminate(nx_thread","nx_threadyield","nx_threadyield(void);","nx_u32","nx_u8","nx_uarch","nxo","oncore;","prioriti","priority);","priority,","priority;","priority,即可创建一个线程,返回线程的地址。","process","processlist;","real","resourc","resource;","run","sched","schedul","share","stack","stacksize;","state;","struct","thread","ticks;","tid;","time","timeslice;","top","typedef","void","{","};","一.","三、框架图","中,分为实时优先级和分时优先级。实时优先级是,只要有高的优先级,就不能运行低的优先级。而分时优先级是高低优先级线程都能得到运行,只是低优先级线程运行的时间更少而已。优先级","二.","产生时钟中断的时候,会去减少线程的时间片,时间片为0后,再去切换线程,这是属于线程被动切换。","以及参数","以线程为最小调度单元的好处是可以很方便支持内核态以及用户态的多线程,并且层次框架也比较好,容易实现。","传入线程的名字","但是注意,此时只是创建了线程,还没有启动线程。","内核中,休眠的单位是毫秒,休眠","内核的最小调度单位是线程,每个线程都有自己独立的栈,寄存器组,以及一些运行信息等。","函数即可退出当前线程的运行。","原理","去终止线程,传入线程指针即可。","同时运行。比如你一边听歌,一边写代码,其实就是音乐播放器和代码编辑器这两个任务在快速切换而形成的效果。","四.","在","在创建一个线程后,可以运行该线程,可以让线程去完成一些独立的工作。内核中的","在完成内核的初始化后,会创建","在线程创建后,如果需要把线程绑定到某个处理器,则可以设置处理器亲和性,使得该线程被绑定在指定的线程上运行。","在线程结构体中,有链表,基础信息,栈信息,调度信息,以及内核的资源。","就会发起一次切换。这样,在人看来,就是多个任务在","就可以启动线程,线程就可以开始运行了。","就可以让出执行权。值得注意的是,本线程不会阻塞,会在下一个时机再次被调度。","属于分时优先级,优先级","属于实时优先级。在使用过程中,通常使用宏,而不是直接使用数字。优先级宏如下:","当前实现的线程结构体如下:","当处理器调用","当线程需要休眠的时候,就需要传入休眠的时间,","很多情况下,需要获取当前线程,可以使用","拿到1个线程执行,避免内核跑飞。","接口","描述","时间长度后,就会被唤醒,继续往后执行。","最开始,内核是没有线程概念的,处理器只有一个执行流。","有时候需要终止某个线程的运行,就需要使用","此时,处理器就进入线程环境,开启线程调度生涯。","每个线程执行一段时间后,就会切换到其它线程执行。这个切换可能是主动的,也可能是被动的。线程在阻塞(block)和让出(yield)的时候是属于线程主动发起切换。在","每个线程都有一个其对应的线程结构体,使用其来记录线程的信息,比如线程链表,线程状态,线程栈等基础信息。","由于线程的切换速度非常快,一般在","的时候,就去获取一个线程来运行。","线程创建好后,需要启动线程,调用","线程完成了自己的工作后,可以主动退出运行,调用","线程是具有优先级的,优先级高的线程先运行,优先级低的线程后运行。在","线程有一个让出当前执行的操作,就是暂时不允许,希望把运行机会让给其它线程,做一个\"好人\",此时调用","线程的创建是","线程等都有自己独立的工作任务。","线程管理","线程,","线程,来保证处理器至少能够","获取自己的线程指针。","还有重要的优先级","销毁一个线程是只需要传入线程地址即可。注意,销毁不代表把线程从运行队列中摘除,只是释放线程占用的内存。",",线程处理函数"],"programing-manual/sched/smp.html":["ap","processor)。","processor)启动后,进入内核,完成初始化,再由引导处理器去唤醒其它处理器,通常称为应用处理器(appl","smp多核启动流程","smp多核调度","smp负载均衡","一.","一般情况下,第一个引导处理器(boot","三、框架图","二.","原理","启动后,会进行一些初始化,然后参加到调度工作中。而调度队列的实现就需要依赖于原子操作来保证对公共队列访问的正确性。","多核中很重要的一个机制就是自旋锁,当需要访问公共资源的时候,就需要自旋锁来上锁,才能保证多个核同时访问数据的正确性。自旋锁依赖于原子操作,而原子操作又需要硬件做支持。","多核的实现是需要硬件支持的,操作系统内核只是根据硬件做一定的抽象,做好多核间的同步与互斥。","多核调度","描述","自从进入21世纪,处理器的性能就有了瓶颈,不再迅猛增长。此时就有人提出多个处理器一起工作的方式,来弥补处理器性能的问题。"],"programing-manual/process/process.html":["*name,","*path,","+","0xf0000000","32mb","char","exitcode);","flags);","flags。","mmu","name","nx_error","nx_processexit(int","nx_processlaunch(char","nx_u32","path","void","一.","三、框架图","二.","以内进行数据存取。","内核崩溃。","内的物理地址,","内的物理地址,就能正确地进行数据存取,不然,则会产生页面故障。","再去对物理地址进行存取。比如虚拟地址是","创建进程的时候,需要从文件系统上加载程序的代码和数据,然后再去执行进程的代码。","到","前,访问的地址都是物理地址,","即直接访问的是内存的地址。比如内存只有","原理","后,访问的地址会发生变化。因此,为了能够保证访问内核的时候是正确的,在映射","后,访问的地址就是虚拟地址了。此时访问的地址,会通过","启动进程的时候,需要传入进程的名字","四.","寄存器,访问的地址都是新的","就可以升级为进程。除此之外,还会有一些其它进程独有的资源。","当开启","接口","描述","映射的虚拟地址。","映射表,切换进程的时候需要修改硬件","是虚拟地址转换成为物理地址的硬件机制。在开启","由于切换了","的内存范围,但是,只要在访问前映射","的时候,内核也能够正常运行,新进程的地址访问也不会出错。","的时候,每个进程都会把部分","究竟是何物?mmu","线程","转换成那","进程执行独立的程序,程序运行出故障也不会导致系统出现故障。因此可以把一些服务程序放到用户态作为进程执行,当服务出错的时候不会导致","进程执行结束的时候,需要退出,并传入退出时候的状态码。","进程是具有独立的线性地址空间的线程集合,是线程的容器。在现代操作系统中,硬件的","进程的实现依赖于","进程管理","那么","页表项映射到内核,并设置权限为内核才能访问,这样就能实现切换","(内存管理单元)为虚拟内存的实现奠定基础。",",以及进程标志",",显然超过了",",来实现进程的虚拟地址空间。每个进程都有一个",",要加载程序的路径",",那么访问的地址就只能是在"],"programing-manual/process/syscall.html":["api","api);","nx_syscallgethandler(nx_syscallapi","nx_syscallhandl","ring1,","ring2,","ring3),在","riscv","supervisor,","user)。","x86","一.","三、框架图","二.","值得注意的是,在执行系统调用期间,需要打开中断,避免在系统调用时出现死循环,导致内核卡死。","值,就能获取到对应的内核服务功能,然后以函数指针的方式去调用执行即可。","原理","只能通过系统调用执行内核提供好的服务。在","四.","在现代操作系统中,分为了内核态和用户态。内核态是内核程序本身,可以对设备资源进行管理核控制。而用户态只能够去调用内核提供的服务,不能够直接对资源进行访问。","接口","描述","支持特权保护的处理器架构中,都提供了模式切换的指令。至少需要有两个特权级,一个用于内核态,特权更高,可以直接访问硬件。另外一个用于用户态,","架构中,有3个特权级(machine,","架构中,有4个特权级(ring0,","系统调用","系统调用是指用户态程序通过特殊的指令陷入到内核态,执行内核态提供的服务程序,然后再返回到用户态。","系统调用的实现,是基于特权级切换指令实现的,一般都是中断或者异常。用户态通过调用这些指令,就会产生一个中断或者异常,处理器会去中断表中查找系统调用指令对应的处理函数,然后就根据系统调用的","系统调用表是在内核固定下来的,不同的架构只要根据固定的","这么做的目的是为了避免用户恶意程序对系统的损坏,对设备进行恶意操作。于是用户态核与内核态之间的接口就出现了,它就是系统调用。","进行内核服务的分发,去调用对应的内核函数。"],"programing-manual/interrupt/irq.html":["#defin","*data);","*data,","*name,","char","cow","flags);","handler,","irqno);","irqno,","kill","nx_error","nx_irq_bind(nx_irq_numb","nx_irq_controllerinterface.disable()","nx_irq_controllerinterface.enable()","nx_irq_controllerinterface.restorelevel(level)","nx_irq_controllerinterface.savelevel()","nx_irq_dis","nx_irq_disable()","nx_irq_en","nx_irq_enable()","nx_irq_handl","nx_irq_mask(nx_irq_numb","nx_irq_restorelevel","nx_irq_restorelevel(level)","nx_irq_savelevel","nx_irq_savelevel()","nx_irq_unbind(nx_irq_numb","nx_irq_unmask(nx_irq_numb","nx_u32","void","。","。由于有的时候只是为了暂时关闭中断,处理完后需要恢复中断的状态,于是则需要使用保存中断的状态和恢复中断的状态,即","一、描述","三、框架图","中断是可以全局打开和关闭的,打开后才会响应中断。除此之外,对于每一个具体的中断,都可以打开和关闭,在禁止了网卡中断后,即使打开了全局中断,也收不到网络数据包了。但是,异常是不可以屏蔽的,异常是来告诉内核出现一些问题了,需要根据具体的异常做处理。有的异常是不可以修复的,会导致系统死机,有的异常时可以修复的,比如页故障,可以拿来实现页面延迟映射,","中断是由处理器支持的一个临时打断当前执行流的功能,可分为设备中断和处理器异常。设备中断就是当网卡设备收到数据后会产生一个中断,打断处理器当前在处理的事情,去处理网络数据包。异常中断就是当处理器执行了一个不存在的指令或者访问了一个没有权限的内存地址,处理器就会中断当前的执行流,去对异常做一个处理,一般都是","中断管理","中断管理的实现是基于处理器的中断管理机制的,不同的架构具体实现机制可能有差别,但是在大体逻辑上都是一致的,因此可以抽象出一套统一的接口来供上层使用。","中断系统","二、原理","函数,相反关闭则是","前面有讲到关于全局中断的打开和关闭,全局中断的打开是","和","四、接口","当前的进程。","当需要注销某个中断的时候,只需要传入中断号以及注册时的数据即可。相当于解除了中断函数的绑定。","注册了中断后,并不能产生中断,还需要解除中断的屏蔽(unmask),相当于打开中断。除此之外,如果不希望产生该中断,则需要屏蔽某个中断(mask),相当于关闭中断。","由于中断数量会比较多,因此,都会有一个中断表来注册中断。然后由一个寄存器或者多个寄存器来记录该表的地址。产生中断的时候会去查表,根据具体的中断号去找对应的中断处理函数,简单来说就是去调用中断的回调函数。","等机制。","需要注册某个中断的时候,需要传入中断号,绑定中断处理函数,设置中断的参数数据,设置中断的名字。"],"programing-manual/interrupt/delay_queue.html":["*arg,","*nx_irq_delayworkcreate(nx_irq_workhandl","*work);","*work,","0,","=","enum","flags);","handler,","linux","nx_error","nx_irq_delayqueu","nx_irq_delayqueueenter(nx_irq_delayqueu","nx_irq_delayqueueleave(nx_irq_delayqueu","nx_irq_delaywork","nx_irq_delayworkdestroy(nx_irq_delaywork","nx_irq_delayworkhandl","nx_irq_delayworkhandle(nx_irq_delaywork","nx_irq_delayworkinit(nx_irq_delaywork","nx_irq_fast_queu","nx_irq_normal_queue,","nx_irq_period_queue,","nx_irq_queue_nr,","nx_irq_sched_queu","nx_irq_sched_queue,","nx_irq_slow_queu","nx_irq_slow_queue,","nx_irq_workhandl","nx_u32","queue,","void","{","};","一、描述","三、框架图","中断延迟队列","中断延迟队列在某个驱动或者内核组件中会进行初始化。当产生中断的时候,在中断处理函数中,只对中断产生时的数据进行保存,不对中断产生时的数据进行处理,","中断延迟队列是一种延迟处理中断的机制,类似于","中断机制中的中断下半部分,用来进行具体的中断处理。","中断的要求是快速地响应中断,并且是关闭了全局中断的,然后回到之前的工作。而延迟队列就是来完成这个工作的,产生了中断后,只进行最少的工作,","二、原理","优先级最低。","优先级最高,","内核的定时器属于","创建一个延迟的中断工作,需要传入中断工作处理函数入口,以及函数执行时的参数,就可以创建一个延迟的工作对象。","创建了一个中断工作对象,就需要将其加入到某个延迟队列中,只需要传入队列和工作对象的地址即可。","和加入延迟队列相反,有离开延迟队列,那么和加入的参数一样,只是意思相反而已。","四、接口","如果是一个静态对象,不需要创建,那么可以直接调用初始化,并传入该对象的地址即可,参数同上。","对象即可,传入工作对象的地址即可。","工作队列的优先级如下,其中","延迟队列","是在该延迟中断工作初始化的时候设定的。","最后,当有中断产生的时候,就可以去激活中断工作,那么则需要调用","有创建工作,那么就有销毁工作,只需要传入工作对象的地址即可。","来处理工作","然后激活中断队列工作,然后就返回,完成了本次中断。等到没有中断的时候,再去从延迟队列中获取一个工作来处理其对应的中断下半部分处理工作。","由于中断是具有一定优先级的,有的中断需要先处理,而有的中断则可以后处理,因此就有了多个中断队列,每个队列的优先级是不同的。至于需要加入哪种队列,","而内核的任务调度属于","而是处理中断延迟工作,然后就直接返回。等到响应了该中断之后,再去调用延迟队列中的工作。",",及时调度的精度低一点也没有太大影响。",",这样才能保证时间的精度。"],"programing-manual/timer/timer.html":["#defin","(*handler)(struct","*,","*/","*arg),","*arg,","*nx_timercreate(nx_uarch","*timer);","*timer,","/*","0x01","0x02","arg,","flags);","flags。","handler","int","millisecond","milliseconds,","nx_bool","nx_error","nx_timer","nx_timer_oneshot","nx_timer_period","nx_timerdestroy(nx_tim","nx_timerdestroy,","nx_timerinit","nx_timerinit(nx_tim","nx_timerstart","nx_timerstart(nx_tim","nx_timerstop","nx_timerstop(nx_tim","nx_uarch","on","oneshot","period","shot","timer","type","void","一、描述","三、框架图","二、原理","以及定时器的标志","创建定时器后需要调用","创建定时器需要指定需要超时的时间","即可。","只需要传入定时器对象地址即可。","启动它,才可以在超时后调用回调函数。","四、接口","在定时器还没开始运行的时候,可以销毁一个定时器,调用","如果是对静态的定时器进行初始化,只需要调用","定时器","定时器是基于系统时钟实现的,精度比较低(1ms~10ms),可以用于线程的休眠,以及对于休眠精度不高的场景。","就会将他们全部处理,调用定时器超时处理函数,然后更新最近超时定时器的ticks。","并传入定时器的地址即可。","当时钟中断产生的时候,会改变ticks的值,与此同时也会去检测是否有定时器超时,如果有定时器超时,则会去处理定时器超时函数。","当有一个定时器的ticks到达了最近超时定时器的ticks值的时候,就去检测定时器链表,如果有多个同样超时的定时器,","当需要停止定时器的时候,调用","最先超时的定时器会插入到链表头,超时时间比较久的定时器会被加入到链表的末尾。","有一个定时器链表来记录所有等待超时的定时器,值得注意的是,它们是通过线性的方式插入到链表中的。","来进行超时。","标志有多重,表明不同类型的定时器。","表示只超时一次,","表示周期性地按照","除此之外,还有一个最近超时的时间变量,来记录下一个即将超时的定时器,可以用它来检测是否需要去检测定时器链表。",",处理函数参数",",超时后调用的处理函数"],"programing-manual/port/riscv/riscv.html":["!=","\"=r\"(ret));","\"clock\"","\"init\"","\"multi","\"syscall\"","#defin","#els","#endif","#ifdef","#includ","%","%0\"","%p\",","%p,","%x\",","%x,","&","&pagetable[get_level_off(0,","&pagetable[get_level_off(level,","(!attr)","(!pte_used(*pte))","(\"rdtime","(1","(1);","(a0)","(a1)","(allocpag","(c)","(coreid","(for","(irqno","(isviraddrmapped(mmu,","(level","(maponepage(mmu,","(mmu_pd","(nx_addr)&trapentry0)","(nx_addr)&trapentry1)","(nx_addr)&trapentry2)","(nx_addr)&trapentry3)","(nx_addr)get_addr_from_satp(addr);","(nx_addr)nx_virt2phy(pagetablevir);","(nx_addr)phyaddr,","(nx_halcontext","(nx_pagefree(levelpagetable)","(nx_syscallwitharghandler)nx_syscallgethandler((nx_syscallapi)fram","(nx_u8","(nx_uarch)(((nx_uarch)stack)","(nx_uarch)arg;","(nx_uarch)exitentry;","(nx_uarch)startentry;","(page","(pagephi","(paget","(pagetablephi","(phsical","(phyaddr","(pte","(pte)","(pte_used(*pte))","(pte_v","(pte_x","(tabl","(trapentri","(void","(vpn2,vpn1,vpn0,offset)",")","*","*)(((nx_addr)pte)","*)(nx_virt2phy((nx_addr)pte)","*)(pagephi","*)addrstart;","*)mmu","*)nx_align_down((nx_uarch)stack,","*)nx_pagealloc(1);","*)nx_phy2virt(pagetable);","*)phypage);","*)pte2paddr(*pte);","*)stack;","*)stacktop;","*/","*__mappage(nx_mmu","*__mappagewithphy(nx_mmu","*addr","*arg,","*args)","*args,","*atomic)","*atomic,","*context","*exitentry,","*frame)","*from","*kernelstack,","*levelpaget","*levelpagetable;","*mmu,","*nextsp","*nx_halcontextinit(void","*nx_halmappage(nx_mmu","*nx_halmappagewithphy(nx_mmu","*nx_halprocessgetkernelpagetable(void)","*nx_halvir2phy(nx_mmu","*paget","*pagetable,","*pagetablevir)","*pagewalk(mmu_pd","*phyaddr;","*process,","*pte","*pte;","*ptearray[3]","*ptearray[3])","*stack","*stacktop)","*startentry,","*tabl","*text,","*userstack);","*userstack,","*vmspace)","+","+=",".ack",".add",".align",".barrier",".barrierinstruct",".barrierread",".barrierwrit",".ca",".clearmask",".data.stack",".dec",".disabl",".enabl",".executeus",".extern",".freepaget",".get",".getkernelpaget",".getpaget",".global",".globl",".inc",".init",".inituserspac",".jpg)",".mappag",".mappagewithphi",".mask",".restorelevel",".savelevel",".section",".set",".setmask",".setpaget",".space",".sub",".swap",".switchnext",".switchpaget",".switchprevnext",".text",".text.start",".unmappag",".unmask",".vir2phi","/","/*","/**","//","0","0)","0);","0,","01","0;","0x000","0x001","0x002","0x004","0x008","0x010","0x020","0x040","0x080","0x2","0x300","0x80020000,","0x80200000,","0~nx_multi_cores_nr","0,表明这个页表项指向下一级页表。","1","1);","1,","1.","10","10.","10000000","10mhz","11","12","15","16","16550a","17","18","1;","1。","2","2.","2.0","2018","2021","2022","2022,","26","27","2;","2的9次方=512","3","3.","31","39","3;","4.","48","4;","4kib","5.","512","57","6.","6.828","64","7","7.","8","8.","8192","9","9.",":",";","=","==",">",">a0",">a0);",">a0,",">a1,",">a2,",">a3,",">a4,",">a5,",">a6);",">a7",">a7);",">a7,",">epc",">mmu.tabl",">mmu.table);",">ra",">sp",">sstatu",">table;",">valu",">value),",">value,",">value;",">vmspace.mmu,","__assembly__","__mappag","__mappage(mmu,","__mappagewithphy(mmu,","__mappagewithphy。","__sync_fetch_and_add(&atom","__sync_fetch_and_and(&atom","__sync_fetch_and_or(&atom","__sync_fetch_and_sub(&atom","__sync_lock_test_and_set(&((atomic)","__sync_synchron","__sync_synchronize();","__sync_val_compare_and_swap(&atom","__unmappag","__unmappage(mmu,","__unmappage(nx_mmu","_entermain","_entermain:","_setsp0","_setsp0:","_setsp1","_setsp1:","_setsp2","_setsp2:","_setsp3","_setsp3:","_start","_start:","`pc`","`ra`","`ra`,","`sepc`","`sp`","`sret`,","`trap","a0","a0,","a0~a7","access","addr","addr)","addr;","addrend","address","addrstart","addrstart,","alloc","allocpag","allocpage)","allow","anyth","apach","api","api:","arg","arg0:%x,","arg1:%x,","arg2:%x,","arg3:%x,","arg4:%x,","arg5:%x,","arg6:%x\",","asid","asid。表示当前程序的","atom","atomic.c、barrier.c、clock.c、context.c、interrupt.c即可。","atomic.c、barrier.c即可。","attr)","attr);","attr:%x","attr;","author","avoid","bare","barrier","base","befor","beq","bit","book","bootcoreid)","bootcoreid);","bss","build","bytes)","call","can't","chang","clean","clear","clearcsr(sie,","clock","config_nx_platform_k210","config_nx_uart0_from_sbi","const","contains:","context","control","copyright","core","core\"","coreid","coreid)","coreid;","corestack2:","corestack3:","cpu","cpu_inittrap(coreid);","cpu_stack0:","cpu_stack1:","cpu_stacktop0","cpu_stacktop0:","cpu_stacktop1","cpu_stacktop1:","cpu_stacktop2","cpu_stacktop2:","cpu_stacktop3","cpu_stacktop3:","csr","csrc","csrw","ctx_sp_off","data","date","descript","develop","differ","direct","dirti","disabl","driver","ecal","enabl","enough","enter","entri","entry`","epc","err","err:","err;","execut","exitentry,","failed!\");","failed!\",","fault!\");","fenc","fence.i","field","first","five”)是一个基于精简指令集(risc)原则的开源指令集架构(isa)。","frame","free","frequenc","function","gcc","get_pf_id(addrend)","get_pf_id(addrstart)","gettimercounter()","global","goto","hal","handler","handler(fram","hash","here","hold","http://byterunner.com/16550.html","hypervisor","hypervisor,supervisor,","i.","id","identifier:","id。","ier","ier_rx_en","if(vmspac","increas","init","input","instead","instruct","int","interrupt","interupt","irqno)","irqno);","is:%d\",","isa)也处在草案版本1.10。","isa),而特权指令集(privileg","j","jasonhu","k210","k210,","kernel","la","last","leaf","level","level)","level;","levelpaget","li","licens","load","logs:","long","loop","loop:","low","make","make_satp(addr));","manag","maponepag","maponepage(nx_mmu","mapped!\",","mappedpag","mappedpages);","mappedpages++;","mask)","mask);","mean","memori","memory!\");","memory,","memroy","mhartid,","mit","mmu","mmu_flushtlb()","mmu_flushtlb();","mmu_pd","mmu_pt","mmu内存管理单元","mmu虚拟内存管理","mode","mode,","multi","mv","name","need","never","newvalue)","newvalue);","nextsp);","none","note","note:","notice:","number)。","nx_addr","nx_assert(!page_is_leaf(*pte));","nx_assert((nx_addr)levelpaget","nx_assert(handler);","nx_assert(mmu);","nx_assert(page_is_leaf(*pte));","nx_assert(pagetable);","nx_assert(pagewalkpte(pagetable,","nx_assert(phypage);","nx_assert(pt","nx_assert(pte_used(*pte));","nx_assert(vmspace);","nx_atom","nx_atomicop","nx_atomicopsinterfac","nx_bool","nx_casm","nx_casm(\"fence\":::\"memory\");","nx_casm(\"fence.i\":::\"memory\");","nx_casm(\"sfence.vma\");","nx_clocktickgo();","nx_contextop","nx_contextopsinterfac","nx_efault;","nx_einval;","nx_enomem;","nx_enor","nx_eok)","nx_eok);","nx_eok;","nx_error","nx_false)","nx_false);","nx_halatomicadd(nx_atom","nx_halatomicadd,","nx_halatomiccas(nx_atom","nx_halatomiccas,","nx_halatomicclearmask(nx_atom","nx_halatomicclearmask,","nx_halatomicdec(nx_atom","nx_halatomicdec,","nx_halatomicget(nx_atom","nx_halatomicget,","nx_halatomicinc(nx_atom","nx_halatomicinc,","nx_halatomicset(nx_atom","nx_halatomicset,","nx_halatomicsetmask(nx_atom","nx_halatomicsetmask,","nx_halatomicsub(nx_atom","nx_halatomicsub,","nx_halatomicswap(nx_atom","nx_halatomicswap,","nx_halclearbss();","nx_halclockhandler(void)","nx_halconsoleoutchar","nx_halcontext","nx_halcontextinit","nx_halcontextinit,","nx_halcontextswitchnext","nx_halcontextswitchnext(nx_addr","nx_halcontextswitchnext,","nx_halcontextswitchnext:","nx_halcontextswitchprevnext","nx_halcontextswitchprevnext(nx_addr","nx_halcontextswitchprevnext,","nx_halcontextswitchprevnext:","nx_halcorebootapp(nx_uarch","nx_halcorebootapp。","nx_halcoreenterapp,","nx_halcoregetindex(void)","nx_halcoregetindex。该索引是在处理器数组中的索引,不管什么处理器","nx_haldirectuartinit();","nx_haldirectuartstage2","nx_haldirectuartstage2();","nx_halen","nx_halenable(void)","nx_halenable,","nx_halgetkernelpagetable(),","nx_halgetkernelpagetable();","nx_halgetpaget","nx_halgetpagetable(void)","nx_halgetpagetable,","nx_halinitclock(void)","nx_halirqack(nx_irq_numb","nx_halirqack,","nx_halirqack。","nx_halirqdis","nx_halirqdisable(void)","nx_halirqdisable,","nx_halirqen","nx_halirqenable(void)","nx_halirqenable,","nx_halirqmask","nx_halirqmask(nx_irq_numb","nx_halirqmask,","nx_halirqrestorelevel(nx_uarch","nx_halirqrestorelevel,","nx_halirqrestorelevel。","nx_halirqsavelevel","nx_halirqsavelevel(void)","nx_halirqsavelevel,","nx_halirqunmask","nx_halirqunmask(nx_irq_numb","nx_halirqunmask,","nx_halmappag","nx_halmappage,","nx_halmappagewithphi","nx_halmappagewithphy,","nx_halmembarrier(void)","nx_halmembarrier,","nx_halmembarrierinstruction(void)","nx_halmembarrierinstruction,","nx_halmembarrierread(void)","nx_halmembarrierread,","nx_halmembarrierwrite(void)","nx_halmembarrierwrite,","nx_halpagezoneinit();","nx_halplatforminit","nx_halplatforminit(nx_uarch","nx_halplatformstage2(void)","nx_halplatformstage2中,可以使用内核的功能,内存分配,中断注册等。","nx_halprocessenterusermode(args,","nx_halprocessenterusermode(void","nx_halprocessexecuteus","nx_halprocessexecuteuser(const","nx_halprocessexecuteuser,","nx_halprocessfreepaget","nx_halprocessfreepagetable(nx_vmspac","nx_halprocessfreepagetable,","nx_halprocessgetkernelpaget","nx_halprocessgetkernelpagetable,","nx_halprocessinituserspac","nx_halprocessinituserspace(nx_process","nx_halprocessinituserspace,","nx_halprocessswitchpaget","nx_halprocessswitchpagetable(void","nx_halprocessswitchpagetable,","nx_halprocesssyscalldispatch","nx_halprocesssyscalldispatch(nx_haltrapfram","nx_halsetpaget","nx_halsetpagetable(nx_addr","nx_halsetpagetable,","nx_halunmappag","nx_halunmappage(nx_mmu","nx_halunmappage,","nx_halvir2phi","nx_halvir2phy,","nx_import","nx_inlin","nx_interfac","nx_irq_control","nx_irq_controllerinterfac","nx_irq_restorelevel(level);","nx_irq_savelevel();","nx_log_*","nx_log_d(\"riscv64","nx_log_e(\"map","nx_log_e(\"riscv64","nx_log_i(\"boot","nx_log_i(\"hello,","nx_log_i(\"stage2!\");","nx_log_info","nx_log_level","nx_log_nam","nx_main","nx_memalloc(nx_page_size);","nx_membarrierop","nx_membarrieropsinterfac","nx_memcopy(table,","nx_memfree(vmspac","nx_memzero(context,","nx_memzero(nx_phy2virt(pagetable),","nx_memzero(table,","nx_mmugetpagetable())","nx_mmuinit(&process","nx_mmuop","nx_mmuopsinterfac","nx_mmusetpagetable(pagetablephy);","nx_nr_irqs)","nx_null)","nx_null);","nx_null,","nx_null;","nx_null};","nx_page_addr_mask);","nx_page_addr_mask;","nx_page_alignup(size);","nx_page_attr_kernel","nx_page_attr_rwx","nx_page_attr_us","nx_page_size);","nx_page_size;","nx_pagealloc","nx_pagealloc(1);","nx_pagefre","nx_pagefree((void","nx_pagefree(phyaddr);","nx_pageincrease(levelpagetable);","nx_panic(\"map","nx_panic(\"should","nx_panic(\"vir2phi","nx_printf","nx_privat","nx_processop","nx_processopsinterfac","nx_size","nx_ssize","nx_syscallwitharghandl","nx_thread","nx_ticks_per_second","nx_ticks_per_second;","nx_timer_clk_freq","nx_true)","nx_true);","nx_u64","nx_u8","nx_uarch","nxo","old","old,","on","opensbi","opensbi,","output","paddr2pte(pagetable)","paddr2pte(phyaddr)","page","page*/","page:","pageoffset","pageoffset);","pageoffset)。","pageoffset;","pagephi","pagephy;","pages)","pages);","paget","pagetablephi","pagewalk","pagewalk(pagetable,","pagewalkpt","pagewalkpte(mmu_pd","pagewalk。","pc","phy:%p","phyaddr","phyaddr,","phypag","phypage;","platfrom","plic","plic_complete(nx_smp_getbootcore(),","plic_disableirq(nx_smp_getbootcore(),","plic_enableirq(nx_smp_getbootcore(),","plic_init(nx_true);","ppn","ppn。第一级硬件回填使用的","prevsp,","process","protect","pte","pte2paddr(*pte)","pte2paddr(*pte));","pte2paddr(*pte);","pte:","pte;","pte_","pte_a","pte_d","pte_g","pte_g)","pte_r","pte_r)","pte_soft","pte_u","pte_v","pte_v;","pte_w","pte_x","ptearray)","ptearray[0]","ptearray[0];","ptearray[1];","ptearray[2];","ptearray[]","ptearray[level]","qemu","r,w,x","ra","rdtime","read","readcsr(satp);","readcsr(sstatus)","readcsr(sstatus);","readcsr(stvec);","receiv","refer","regbytes(sp)","regist","registers.","reserv","restor","restore_context","ret;","return","return,","return:","rhr","risc","riscv(rv32)具有32个整数寄存器组(取名为:x0~x31),其中31个是通用寄存器(x1~x31),它们存储整数数值,寄存器x0是硬件连线的常数0。当你设计的riscv架构处理器实现了浮点扩展时,还必须有32个浮点寄存器f0~f31。对于rv32,其x寄存器是32位宽度的,xlen=32,对于rv64,它们是64位宽度的,xlen=64。","riscv64","riscv64!\");","riscv架构移植","routin","rto","rustsbi","rustsbi,其内核的入口地址为","same","satp","save","save_context","sbi","sbi,","sbi_entry.","sbi_init();","sbi_print_version();","sbi_set_timer(gettimercounter()","seciton,","see","sepc,","set","setcsr(sie,","sfencevma()","sie","sie_stie);","size","size)","size,","sizeof(nx_halcontext));","sizeof(nx_halcontext);","sizeof(nx_uarch));","skip","smp多核","softwar","sp","sp,","space","spdx","src/arch/riscv64/port","sret","sscrach","sscratch","sscratch,","sstatu","sstatus,","sstatus_si","sstatus_sie));","sstatus_sie);","sstatus_sie;","sstatus_spi","sstatus_spie;","sstatus_spp","sstatus_sum","stack","stack,","stacktop","startentri","store","struct","stvec","supervisor","supervisor模式的中断的打开与关闭是由状态寄存器","support","sure","sv39","sv39:","sv39,3级页表,页表和物理页都是4kb大小。","sv48","sv57","sv64","switch","syscal","system","t0,","t1","t1,","tabl","table,","team","text,","thr","thread","thread,","tickdelta","tickdelta);","timer","translat","transmit","trap","trapentri","trapentry0;","trapentry1;","trapentry2;","trapentry3;","tri","uart","uart.","unmaponepag","unmaponepage(mmu,","unmaponepage(nx_mmu","updat","us","used!\");","used!\",","user","user\");","user:","userstack);","user)。","v","valid","valu","value)","value);","value;","vir:%p","viraddr","viraddr)","viraddr);","viraddr)];","viraddr,","viraddr;","viraddr,转换为物理地址。","virstart,","virtual","void","vpn0","vpn0。","vpn1","vpn1,第","vpn2","vpn2,第","vs","v中c语言函数参数是","v中断分为两种类型,一种是同步中断,即ecall、ebreak等指令所产生的中断,另一种是异步中断,即gpio、uart等外设产生的中断。","v已经确立了版本2.22的用户空间的指令集(userspac","v指令集可以自由地用于任何目的,允许任何人设计、制造和销售risc","v指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。","v架构移植","v的mmu支持多种模式,有sv32/sv39/sv48/sv57/sv64等。不同的模式映射的页面等级,页面大小是有差异的。在64位处理器种最常用的是sv39,它是3级4kb页面大小映射。","v的中断管理由处理器核局部中断clint(corelocalinterrupt)和平台级中断控制器plic(platformlevelinterruptcontroller)组成。clint分为软件中断核计时器中断,负责响应处理器的异常核和计时器中断。plic负责处理外设的中断。","v目前有4种特权模式(machine,","v芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。","v被设计成可扩展的,可以配置的,根据不同的应用场景可以生产带有不同功能扩展的处理器。","v(发音为“risk","walk","within","write","write.","writecsr(satp,","writecsr(sstatus,","x","{","{nx_null,","|","|内容","|描述","}","};","~mask);","~sstatus_sie);","–","。","。__mappag","一、描述","一级页表中的页表项内容则和我们刚才提到的页表项一样,其内容包含物理页号,即描述一个要映射到的物理页。","三、代码移植","上下文切换是多线程实现的根基","上下文的切换分为上下文的初始化,从当前线程切换到下一个线程,直接切换到下一个线程。","上图为机器模式状态寄存器(rv32)","上图为机器模式状态寄存器(rv64)","不同的架构内核入口代码有差异,需要根据架构来实现","与大多数指令集相比,risc","个页表项,","中断只需要对","中断管理","中断管理接口对内核以及驱动都是至关重要的","中断表地址需要写入管理者模式的向量基址寄存器","中的","中调用了","中这个频率是","中,allocpag","中,会先检测该地址是否已经映射,没有映射才能映射。","中,会调用","中,会通过","中,使用了","中,多了对当前线程的上下文的保存的工作,然后切换到下一个线程。","中,根据虚拟地址","中,获取了栈的值后,就从栈中恢复寄存器上下文,然后调用","中,进行初始化,初始化完串口后,就能使用打印功能了。","中,需要构建的上下文参数是线程的入口","串口可以配置为调用","串口来输出是非常方便的。","为","为假,那么在遍历过程中,不存在就会出错,存在就会返回页表项,里面存放了物理页的地址。","为假,那么在遍历过程中,某个等级的页表不存在就会返回空。","为真,那么就会在遍历过程中分配不存在的页表。","为真,那就意味着如果虚拟地址没有映射物理地址,就会一级一级地分配页表。","之下,最后返回栈低。","之前介绍过","事实上,三级页表的每个页表项中的物理页号可描述一个二级页表;","二、架构简述","二级页表的每个页表项中的物理页号可描述一个一级页表;","从而得出了物理页号和虚拟地址所对应的物理地址。","以上描述摘自rcore","以及线程运行时的参数","会先计算需要映射的页面数量,然后循环映射页面。","会减少页面的引用计数,为0的时候才真正释放。","位为一级索引","位为三级索引","位为二级索引","位保存和恢复。","位做置位和清理的操作即可。","位的虚拟页号分为三个等长的部分,","位索引的,因此有","作为偏移在第一级页表的物理页中找到要访问位置的物理页号;","作为偏移在第三级页表的物理页中找到第二级页表的物理页号;","作为偏移在第二级页表的物理页中找到第一级页表的物理页号;","作为机器模式的固件,qemu_riscv64平台选择了","使用这种方式的话,就非常方便移植到其它架构上。","例如在页目录表中,会有页表项,如果发现该页表项为空,则会分配一个物理页,作为下一级的页表。","保存了","保存的,其格式如下:","保存,因为上下文切换的时候会模拟一次异常返回,返回后就到这个异常地址处执行。","保存,它是返回地址的意思,表示线程返回后就去执行该函数。","值,","值,其返回值范围为","做了一些兼容,使用起来比较简单。","入口地址使用","入口地址在链接脚本中写的是","关闭。","具体字段的解析如下:","具体来说,假设我们有虚拟地址","内存屏障","内存屏障前的所有读写操作完成后才能执行屏障后的读写操作","内存读/写屏障使用","内核入口","内置了原子操作的函数,","内置函数","内置的原子操作即可。","函数后,就可以使用","函数来打印消息。","刚才我们提到若页表项满足","初始化完成后,会跳转到","初始化线程上下文是在栈上构建一个线程的上下文,当第一次切换到该线程的时候,寄存器就会使用栈中的值。","原子操作","原子操作用于对数据的加减运算不会被打断,以及一些原子级别的数据交换等","原子操作需要实现对数据的原子设置,获取,加法,减法,数据交换等。由于","去实现,而获取操作可以直接通过","去遍历3级页表,获取虚拟地址","取出物理页面的地址,返回的时候加上页内偏移","只是现在不需要在分配物理地址而已,因为已经指定了物理地址了。","只需要实现","可以获取页表的地址。","可以通过虚拟地址找到其映射的物理地址。","号。","后,需要填写也表项,其内容是物理地址和页面的属性r,w,x等。","和","和禁用","和线程结束时执行的函数","和裸机开发种,很多时候都是直接使用机器模式。","唤醒后,应用核会进入","唤醒应用核只需要调用","四、移植总结","因此","因此每个页表大小都为","在","在上下文切换的时候,需要注意的是,传入的是线程的栈的地址,可以从地址中取出线程当前栈的值。","在中断中,使能","在做时钟定时器初始化的时候,需要先关闭","在函数","在平台初始化","在解除页面映射的时候,循环调用","在调试过程中会遇到很多问题,需要耐心地调试。","在这里三级和二级页表项的","地址翻译模式","地址转换的全过程图示(来源于","如果","如果只是需要运行起来,不需要线程环境,那么就只需要","如果当前定时器的值超过了超时定时器寄存器的值的时候,就会触发一个中断。注意:前提是打开了定时器中断。","如果支持多核,就可以在这个时候去唤醒其他核。不支持的话返回","字节,","它会根据虚拟地址来做页表遍历,如果","实现","实现输出,也可以通过自己操作寄存器实现。在早期,调用","实现,","寄存器","寄存器。然后刷新快表。","寄存器中;","寄存器保存。","寄存器的","寄存器,并转换出页表的地址。","对于","对处理器多核的启动和初始化","对应的页表项。将结果保存到","就是虚拟地址对应的物理地址。","就注册了串口中断,可以接受输入。","平台初始化","应用核只需要设置中断表地址,初始化自己的中断控制器即可。","应该成立,因为它们指向了下一级页表。","引导核初始化完成后,会初始化内核,在内核初始化完成后,就会进入启动应用核的阶段","当","当前","当超时后,就会产生一个中断,于是就设置下一个中断产生时的超时值。","我们也将页表分为三级页表,二级页表,一级页表。","我们可以把一个页表放到一个物理页中,并用一个物理页号来描述它。","我们首先会记录装载「当前所用的三级页表的物理页」的页号到","截至2017年5月,risc","所以需要计算出产生一次中断,需要间隔多少个tick即可。","所有需要对接的接口都存放在","执行。","执行结束后,会从机器模式跳转到位于监护者模式的内核中,并且寄存器","执行,那么入口程序的移植就完成了。","把","指令去实现。内存指令屏障使用","指令实现。","指令获取。","指令集","指定的地址就行了。使用","接下来,我们给出","控制的,置为1则表示使能中断,置为0则表示禁用中断。","提供的唤醒核心功能即可。","操作系统更多运行在","数组中,ptearray[0]","文件:src/arch/riscv64/include/arch/mmu.h","文件:src/arch/riscv64/kernel/context.","文件:src/arch/riscv64/kernel/sbi_entry.","文件:src/arch/riscv64/port/atomic.c","文件:src/arch/riscv64/port/barrier.c","文件:src/arch/riscv64/port/clock.c","文件:src/arch/riscv64/port/context.c","文件:src/arch/riscv64/port/interrupt.c","文件:src/arch/riscv64/port/mmu.c","文件:src/arch/riscv64/port/process.c","文件:src/arch/riscv64/port/smp.c","文件:src/platform/qemu_riscv64/drivers/direct_uart.c","文件:src/platform/qemu_riscv64/hal/init.c","新架构的移植,都是按照一套统一的接口去实现的。","时,mmu","映射虚拟地址,但是会指定物理地址,就不用自动分配物理地址了。","是使能","是映射虚拟地址,会自动分配物理地址并映射页面。","更贴近,也不用管太多机器模式需要做的事情。通常,","最开始是可以不开启","机器模式用于固件程序代码执行,例如","来分配页面。然后调用","来映射一个页面。","来解除页面的映射。","架构中,内存全(读和写)屏障使用","模式中我们采用三级页表,即将","模式去调用内核提供的服务。","模式的定时器中断,然后再设置超时定时器的值。","模式(因为线程的切换是在内核中完成的)。","模式,进入内核。内核只需要链接到","模式,降低开发的复杂度。","正好是一个物理页的大小。","每个页表都用","没有资源即可。","然后再初始化中断,初始化物理内存管理。","物理页号对应的物理页基址(即物理页号左移12位)加上","物理页的属性如下:","特权模式","特权级寄存器的命名规则,特权模式+寄存器名字,表示只能在该特权级使用。比如status寄存器,在机器模式有mstatus,监管模式有sstatus。","用于分发系统调用,不同的架构传参数的方式会有区别,因此需要特殊处理。","用于在进程切换的时候切换页表。","用于在进程创建的时候,创建进程的页表","用于在进程退出的时候释放页表。","用于获取内核的页表。","用于进程从内核跳到用户态执行。","用户模式就是应用程序执行的模式,需要通过系统调用进入到","由于","由于我们想实现1秒钟产生","由于每个虚拟地址都需要有一个对应的物理地址,因此调用物理页面分配函数","的","的好处是,可以直接使用串口的输入输出,很方便调试,不用自己从机器模式跳转到","的封装。","的设置,","的页表项。","的页表项,ptearray[1]","的页表项,ptearray[2]","的页表项,页表项存放了物理页的地址。","的,最开始不需要跑进程,","监管者模式的页表的地址是由地址转换寄存器","监管者模式,这样可以和","目前支持的是mmu","目录下面,新的平台只需要支持这些接口的功能即可。","硬件回填根","硬件时钟会按照一定的频率去增长当前定时器寄存器的值,在","移植一个新的平台需要实现如下内容:","移植过程是需要慢慢琢磨,长期积累,才能实现更好的代码。","第","等于","等,但是在","线程上下文","线程栈使用","结束时执行的函数使用","而每个页表项都是","至于在","获取也表的时候,需要读取","虚拟化模式用于使用虚拟化的场景,目前还在开发阶段。","虚拟地址的实现和访问,mmu的切换,映射和解除页面映射","解除地址映射,解除后就不能访问了。","解除每一个页面。","计时器时钟","计时器时钟用于驱动多线程的切换和内核定时器","记录了当前处理器核心的","设置了线程的入口地址,那么","设置页表的地址到硬件寄存器中,当访问虚拟地址的时候,会根据设置的页表进行地址转换。","设置页表的时候,需要将页表基地址写入","该代码简单地设置了栈就进入了","该函数最后返回的是","该操作只是多了对","该项目2010年始于加州大学伯克利分校,但许多贡献者是该大学以外的志愿者和行业工作者。","课程)来介绍多级页表原理的介绍:","调用平台的初始化代码","返回","返回。","返回后就可以让","还有一个很重要的地方就是对状态寄存器","还有值得注意的是,获取处理器的索引","这3个接口都是对","这个函数,如果","这个符号,因此会进入","这就意味着这个地址是没有映射。","这是操作需要通过","这样处理器通过这种多次转换,终于从虚拟页号找到了一级页表项,","这里只需要调用","这里的快表可以理解为缓存,可以加快虚拟地址到物理地址的转换。","进程管理","进程管理相关操作是实现进程的必要条件","选择了","通常,都是在启动后尽快地实现串口调试,以便能够知道自己跑到什么地方了。","通过","都为","都会被映射成索引,相当于是处理器","针对","除此之外就是对某个中断的使能","除此之外,还提供了对当前中断状态保存和恢复的操作","需要能够访问用户态的内存,需要在返回后开启中断以及设置为","需要调用一个最为核心的函数,就是","非叶子页面,就是页表,在释放的时候调用","页表项格式如下:","页面属性的定义如下:","预留一个上下文空间后,设置参数为","首先会释放叶子页面,也就是虚拟地址最终对应的物理地址,而页表是非叶子页面。","(一般在100~1000)次定时器中断的效果,","(以上摘自百度百科)",",产生中断后,就去该寄存器保存的中断向量表地址找中断号对应的中断服务。",",以及中断处理完后的应答处理",",以及将这些数据构建在栈顶",",其内核的入口地址为",",可以根据寄存器的值来判断处理器",",因为risc",",并复制内核的页表项。",",所有地址都变成虚拟地址了。",",那么就切换到线程里面去了。"],"programing-manual/platform/i386.html":["#","+","1.","16","1978","1985","2.","3.","32","32位的pc电脑基本都是x86架构,而最早的一款处理器就是i386。因此,几乎所有的32位电脑都兼容i386。","4.","5.","80186、80286、80386","80386","80486。","8086","[","[x]","]","cpu。intel","cpu,而之前的都是","ctrl","defconfig","gdb调试","grub2引导","i386","i386平台简介","intel","j8","jn是多线程编译","linux","make","mmu支持","run","setup.bat","setup.sh","smp多核","sourc","window","x86","z","上下文切换","中断管理","串口输入输出","之后又推出了包括","从","以及","位","位。","位的扩展,实现了","内存屏障","内存管理","初始化环境","功能支持","原子操作","定时器时钟","年","年推出的","开始,intel","执行用户态程序","架构进行","架构首度出现在","系统调用支持","编译运行","获取默认配置","运行方法","进入nxos源码,打开终端。","退出qemu","通过单元测试和集成测试","通过对"],"programing-manual/platform/qemu_riscv64.html":["#","+","1.","2.","3.","4.","5.","[x]","ctrl","defconfig","gdb调试","j8","jn是多线程编译","linux","make","mmu支持","opensbi固件","qemu_riscv64","qemu_riscv64平台简介","qemu是一种通用的开源计算机仿真器和虚拟器。本平台就是qemu对riscv64架构的仿真支持。","riscv64","run","setup.bat","setup.sh","smp多核","sourc","window","z","上下文切换","中断管理","串口输入输出","内存屏障","内存管理","初始化环境","功能支持","原子操作","定时器时钟","执行用户态程序","系统调用支持","编译运行","获取默认配置","运行方法","进入nxos源码,打开终端。","退出qemu","通过单元测试和集成测试"],"programing-manual/platform/k210.html":["#","(dmac)","(fpioa)","(rv64gc)","+","/","0.8tflop","1.","2.","3.","4.","400mhz(可超频到600mhz)","5.","64","64bit","8mib","[","[x]","]","aes,","bit","cpu","ctrl","defconfig","fpu","gdb调试","i2c,","i2s,","io","j8","jn是多线程编译,","k210","k210平台简介","k210是嘉楠科技公司推出的基于risc","linux","linux:","make","mmu支持","pwm,","risc","riscv64","rtc,","run","rustsbi固件","rv64imafdc","setup.bat","setup.sh","sha256","smp多核","sourc","spi,","sram(6mib通用sram+2mib的ai专用sram)","uart,","uart=/dev/ttyusb0","uart=com3","uart是串口设备,需要在设备列表查看是哪个设备,默认是/dev/ttyusb0,可以不写。","uart是串口设备,需要在设备管理器查看,k210的设备是哪个串口。","v","v架构的64位双核soc。","window","windows:","上下文切换","中断管理","串口输入输出","内存屏障","内存管理","初始化环境","功能支持","加速器","勘智kendryt","原子操作","双核","双硬件512点16位复数fft","双精度","可编程","定时器支持","定时器时钟","执行用户态程序","片上","直接内存存取控制器","神经网络处理器(kpu)","系统调用支持","编译运行","获取默认配置","运行方法","进入nxos源码,打开终端。","退出k210的运行","通过单元测试和集成测试","阵列","音频处理器(apu)"],"programing-manual/user/api.html":["*addr)","*addr,","*arg)","*arg,","*buf,","*cond)","*directoryread(nx_dir","*memalloc(us","*mutex)","*object)","*path)","*path,","*time)","*value)","addr,","api应用程序接口","api设计","attr)","attr,","bytes)","char","cmd,","cond,","condit","conditioncreate(int","conditiondelete(condit","conditioninit(condit","conditionsleep(condit","conditionwake(condit","conditionwakeall(condit","dest,","dev)","dev,","deviceclose(int","devicecontrol(int","devicecreate(char","devicedelete(char","deviceopen(char","deviceread(int","devicewrite(int","dir)","directoryclose(nx_dir","directoryopen(char","directoryrewind(nx_dir","env)","exitcode)","fd)","fd,","flags)","flags,","handler,","int","isiz","len,","memcopy(void","memfill(void","memfree(void","memmap(void","memmove(void","memunmap(void","memzero(void","mutex","mutex)","mutex,","mutexacquire(mutex","mutexcreate(int","mutexdelete(mutex","mutexinit(mutex","mutexrelease(mutex","mutextryacquire(mutex","name)","name,","nx_bool","nx_dir","nx_directorycreate(char","nx_directorydelete(char","nx_direntri","nx_error","nx_fd","nx_fileaccess(char","nx_fileclose(nx_fd","nx_filecreate(char","nx_filedelete(char","nx_fileisend(nx_fd","nx_fileopen(char","nx_fileread(nx_fd","nx_fileseek(nx_fd","nx_filetelloffset(nx_fd","nx_filewrite(nx_fd","nxos的api接口分为几个大类。进程,线程,内存管理,时间管理,枢纽系统,文件系统,设备管理,网络管理,图形管理,安全管理,用户态驱动框架。","offset","offset)","offset,","path,","pid)","pid,","processcreate(char","processexit(int","processgetid(void)","processterminate(int","processwait(int","seekmethod)","size)","size,","src,","ssize","stacksize,","system设计好了再设计接口,目前还没有概念","threadcreate(threadhandl","threadexit(int","threadgetid(void)","threadresume(int","threadsuspend(int","threadterminate(int","threadwait(int","tid)","tid,","timegetclock(void)","timegetcurrent(timesytem","timeout,","timesetcurrent(timesytem","tlsalloc(void)","tlsfree(int","tlsgetvalue(int","tlsindex)","tlsindex,","tlssetvalue(int","u8","usiz","value)","void","休眠等待条件变量","关闭文件","关闭目录","关闭设备","内存管理","写入文件","写入设备","函数","分配一个tl","分配内存","创建互斥体","创建文件","创建条件变量","创建目录","创建线程","创建设备","创建进程","初始化互斥体","初始化条件变量","删除互斥体","删除文件","删除条件变量","删除目录","删除设备","功能","参考socket套接字接口设计","唤醒休眠等待条件的全部线程","唤醒休眠等待条件的单个线程","图形系统","填充内存","复制内存","安全管理","尝试获取互斥体","恢复线程","打开文件","打开目录","打开设备","挂起线程","文件系统","时间管理","映射内存","暂不设计,等内核基本功能完成后再设计","暂不需要","本文档存放的是用户程序的编程接口的设计说明。","枢纽系统","检查文件结束","清空内存","用户态驱动框架","移动内存","等hub","等内核基础功能完成后实现","等待线程退出","等待进程退出","索引文件","线程管理","终止线程","终止进程","网络系统","获取tls的值","获取互斥体","获取当前的时间","获取文件偏移","获取系统运行的时间","获取线程id","获取进程id","解除映射内存","设备管理","设置tls的值","设置当前的时间","读取文件","读取目录","读取设备","进程管理","退出线程","退出进程","释放一个tl","释放互斥体","释放内存","重置读取位置"],"tutorial/code-style.html":["\"\"","\"_\"","\"{\"","#defin","#els","#else,","#endif","#endif这种时,需要在开头和结尾后面写上注释来帮助开发这快速找到对应的宏。","#ifdef","#ifndef","(","(*soundcallbackhandler)(void","(*write)(void","(c)","(condition)","(data)","(x","*","*/","*buffer,","*cpugetcurrent(void)","*deviceptr;","*param,","*stackbase,","*threadname,","...","/*","/**","//","1","1.目录名称","10","10.注释编写","11.缩进以及分行","12","12.大括号与空格","13.函数指针类型定义","14.函数参数太多","15.宏条件定义","16;","2.0","2.文件名称","2018","2021","2021,","3.头文件定义","32","4","4.头文件注释","5.变量命名","6.函数命名","7.结构体定义","8.枚举定义","9","9.宏定义","=","\\","__driver_keyboard__","__file__","add","apach","author","bad!!!","booko","break;","buffer","bufsiz","case","chang","char","code","comment","consoleprint(str);","consoleprintcolor(color,","consolerestorecolor()","consolesetcolor(color);","contains:","content","copyright","cpu","c语言头文件为了避免多次重复包含,需要定义一个符号。这个符号的定义形式请采用如下的风格:","data1:","data2:","date","default:","develop","devic","device_name_len","enum","exampl","file","header","identifier:","if、for、while、switch","init","int","jasonhu","len);","licens","line","line1","line2","log","logs:","multi","mythread,","name[sound_device_name_len];","note","nx_createthread(char","nx_has_onecor","nx_has_smp","nx_size","nx_thread","nxo","priority)","reference;","set","singl","size","sndhandler;","sound_ac97,","sound_hd,","sound_pc,","soundcallbackhandl","sounddevic","sounddevice;","soundtyp","soundtype;","spdx","stacksize,","str)","struct","style","switch","team","threadfindbynam","threadhandl","threadhandler,","tmpfilebuff","typedef","vfs_createfil","void","x","x:","xxx","yyi","{","}","};","个空格的方式。如果没有什么特殊意义,请在","从代码阅读角度,建议每个大括号单独占用一行,而不是跟在语句的后面,例如:","代码风格","以避免重名,另外也可以根据文件名中是否包含多个词语而采用","使用大写作为名字,单词间使用\"_\"隔开,例如:","例如采用如上的形式。","例如:","其中\"{\"和\"}\"需要单独使用一行。","函数采用大驼峰命名风格,即每个单词的首字母都大写,如果单词是用的缩写,那么单词之间需要用\"_\"隔开,例如:","匹配的大括号单独占用一行,代码阅读起来就会有相应的层次而不会容易出现混淆的情况。空格建议在非函数方式的括号调用前留一个空格以和前面的进行区分,例如:","即定义的符号两侧采用","变量采用小驼峰命名风格,即首字母小写,后续单词首字母大写,例如:","后进行分行,并在下一行都采用缩进的方式,例如:","唯一的例外是","在使用函数指针类型定义的时候,需要使用handler后缀,来表示是一个处理函数。","在每个源文件文件头上,应该包括相应的版权信息,文件描述,chang","如果函数参数为空,必须使用void作为入口函数,例如:","如果需要在类型定义中使用指针,则需要使用ptr后缀或者其他可以表达意思的单词指明。","对齐的方式,","建议在括号前留出一个空格(涉及的包括","当使用宏条件#if,","当函数参数过多的时候,一行写不下,那么就需要把每个参数写成一行。","当宏需要使用多行的时候,则使用空格+\"\\\"的形式进行换行,例如:","总结","文件名称也是使用首字母大写,如果有缩写,可以全部都大写。文件命名尽量不要使用通用化、使用频率高的名称。例如:mutexlock.c","有一个例外,就是如果遇到循环函数,里面不会执行代码的情况,括号就直接写在右边。","本文档是关于nxos的代码编程风格的描述。开发者必须遵守本文档规范进行开发。nxos系统内核使用c语言作为主要开发语言,因此以下规则仅仅适用于c语言代码。","枚举结构名也是用大驼峰,枚举成员使用全大写,单词间用\"_\"隔开。","注意,\"//\"注释只能放到右边。","源代码的注释不应该过多,更多的说明应该是代码做了什么,仅当个别关键点才需要一些相应提示性的注释以解释一段复杂的算法它是如何工作的。对语句的注释只能写在它的上方或右方,其他位置都是非法的。","目录名称采用首字母大写的形式,子目录应该是属于父目录的内容,需要有相关性。例如:drivers/disk/","相信看到最后,您已经对我们的编程规范有了一定的了解,那么就开始您的nxos开发之旅吧!","结构体命名使用大驼峰风格,结构体成员使用小驼峰命名,如果成员是函数指针,则使用大驼峰。","结构体的类型定义是为了消除struct关键字,可以和结构体名一致。","编程风格","缩进请采用","记录:","语句),而运算表达式中,运算符与字符串间留一个空格。另外,不要在括号的表达式两侧留空格,例如:","语句与","语句采用","语句,switch","请使用英文做为注释,使用中文注释将意味着在编写代码时需要来回不停的切换中英文输入法从而打断编写代码的思路。并且使用英文注释也能够比较好的与中国以外的技术者进行交流。除非必须引用原来的文本的时候,就可以写中文。","连接起来。例如:"],"tutorial/commit-rule.html":["():",":","add","alloc","bodi","buddi","bug","build","chang","chore","code,","commit","doc","docs(mm):","docs:文档(documentation)","exfat.","fat12,","fat12:","fat16,","fat32,","fat32:","fatfs,","feat(mm):","feat:新功能(feature)","fix(mm):","fix:修补bug","floppi","function","header","header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。","kernel","log","log,建议是不要。","messag","nx_","page","prefix","refactor(mm):","refactor:重构(即不是新增功能,也不是修改bug的代码变动)","revert","revert:","scope","scope用于说明","sdcard/harddisk","simpl","style(*):","style:","subject","subject是","suport","system","test(mm):","test:增加测试","type","updat","us","utest","weel.","work","xbuild改成了xmak","不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。","举例","之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入","代码提交日志规则commitrul","以动词开头,使用第一人称现在时,比如change,而不是changed或chang","使用第一人称现在时,比如使用change而不是changed或changes。","例如在mm,thread,fs等。","其中,header","其他注意事项:","可以省略。","如","如果type为feat和fix,则该","如果你的修改影响了不止一个scope,你可以使用*代替。","将肯定出现在","应该说明代码变动的动机,以及与以前行为的对比。","当我们添加代码要提交到git仓库中时,我们需要统一下规范,这样不会显得整个项目乱糟糟的,当然是需要花点时间来学习和改变的。每次提交的代码尽量短小,涉及范围不要太广,专注于某个领域。","影响的范围,比如文件系统,进程管理,内存管理等等,视项目不同而不同。","提交规则","撤销上一次的","改变了build工具","是必需的,bodi","有两个注意点:","构建过程或辅助工具的变动,比如把grub改成了uefi。","格式(不影响代码运行的变动)","每次提交,commit","永远别忘了第2行是空行","用于说明","的类别,只允许使用下面7个标识。","的详细描述,可以分成多行。下面是一个范例。","目的的简短描述,不超过50个字符。","第一个字母小写","结尾不加句号(.)","部分是对本次","都包括两个部分:header和body。"],"tutorial/menuconfig.html":["#","defconfig","make","menuconfig","menuconfig是一个可以在终端显示的图形化配置界面,他不仅可以极大的方便我们对于配置文件的修改,","menuconfig简介","nxos使用了一个python开发的menuconfig,它的跨平台性以及易用性成为了我们的首选。","run","saveconfig","只编译","在nxos中使用menuconfig","在根目录中,打开一个终端,在配置了环境变量之后,就可以使用配置了。","完成配置后,就可以进行编译了,编译的时候就会根据最新的配置进行编译。","对于开发者而言,我们已经做好了配置,你只需要知道如何去使用即可。","当你要使用某个平台的配置时,需要通过设置默认配置来进行选择。","更新配置文件","最后,如果想要保存当前的配置到选中的平台,则需要在执行save操作才行。操作完后,你所修改的配置就保存了,当切换到其它平台后,这个配置依然存在,只需要重复第一步,更新一下配置即可。","编译并运行","菜单配置","还能自动处理依赖关系。","进行菜单配置,就可以选择你想要的功能或者进行某些功能的配置。配置完后,可以根据菜单的提示进行退出或者保存。"],"tutorial/toolchains.html":["64/i386工具链:","64/i386工具链:apt","apt","elf","gcc","gcc\\bin","instal","linux工具链只需要从软件包管理器下载安装即可:","risc","riscv64","toolchains\\x86_64","unknown","v64/32工具链:","v64工具链:","x86","一、windows环境工具","下载到本地后,需要手动解压到一个目录下面,然后对工具链的bin路径配置环境变量。","下载工具链","二、linux环境工具","例如:","工具链","服务器下载(较慢)","本文档存放了工具链的下载地址,搭建编译环境的时候需要下载工具链后再进行编译。","百度网盘链接,提取码:nxo","解压到工具目录下面","解压到路径:nxo","配置环境变量时的路径:nxo"],"tutorial/utest.html":["\"hello!\";","\"hello\");","\"world!\");","\"world!\";","\"world\");","#","(char","*)","*/","*p","*q","*s","/*","0,","0x1000;","0x20,","0x30,};","0x50,","0x60,};","1);","1,","2,","3);","32);","4);","5);","=","assert_false(...)","assert_true(...)","buf0[32]","buf1,","buf1[32]","buf2,","buf2[32]","char","except_false(...)","except_true(...)","make","nx_assert_bufeq(buf0,","nx_assert_bufne(buf1,","nx_assert_eq(1,","nx_assert_false(0);","nx_assert_false(nx_false);","nx_assert_ge(3,","nx_assert_gt(4,","nx_assert_in_range(1,","nx_assert_in_range(4,","nx_assert_in_range(5,","nx_assert_le(3,","nx_assert_lt(3,","nx_assert_ne(0,","nx_assert_ni_range(0,","nx_assert_ni_range(1,","nx_assert_ni_range(5,","nx_assert_ni_range(6,","nx_assert_not_null(q);","nx_assert_null(p);","nx_assert_streq(\"hello\",","nx_assert_streq(s,","nx_assert_strne(\"hello\",","nx_assert_strne(s,","nx_assert_true(1);","nx_assert_true(nx_true);","nx_eok;","nx_null;","nx_test(test)","nx_test(test1)","nx_test(test2)","nx_test(test3)","nx_test(testunitname)","nx_test(yyy)","nx_test_case(testcasename);","nx_test_case(utest);","nx_test_case(xxx);","nx_test_case_clean(testcasename)","nx_test_case_clean(utest)","nx_test_case_setup(testcasename)","nx_test_case_setup(utest)","nx_test_clean(test)","nx_test_clean(testunitname)","nx_test_setup(test)","nx_test_setup(testunitname)","nx_test_table(testcasename)","nx_test_table(utest)","nx_test_table(xxx)","nx_test_unit(test),","nx_test_unit(test1),","nx_test_unit(test2),","nx_test_unit(test3),","nx_test_unit(testunitname),","nx_test_unit(yyy),","nx_test_unit_clean(testunitname),","nx_test_unit_setup(testunitname),","nx_test_unit_setup_clean(test),","nx_test_unit_setup_clean(testunitname),","return","run","s","tc=i","tc是testcase的缩写,表示启用测试案例。","{","{0x10,","{0x40,","}","};","不带setup和clean的单元","举例:单元测试自身测试","使用方法","单元测试","单元测试表,填写要测试的单元","在menuconfig中,打开单元测试功能,选取需要测试的单元,退出保存。","在命令行中输入命令即可开始测试:","定义一个单元测试","带clean的单元","带setup和clean的单元","带setup的单元","最小的单元测试","最精简框架:","测试","着重点:参数,返回值,功能。","进入一个单元测试时执行","进入单元时执行","退出一个单元测试时执行","退出单元时执行","针对函数单元进行测试,测试函数的基本功能,稳定性,健壮性,覆盖率。"]},"length":26},"tokenStore":{"root":{"0":{"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0024227740763173833}},"x":{"0":{"0":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"4":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"1":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}},"2":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}},"4":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"8":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"docs":{}},"1":{"0":{"0":{"0":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"docs":{}},"docs":{}},"2":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"3":{"0":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{},",":{"docs":{},"}":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}}}},"docs":{}},"5":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"6":{"0":{"docs":{},",":{"docs":{},"}":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}},"docs":{}},"8":{"0":{"0":{"2":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"2":{"0":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"2":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"f":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.02531645569620253}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402}}},"~":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"n":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"表":{"docs":{},"明":{"docs":{},"这":{"docs":{},"个":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"指":{"docs":{},"向":{"docs":{},"下":{"docs":{},"一":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},".":{"8":{"docs":{},"t":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}},"docs":{}}},"1":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"注":{"docs":{},"释":{"docs":{},"编":{"docs":{},"写":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"m":{"docs":{},"h":{"docs":{},"z":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"1":{"2":{"docs":{},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},".":{"docs":{},"缩":{"docs":{},"进":{"docs":{},"以":{"docs":{},"及":{"docs":{},"分":{"docs":{},"行":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},"2":{"8":{"docs":{},"等":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},".":{"docs":{},"大":{"docs":{},"括":{"docs":{},"号":{"docs":{},"与":{"docs":{},"空":{"docs":{},"格":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},"3":{"docs":{},".":{"docs":{},"函":{"docs":{},"数":{"docs":{},"指":{"docs":{},"针":{"docs":{},"类":{"docs":{},"型":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}},"4":{"docs":{},".":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"太":{"docs":{},"多":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},"5":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},".":{"docs":{},"宏":{"docs":{},"条":{"docs":{},"件":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}},"6":{"5":{"5":{"0":{"docs":{},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}},"docs":{}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"9":{"7":{"8":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"docs":{}},"8":{"5":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"docs":{}},"docs":{}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0027256208358570565},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},".":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"目":{"docs":{},"录":{"docs":{},"名":{"docs":{},"称":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"m":{"docs":{},"b":{"docs":{},")":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}},"s":{"docs":{},"~":{"1":{"0":{"0":{"docs":{},"m":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"docs":{}},"docs":{}},"docs":{}}}},")":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},"]":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.022727272727272728}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"2":{"0":{"1":{"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"docs":{}},"2":{"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0030284675953967293},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402}}}},"docs":{}},"docs":{}},"6":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},".":{"0":{"4":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"文":{"docs":{},"件":{"docs":{},"名":{"docs":{},"称":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}},"的":{"9":{"docs":{},"次":{"docs":{},"方":{"docs":{},"=":{"5":{"1":{"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"docs":{}},"docs":{}}}}},"docs":{}},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"3":{"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"2":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.02197802197802198},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}},"m":{"docs":{},"b":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.06329113924050633}}}},"位":{"docs":{},"的":{"docs":{},"p":{"docs":{},"c":{"docs":{},"电":{"docs":{},"脑":{"docs":{},"基":{"docs":{},"本":{"docs":{},"都":{"docs":{},"是":{"docs":{},"x":{"8":{"6":{"docs":{},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"而":{"docs":{},"最":{"docs":{},"早":{"docs":{},"的":{"docs":{},"一":{"docs":{},"款":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"就":{"docs":{},"是":{"docs":{},"i":{"3":{"8":{"6":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"几":{"docs":{},"乎":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"3":{"2":{"docs":{},"位":{"docs":{},"电":{"docs":{},"脑":{"docs":{},"都":{"docs":{},"兼":{"docs":{},"容":{"docs":{},"i":{"3":{"8":{"6":{"docs":{},"。":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}}},"9":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},".":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.013636363636363636}}}}},"4":{"0":{"0":{"docs":{},"m":{"docs":{},"h":{"docs":{},"z":{"docs":{},"(":{"docs":{},"可":{"docs":{},"超":{"docs":{},"频":{"docs":{},"到":{"6":{"0":{"0":{"docs":{},"m":{"docs":{},"h":{"docs":{},"z":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}},"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}},"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"注":{"docs":{},"释":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"k":{"docs":{},"i":{"docs":{},"b":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}}},"5":{"1":{"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"变":{"docs":{},"量":{"docs":{},"命":{"docs":{},"名":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.03636363636363636}}}}},"6":{"4":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"/":{"docs":{},"i":{"3":{"8":{"6":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},":":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"]":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},".":{"8":{"2":{"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"docs":{}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"函":{"docs":{},"数":{"docs":{},"命":{"docs":{},"名":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}},"8":{"0":{"1":{"8":{"6":{"docs":{},"、":{"8":{"0":{"2":{"8":{"6":{"docs":{},"、":{"8":{"0":{"3":{"8":{"6":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"3":{"8":{"6":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"docs":{}},"docs":{}},"4":{"8":{"6":{"docs":{},"。":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}},"docs":{}},"docs":{}},"8":{"6":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}},"docs":{}},"docs":{},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}},"1":{"9":{"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}},"docs":{}},"docs":{}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"枚":{"docs":{},"举":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"m":{"docs":{},"i":{"docs":{},"b":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"9":{"6":{"docs":{},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"宏":{"docs":{},"定":{"docs":{},"义":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.05},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},")":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"v":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}},"i":{"docs":{},"r":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"docs":{}}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"d":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"e":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"i":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"j":{"docs":{},"p":{"docs":{},"g":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}},"u":{"docs":{},"b":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.024793388429752067}}},"a":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}},"~":{"docs":{},"a":{"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}}}},"docs":{},"m":{"docs":{},"d":{"6":{"4":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"docs":{}},"docs":{}}},"p":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"t":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}},"p":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"i":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.0625},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},")":{"docs":{},";":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"应":{"docs":{},"用":{"docs":{},"程":{"docs":{},"序":{"docs":{},"接":{"docs":{},"口":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"设":{"docs":{},"计":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":10}}}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0136986301369863}}}},"m":{"3":{"2":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"docs":{}},"6":{"4":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"docs":{}},"docs":{},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"g":{"0":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"1":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"2":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"3":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"4":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"5":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"6":{"docs":{},":":{"docs":{},"%":{"docs":{},"x":{"docs":{},"\"":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}},".":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}},"d":{"docs":{},"d":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.05785123966942149}},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}},"s":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.015544041450777202}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}},":":{"docs":{},"%":{"docs":{},"x":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"i":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"、":{"docs":{},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"、":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{},"c":{"docs":{},"、":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"、":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"w":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"。":{"docs":{},"表":{"docs":{},"示":{"docs":{},"当":{"docs":{},"前":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"算":{"docs":{},"法":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":10}}}}}}},"i":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.05434782608695652},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.05785123966942149}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}},"f":{"0":{"docs":{},"[":{"3":{"2":{"docs":{},"]":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"docs":{}}},"1":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"[":{"3":{"2":{"docs":{},"]":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"docs":{}}},"2":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"[":{"3":{"2":{"docs":{},"]":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"docs":{}}},"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},"g":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}},".":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"o":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"d":{"docs":{},"i":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.01652892561983471}}}}},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}},"r":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"d":{"docs":{},"!":{"docs":{},"!":{"docs":{},"!":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"q":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}},"i":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"s":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}}}}},"d":{"1":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}},"i":{"docs":{},"c":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}},"f":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},"a":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"t":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}},"o":{"docs":{"./":{"ref":"./","tf":0.030303030303030304}},"c":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"s":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},":":{"docs":{},"文":{"docs":{},"档":{"docs":{},"(":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"1":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"2":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"i":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043}},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"算":{"docs":{},"法":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":10}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"部":{"docs":{},"分":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"行":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"三":{"docs":{},"个":{"docs":{},"字":{"docs":{},"段":{"docs":{},":":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},"必":{"docs":{},"需":{"docs":{},")":{"docs":{},"、":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"(":{"docs":{},"可":{"docs":{},"选":{"docs":{},")":{"docs":{},"和":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"必":{"docs":{},"需":{"docs":{},")":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"a":{"docs":{},"t":{"docs":{},"/":{"docs":{},"f":{"docs":{},"e":{"docs":{},"d":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},":":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}}}}}}}}}}}}}}},"r":{"docs":{},"d":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"(":{"docs":{},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}},"s":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"u":{"docs":{},"b":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"o":{"docs":{},"l":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"1":{"6":{"5":{"5":{"0":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}},"i":{"2":{"docs":{},"c":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"s":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"3":{"8":{"6":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.020100502512562814},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":10}},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"平":{"docs":{},"台":{"docs":{},"简":{"docs":{},"介":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}},"docs":{}},"docs":{}},"docs":{},"s":{"docs":{},"s":{"docs":{},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}},":":{"docs":{},"%":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"a":{"docs":{},")":{"docs":{},"也":{"docs":{},"处":{"docs":{},"在":{"docs":{},"草":{"docs":{},"案":{"docs":{},"版":{"docs":{},"本":{"1":{"docs":{},".":{"1":{"0":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}},",":{"docs":{},"而":{"docs":{},"特":{"docs":{},"权":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}}}},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.03015075376884422},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}},"i":{"docs":{},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003937007874015748},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"f":{"docs":{},"o":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.12435233160621761},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"l":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"/":{"docs":{},"o":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"框":{"docs":{},"架":{"docs":{},"和":{"docs":{},"中":{"docs":{},"断":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}},"o":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"p":{"docs":{},"c":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"r":{"docs":{},"q":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"n":{"docs":{},"o":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},";":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.03389830508474576},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}},",":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.03389830508474576}}}}}}},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"_":{"docs":{},"r":{"docs":{},"x":{"docs":{},"_":{"docs":{},"e":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"f":{"docs":{},"(":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"、":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"、":{"docs":{},"w":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"、":{"docs":{},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}},"k":{"2":{"1":{"0":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":10.016806722689076}},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"平":{"docs":{},"台":{"docs":{},"简":{"docs":{},"介":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"是":{"docs":{},"嘉":{"docs":{},"楠":{"docs":{},"科":{"docs":{},"技":{"docs":{},"公":{"docs":{},"司":{"docs":{},"推":{"docs":{},"出":{"docs":{},"的":{"docs":{},"基":{"docs":{},"于":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}},"l":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},":":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"下":{"docs":{},"设":{"docs":{},"置":{"docs":{},"i":{"3":{"8":{"6":{"docs":{},"环":{"docs":{},"境":{"docs":{},"并":{"docs":{},"设":{"docs":{},"置":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"=":{"docs":{},"x":{"8":{"6":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"环":{"docs":{},"境":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"=":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}},"环":{"docs":{},"境":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"软":{"docs":{},"件":{"docs":{},"包":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{},"即":{"docs":{},"可":{"docs":{},":":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}}}}}}}}}}}}}},"e":{"1":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"2":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}},"s":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402}},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}},"c":{"docs":{},"k":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"w":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"a":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"g":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"s":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},",":{"docs":{},"建":{"docs":{},"议":{"docs":{},"是":{"docs":{},"不":{"docs":{},"要":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},":":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}},"s":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.006359781950333132}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}},"a":{"docs":{},"f":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"n":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},")":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}},"m":{"docs":{},"m":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"u":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.16455696202531644},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},"_":{"docs":{},"f":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"h":{"docs":{},"t":{"docs":{},"l":{"docs":{},"b":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}}}}}},"p":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0027256208358570565}}}}},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"单":{"docs":{},"元":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}},"支":{"docs":{},"持":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.06532663316582915},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.02197802197802198},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.029411764705882353},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.025210084033613446},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.19230769230769232},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"_":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"p":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}},"x":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"!":{"docs":{},"\"":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"+":{"docs":{},"+":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}},"s":{"docs":{},"k":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"终":{"docs":{},"端":{"docs":{},"显":{"docs":{},"示":{"docs":{},"的":{"docs":{},"图":{"docs":{},"形":{"docs":{},"化":{"docs":{},"配":{"docs":{},"置":{"docs":{},"界":{"docs":{},"面":{"docs":{},",":{"docs":{},"他":{"docs":{},"不":{"docs":{},"仅":{"docs":{},"可":{"docs":{},"以":{"docs":{},"极":{"docs":{},"大":{"docs":{},"的":{"docs":{},"方":{"docs":{},"便":{"docs":{},"我":{"docs":{},"们":{"docs":{},"对":{"docs":{},"于":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},",":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"简":{"docs":{},"介":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"y":{"docs":{},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"r":{"docs":{},"o":{"docs":{},"y":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"y":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"k":{"docs":{},"f":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}}}},"i":{"docs":{},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"s":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}},"s":{"docs":{},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}}}}}}}}}}}},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},"a":{"docs":{},"c":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},"a":{"docs":{},"c":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":5.05050505050505},"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.03015075376884422},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0273972602739726},"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.021739130434782608},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003937007874015748},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"s":{"docs":{},"是":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}},"采":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"混":{"docs":{},"合":{"docs":{},"内":{"docs":{},"核":{"docs":{},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"即":{"docs":{},"宏":{"docs":{},"内":{"docs":{},"核":{"docs":{},"和":{"docs":{},"微":{"docs":{},"内":{"docs":{},"核":{"docs":{},"相":{"docs":{},"结":{"docs":{},"合":{"docs":{},"。":{"docs":{},"优":{"docs":{},"势":{"docs":{},"是":{"docs":{},"减":{"docs":{},"小":{"docs":{},"内":{"docs":{},"核":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"增":{"docs":{},"加":{"docs":{},"功":{"docs":{},"能":{"docs":{},"可":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"性":{"docs":{},",":{"docs":{},"功":{"docs":{},"能":{"docs":{},"模":{"docs":{},"块":{"docs":{},"是":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"进":{"docs":{},"程":{"docs":{},",":{"docs":{},"添":{"docs":{},"加":{"docs":{},"和":{"docs":{},"删":{"docs":{},"除":{"docs":{},"模":{"docs":{},"块":{"docs":{},"就":{"docs":{},"是":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"和":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"接":{"docs":{},"口":{"docs":{},"分":{"docs":{},"为":{"docs":{},"几":{"docs":{},"个":{"docs":{},"大":{"docs":{},"类":{"docs":{},"。":{"docs":{},"进":{"docs":{},"程":{"docs":{},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"时":{"docs":{},"间":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"枢":{"docs":{},"纽":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"设":{"docs":{},"备":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"网":{"docs":{},"络":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"图":{"docs":{},"形":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"安":{"docs":{},"全":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"框":{"docs":{},"架":{"docs":{},"。":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},",":{"docs":{},"它":{"docs":{},"的":{"docs":{},"跨":{"docs":{},"平":{"docs":{},"台":{"docs":{},"性":{"docs":{},"以":{"docs":{},"及":{"docs":{},"易":{"docs":{},"用":{"docs":{},"性":{"docs":{},"成":{"docs":{},"为":{"docs":{},"了":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"首":{"docs":{},"选":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"_":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}},"s":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"(":{"docs":{},"\"":{"docs":{},"f":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},":":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}},".":{"docs":{},"i":{"docs":{},"\"":{"docs":{},":":{"docs":{},":":{"docs":{},":":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"f":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"v":{"docs":{},"m":{"docs":{},"a":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"o":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"2":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"中":{"docs":{},"断":{"docs":{},"注":{"docs":{},"册":{"docs":{},"等":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"b":{"docs":{},"s":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"。":{"docs":{},"该":{"docs":{},"索":{"docs":{},"引":{"docs":{},"是":{"docs":{},"在":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"数":{"docs":{},"组":{"docs":{},"中":{"docs":{},"的":{"docs":{},"索":{"docs":{},"引":{"docs":{},",":{"docs":{},"不":{"docs":{},"管":{"docs":{},"什":{"docs":{},"么":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"docs":{}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"r":{"docs":{},"q":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"r":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"docs":{}}}}},"s":{"docs":{},"_":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}}},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}}},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043}},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"y":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"2":{"docs":{},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"t":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.021739130434782608},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.046153846153846156},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0030284675953967293},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.021739130434782608},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.046153846153846156},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.017123287671232876},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.06779661016949153},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.0641025641025641},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.043010752688172046},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.004845548152634767},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.012953367875647668}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}}}},"n":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"o":{"docs":{},"k":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0030284675953967293},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.01818181818181818}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"_":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"r":{"docs":{},"w":{"docs":{},"x":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}},"u":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"(":{"1":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"docs":{}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"l":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"v":{"docs":{},"i":{"docs":{},"r":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}},"docs":{}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"f":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.014233797698364628}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.06153846153846154},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.011811023622047244}}}}},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"!":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"s":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{},"(":{"docs":{},"*":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"s":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{},"(":{"docs":{},"*":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"l":{"docs":{},"k":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"y":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"*":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}}}}}}}}}}},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"e":{"docs":{},"q":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}}}}},"n":{"docs":{},"e":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"1":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"(":{"1":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.013636363636363636}}}}},"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"(":{"3":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}},"t":{"docs":{},"(":{"4":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}},"i":{"docs":{},"n":{"docs":{},"_":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"1":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},"4":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"5":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"(":{"3":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},"docs":{}}},"t":{"docs":{},"(":{"3":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}},"n":{"docs":{},"e":{"docs":{},"(":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}},"i":{"docs":{},"_":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"1":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"5":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"6":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}}}}}}}}},"o":{"docs":{},"t":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"q":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"p":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"s":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}},"n":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"s":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.013636363636363636}}}}},"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"u":{"3":{"2":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.06153846153846154},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.023972602739726026},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564}}},"docs":{}},"6":{"4":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}},"docs":{}},"8":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0036341611144760752}}}}}}},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}},"i":{"3":{"2":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"docs":{}},"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},".":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.038461538461538464}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},"(":{"docs":{},")":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}},"e":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}},"e":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.038461538461538464}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"d":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"r":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106}}}}}}},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0027256208358570565}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.0136986301369863}}}}},"o":{"docs":{},"g":{"docs":{},"_":{"docs":{},"*":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}},"docs":{}},"docs":{}}}}}}}}},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376}}}}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"docs":{}}}}}}}}},"i":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"2":{"docs":{},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"docs":{}}}}}}}},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.0136986301369863},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"_":{"docs":{},"h":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"i":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"i":{"docs":{},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"t":{"docs":{},"a":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.03225806451612903}},"_":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"d":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"c":{"docs":{},"l":{"docs":{},"k":{"docs":{},"_":{"docs":{},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"_":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"2":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"3":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}},"y":{"docs":{},"y":{"docs":{},"y":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"_":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}},"2":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}},"3":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}},"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}},"y":{"docs":{},"y":{"docs":{},"y":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"_":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}},"_":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"e":{"docs":{},"k":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"f":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}},"n":{"docs":{},"r":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"s":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0024227740763173833}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0024227740763173833},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"}":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}},"e":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"w":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}},"x":{"docs":{},"t":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}}}}},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"[":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"]":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"]":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"n":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"t":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"n":{"docs":{},"s":{"docs":{},"b":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"固":{"docs":{},"件":{"docs":{"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}}}}}}}}}},"n":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"l":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"u":{"docs":{},"t":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.012953367875647668}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"i":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},"_":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},"_":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},"_":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}},"v":{"docs":{},"s":{"docs":{},"p":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"o":{"docs":{},"r":{"docs":{},")":{"docs":{},"。":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}},"启":{"docs":{},"动":{"docs":{},"后":{"docs":{},",":{"docs":{},"进":{"docs":{},"入":{"docs":{},"内":{"docs":{},"核":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"再":{"docs":{},"由":{"docs":{},"引":{"docs":{},"导":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"去":{"docs":{},"唤":{"docs":{},"醒":{"docs":{},"其":{"docs":{},"它":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"称":{"docs":{},"为":{"docs":{},"应":{"docs":{},"用":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"(":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.0273972602739726}}},"y":{"docs":{},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}}}},"c":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"h":{"docs":{},"y":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}},":":{"docs":{},"%":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"2":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"h":{"docs":{},"y":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"docs":{},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}},"t":{"docs":{},"h":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"g":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.006965475469412477},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"*":{"docs":{},"/":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}}},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"y":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"s":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"l":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}}}}}},"p":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"_":{"docs":{},"p":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"d":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}}}}}},"p":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"。":{"docs":{},"第":{"docs":{},"一":{"docs":{},"级":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"回":{"docs":{},"填":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"2":{"docs":{},"p":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"(":{"docs":{},"*":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}}}}}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003937007874015748}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"_":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"s":{"docs":{},"o":{"docs":{},"f":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"v":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"w":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"x":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"[":{"0":{"docs":{},"]":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"1":{"docs":{},"]":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"2":{"docs":{},"]":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"docs":{},"]":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"]":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"w":{"docs":{},"m":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.04040404040404041},"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.02512562814070352},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},"平":{"docs":{},"台":{"docs":{},"支":{"docs":{},"持":{"docs":{},"g":{"docs":{},"d":{"docs":{},"b":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"并":{"docs":{},"搭":{"docs":{},"配":{"docs":{},"了":{"docs":{},"v":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"图":{"docs":{},"形":{"docs":{},"化":{"docs":{},"调":{"docs":{},"试":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.020100502512562814},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":10.029411764705882}},"平":{"docs":{},"台":{"docs":{},"简":{"docs":{},"介":{"docs":{"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}}}}}}},"docs":{}},"docs":{}}}}}}},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"通":{"docs":{},"用":{"docs":{},"的":{"docs":{},"开":{"docs":{},"源":{"docs":{},"计":{"docs":{},"算":{"docs":{},"机":{"docs":{},"仿":{"docs":{},"真":{"docs":{},"器":{"docs":{},"和":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"器":{"docs":{},"。":{"docs":{},"本":{"docs":{},"平":{"docs":{},"台":{"docs":{},"就":{"docs":{},"是":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"对":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"仿":{"docs":{},"真":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564}}}}}}}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0027256208358570565},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}},"v":{"6":{"4":{"docs":{"./":{"ref":"./","tf":0.020202020202020204},"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.020100502512562814},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.029411764705882353},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"等":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"docs":{}},"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"(":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},")":{"docs":{},"具":{"docs":{},"有":{"3":{"2":{"docs":{},"个":{"docs":{},"整":{"docs":{},"数":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"组":{"docs":{},"(":{"docs":{},"取":{"docs":{},"名":{"docs":{},"为":{"docs":{},":":{"docs":{},"x":{"0":{"docs":{},"~":{"docs":{},"x":{"3":{"1":{"docs":{},")":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"3":{"1":{"docs":{},"个":{"docs":{},"是":{"docs":{},"通":{"docs":{},"用":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"x":{"1":{"docs":{},"~":{"docs":{},"x":{"3":{"1":{"docs":{},")":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"存":{"docs":{},"储":{"docs":{},"整":{"docs":{},"数":{"docs":{},"数":{"docs":{},"值":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"x":{"0":{"docs":{},"是":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"连":{"docs":{},"线":{"docs":{},"的":{"docs":{},"常":{"docs":{},"数":{"0":{"docs":{},"。":{"docs":{},"当":{"docs":{},"你":{"docs":{},"设":{"docs":{},"计":{"docs":{},"的":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"docs":{},"架":{"docs":{},"构":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"时":{"docs":{},",":{"docs":{},"还":{"docs":{},"必":{"docs":{},"须":{"docs":{},"有":{"3":{"2":{"docs":{},"个":{"docs":{},"浮":{"docs":{},"点":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"f":{"0":{"docs":{},"~":{"docs":{},"f":{"3":{"1":{"docs":{},"。":{"docs":{},"对":{"docs":{},"于":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},",":{"docs":{},"其":{"docs":{},"x":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"是":{"3":{"2":{"docs":{},"位":{"docs":{},"宽":{"docs":{},"度":{"docs":{},"的":{"docs":{},",":{"docs":{},"x":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"=":{"3":{"2":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"r":{"docs":{},"v":{"6":{"4":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"是":{"6":{"4":{"docs":{},"位":{"docs":{},"宽":{"docs":{},"度":{"docs":{},"的":{"docs":{},",":{"docs":{},"x":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"=":{"6":{"4":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}},"docs":{}},"docs":{}}}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}},"架":{"docs":{},"构":{"docs":{},"移":{"docs":{},"植":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":10}}}}}}}}},"n":{"docs":{},"g":{"1":{"docs":{},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"2":{"docs":{},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"3":{"docs":{},")":{"docs":{},",":{"docs":{},"在":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}},"docs":{}}}},"e":{"docs":{},"d":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}},"a":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},"c":{"docs":{},"s":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"p":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"t":{"docs":{},"v":{"docs":{},"e":{"docs":{},"c":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},":":{"docs":{},"重":{"docs":{},"构":{"docs":{},"(":{"docs":{},"即":{"docs":{},"不":{"docs":{},"是":{"docs":{},"新":{"docs":{},"增":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"是":{"docs":{},"修":{"docs":{},"改":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"动":{"docs":{},")":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"s":{"docs":{},"p":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"t":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.015748031496062992},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.01818181818181818}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}},"u":{"docs":{},"n":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"b":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},",":{"docs":{},"其":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"固":{"docs":{},"件":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"o":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"c":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},",":{"docs":{},"w":{"docs":{},",":{"docs":{},"x":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"d":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"h":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"v":{"6":{"4":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"f":{"docs":{},"d":{"docs":{},"c":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}},"docs":{}},"docs":{}}},"s":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"d":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"/":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"k":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"多":{"docs":{},"核":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"调":{"docs":{},"度":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":10}}}},"启":{"docs":{},"动":{"docs":{},"流":{"docs":{},"程":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}},"负":{"docs":{},"载":{"docs":{},"均":{"docs":{},"衡":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"。":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}},"c":{"docs":{},"k":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0024227740763173833}},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"v":{"docs":{},"e":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"y":{"docs":{},"l":{"docs":{},"e":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"(":{"docs":{},"*":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.020100502512562814},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.03260869565217391},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.049586776859504134}},"的":{"docs":{},"意":{"docs":{},"思":{"docs":{},",":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"跨":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"简":{"docs":{},"洁":{"docs":{},"、":{"docs":{},"高":{"docs":{},"性":{"docs":{},"能":{"docs":{},"、":{"docs":{},"高":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"性":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"核":{"docs":{},"的":{"docs":{},"混":{"docs":{},"合":{"docs":{},"内":{"docs":{},"核":{"docs":{},",":{"docs":{},"它":{"docs":{},"将":{"docs":{},"应":{"docs":{},"用":{"docs":{},"于":{"docs":{},"桌":{"docs":{},"面":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},"以":{"docs":{},"及":{"docs":{},"移":{"docs":{},"动":{"docs":{},"终":{"docs":{},"端":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.043478260869565216}}},"设":{"docs":{},"计":{"docs":{},"好":{"docs":{},"了":{"docs":{},"再":{"docs":{},"设":{"docs":{},"计":{"docs":{},"接":{"docs":{},"口":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"还":{"docs":{},"没":{"docs":{},"有":{"docs":{},"概":{"docs":{},"念":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"t":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"u":{"docs":{},"p":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"t":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"s":{"docs":{},"h":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}},"c":{"docs":{},"s":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"k":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}},"p":{"docs":{},"c":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"c":{"9":{"7":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"docs":{}},"docs":{}}},"h":{"docs":{},"d":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"p":{"docs":{},"c":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}},"e":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}},"e":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},"f":{"docs":{},"t":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"u":{"docs":{},"d":{"docs":{},"o":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.03015075376884422}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0036341611144760752}},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}},"模":{"docs":{},"式":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"打":{"docs":{},"开":{"docs":{},"与":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"是":{"docs":{},"由":{"docs":{},"状":{"docs":{},"态":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"r":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"是":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"u":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"用":{"docs":{},"于":{"docs":{},"说":{"docs":{},"明":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}},"r":{"docs":{},"c":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}},"a":{"docs":{},"m":{"docs":{},"(":{"6":{"docs":{},"m":{"docs":{},"i":{"docs":{},"b":{"docs":{},"通":{"docs":{},"用":{"docs":{},"s":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"+":{"2":{"docs":{},"m":{"docs":{},"i":{"docs":{},"b":{"docs":{},"的":{"docs":{},"a":{"docs":{},"i":{"docs":{},"专":{"docs":{},"用":{"docs":{},"s":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}},"a":{"2":{"5":{"6":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"docs":{}},"docs":{}},"docs":{},"r":{"docs":{},"e":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}}}}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.04225352112676056},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}},";":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},"o":{"docs":{},"f":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"b":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"_":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"v":{"docs":{},"m":{"docs":{},"a":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}},"k":{"docs":{},"i":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0024227740763173833}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"d":{"docs":{},"x":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"i":{"docs":{},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},"s":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"e":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"p":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}},"u":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}}}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}},"v":{"3":{"9":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},",":{"3":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},",":{"docs":{},"页":{"docs":{},"表":{"docs":{},"和":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"都":{"docs":{},"是":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"4":{"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"5":{"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"6":{"4":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"docs":{}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}}}},"n":{"docs":{},"d":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}},"t":{"0":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0030284675953967293}}}},"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{},"o":{"docs":{},"d":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.04040404040404041}}}},"o":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"b":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"m":{"docs":{},"k":{"docs":{},"f":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"下":{"docs":{},"载":{"docs":{},"(":{"docs":{},"速":{"docs":{},"度":{"docs":{},"较":{"docs":{},"慢":{"docs":{},",":{"docs":{},"请":{"docs":{},"耐":{"docs":{},"心":{"docs":{},"等":{"docs":{},"待":{"docs":{},")":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\\":{"docs":{},"x":{"8":{"6":{"docs":{},"_":{"6":{"4":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}},"p":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"y":{"0":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"1":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"2":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"3":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}}}}}}}},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},":":{"docs":{},"增":{"docs":{},"加":{"docs":{},"测":{"docs":{},"试":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"a":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"h":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0136986301369863},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.03424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.0136986301369863}},"r":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}}}},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"t":{"docs":{},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}},"d":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.014705882352941176}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106}},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"l":{"docs":{},"s":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}},"c":{"docs":{},"=":{"docs":{},"i":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"是":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"的":{"docs":{},"缩":{"docs":{},"写":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"启":{"docs":{},"用":{"docs":{},"测":{"docs":{},"试":{"docs":{},"案":{"docs":{},"例":{"docs":{},"。":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"0":{"docs":{},".":{"1":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"docs":{}}},"6":{"4":{"docs":{},"/":{"3":{"2":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},":":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}},"docs":{}},"docs":{}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},":":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}},"docs":{}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"f":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"s":{"docs":{},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}},":":{"docs":{},"%":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0045427013930950935}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}},"]":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0060569351907934586}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}},",":{"docs":{},"转":{"docs":{},"换":{"docs":{},"为":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}},"m":{"docs":{},"m":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}},",":{"docs":{},"节":{"docs":{},"点":{"docs":{},"记":{"docs":{},"录":{"docs":{},"了":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},"以":{"docs":{},"及":{"docs":{},"这":{"docs":{},"段":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":10}}}}}}}}}}}}}},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"的":{"docs":{},"一":{"docs":{},"些":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"有":{"docs":{},"g":{"docs":{},"d":{"docs":{},"b":{"docs":{},"调":{"docs":{},"试":{"docs":{},"配":{"docs":{},"置":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.043478260869565216},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.0136986301369863},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.03389830508474576},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.043010752688172046},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.015142337976983646},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.054404145077720206},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.014705882352941176}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"p":{"docs":{},"n":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},",":{"docs":{},"第":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},",":{"docs":{},"第":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"docs":{}}},"中":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"断":{"docs":{},"分":{"docs":{},"为":{"docs":{},"两":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},",":{"docs":{},"一":{"docs":{},"种":{"docs":{},"是":{"docs":{},"同":{"docs":{},"步":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"即":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"、":{"docs":{},"e":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{},"等":{"docs":{},"指":{"docs":{},"令":{"docs":{},"所":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"另":{"docs":{},"一":{"docs":{},"种":{"docs":{},"是":{"docs":{},"异":{"docs":{},"步":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"即":{"docs":{},"g":{"docs":{},"p":{"docs":{},"i":{"docs":{},"o":{"docs":{},"、":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"等":{"docs":{},"外":{"docs":{},"设":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"已":{"docs":{},"经":{"docs":{},"确":{"docs":{},"立":{"docs":{},"了":{"docs":{},"版":{"docs":{},"本":{"2":{"docs":{},".":{"2":{"2":{"docs":{},"的":{"docs":{},"用":{"docs":{},"户":{"docs":{},"空":{"docs":{},"间":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"由":{"docs":{},"地":{"docs":{},"用":{"docs":{},"于":{"docs":{},"任":{"docs":{},"何":{"docs":{},"目":{"docs":{},"的":{"docs":{},",":{"docs":{},"允":{"docs":{},"许":{"docs":{},"任":{"docs":{},"何":{"docs":{},"人":{"docs":{},"设":{"docs":{},"计":{"docs":{},"、":{"docs":{},"制":{"docs":{},"造":{"docs":{},"和":{"docs":{},"销":{"docs":{},"售":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"了":{"docs":{},"小":{"docs":{},"型":{"docs":{},"、":{"docs":{},"快":{"docs":{},"速":{"docs":{},"、":{"docs":{},"低":{"docs":{},"功":{"docs":{},"耗":{"docs":{},"的":{"docs":{},"现":{"docs":{},"实":{"docs":{},"情":{"docs":{},"况":{"docs":{},"来":{"docs":{},"实":{"docs":{},"做":{"docs":{},",":{"docs":{},"但":{"docs":{},"并":{"docs":{},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"微":{"docs":{},"架":{"docs":{},"构":{"docs":{},"做":{"docs":{},"过":{"docs":{},"度":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"架":{"docs":{},"构":{"docs":{},"移":{"docs":{},"植":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"的":{"6":{"4":{"docs":{},"位":{"docs":{},"双":{"docs":{},"核":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"。":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}},"docs":{}},"docs":{}}}},"的":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"种":{"docs":{},"模":{"docs":{},"式":{"docs":{},",":{"docs":{},"有":{"docs":{},"s":{"docs":{},"v":{"3":{"2":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"3":{"9":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"4":{"8":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"5":{"7":{"docs":{},"/":{"docs":{},"s":{"docs":{},"v":{"6":{"4":{"docs":{},"等":{"docs":{},"。":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"模":{"docs":{},"式":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"页":{"docs":{},"面":{"docs":{},"等":{"docs":{},"级":{"docs":{},",":{"docs":{},"页":{"docs":{},"面":{"docs":{},"大":{"docs":{},"小":{"docs":{},"是":{"docs":{},"有":{"docs":{},"差":{"docs":{},"异":{"docs":{},"的":{"docs":{},"。":{"docs":{},"在":{"6":{"4":{"docs":{},"位":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"种":{"docs":{},"最":{"docs":{},"常":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"s":{"docs":{},"v":{"3":{"9":{"docs":{},",":{"docs":{},"它":{"docs":{},"是":{"3":{"docs":{},"级":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"页":{"docs":{},"面":{"docs":{},"大":{"docs":{},"小":{"docs":{},"映":{"docs":{},"射":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"docs":{}}},"docs":{}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"中":{"docs":{},"断":{"docs":{},"管":{"docs":{},"理":{"docs":{},"由":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"核":{"docs":{},"局":{"docs":{},"部":{"docs":{},"中":{"docs":{},"断":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},")":{"docs":{},"和":{"docs":{},"平":{"docs":{},"台":{"docs":{},"级":{"docs":{},"中":{"docs":{},"断":{"docs":{},"控":{"docs":{},"制":{"docs":{},"器":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"(":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"组":{"docs":{},"成":{"docs":{},"。":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"分":{"docs":{},"为":{"docs":{},"软":{"docs":{},"件":{"docs":{},"中":{"docs":{},"断":{"docs":{},"核":{"docs":{},"计":{"docs":{},"时":{"docs":{},"器":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"负":{"docs":{},"责":{"docs":{},"响":{"docs":{},"应":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"的":{"docs":{},"异":{"docs":{},"常":{"docs":{},"核":{"docs":{},"和":{"docs":{},"计":{"docs":{},"时":{"docs":{},"器":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"负":{"docs":{},"责":{"docs":{},"处":{"docs":{},"理":{"docs":{},"外":{"docs":{},"设":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"前":{"docs":{},"有":{"4":{"docs":{},"种":{"docs":{},"特":{"docs":{},"权":{"docs":{},"模":{"docs":{},"式":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},"docs":{}}}},"芯":{"docs":{},"片":{"docs":{},"和":{"docs":{},"软":{"docs":{},"件":{"docs":{},"。":{"docs":{},"虽":{"docs":{},"然":{"docs":{},"这":{"docs":{},"不":{"docs":{},"是":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"开":{"docs":{},"源":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},",":{"docs":{},"但":{"docs":{},"它":{"docs":{},"具":{"docs":{},"有":{"docs":{},"重":{"docs":{},"要":{"docs":{},"意":{"docs":{},"义":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"其":{"docs":{},"设":{"docs":{},"计":{"docs":{},"使":{"docs":{},"其":{"docs":{},"适":{"docs":{},"用":{"docs":{},"于":{"docs":{},"现":{"docs":{},"代":{"docs":{},"计":{"docs":{},"算":{"docs":{},"设":{"docs":{},"备":{"docs":{},"(":{"docs":{},"如":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"规":{"docs":{},"模":{"docs":{},"云":{"docs":{},"计":{"docs":{},"算":{"docs":{},"机":{"docs":{},"、":{"docs":{},"高":{"docs":{},"端":{"docs":{},"移":{"docs":{},"动":{"docs":{},"电":{"docs":{},"话":{"docs":{},"和":{"docs":{},"微":{"docs":{},"小":{"docs":{},"嵌":{"docs":{},"入":{"docs":{},"式":{"docs":{},"系":{"docs":{},"统":{"docs":{},")":{"docs":{},"。":{"docs":{},"设":{"docs":{},"计":{"docs":{},"者":{"docs":{},"考":{"docs":{},"虑":{"docs":{},"到":{"docs":{},"了":{"docs":{},"这":{"docs":{},"些":{"docs":{},"用":{"docs":{},"途":{"docs":{},"中":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"与":{"docs":{},"功":{"docs":{},"率":{"docs":{},"效":{"docs":{},"率":{"docs":{},"。":{"docs":{},"该":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"还":{"docs":{},"具":{"docs":{},"有":{"docs":{},"众":{"docs":{},"多":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"软":{"docs":{},"件":{"docs":{},",":{"docs":{},"这":{"docs":{},"解":{"docs":{},"决":{"docs":{},"了":{"docs":{},"新":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"通":{"docs":{},"常":{"docs":{},"的":{"docs":{},"弱":{"docs":{},"点":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"被":{"docs":{},"设":{"docs":{},"计":{"docs":{},"成":{"docs":{},"可":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"的":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"配":{"docs":{},"置":{"docs":{},"的":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"应":{"docs":{},"用":{"docs":{},"场":{"docs":{},"景":{"docs":{},"可":{"docs":{},"以":{"docs":{},"生":{"docs":{},"产":{"docs":{},"带":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"功":{"docs":{},"能":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"发":{"docs":{},"音":{"docs":{},"为":{"docs":{},"“":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.03015075376884422},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"s":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}},"下":{"docs":{},"设":{"docs":{},"置":{"docs":{},"i":{"3":{"8":{"6":{"docs":{},"环":{"docs":{},"境":{"docs":{},"并":{"docs":{},"设":{"docs":{},"置":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"=":{"docs":{},"x":{"8":{"6":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"环":{"docs":{},"境":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"=":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}},"环":{"docs":{},"境":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}},":":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"a":{"docs":{},"l":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376}}}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"c":{"docs":{},"s":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"p":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}}}}}}}}}}}}}},"e":{"docs":{},"e":{"docs":{},"l":{"docs":{},".":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"x":{"8":{"6":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.02197802197802198},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}},"_":{"6":{"4":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"改":{"docs":{},"成":{"docs":{},"了":{"docs":{},"x":{"docs":{},"m":{"docs":{},"a":{"docs":{},"k":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}},"n":{"docs":{},"u":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"x":{"docs":{},"x":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.014705882352941176}}}}},"一":{"docs":{},"、":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"开":{"docs":{},"发":{"docs":{},"环":{"docs":{},"境":{"docs":{},"搭":{"docs":{},"建":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}},"混":{"docs":{},"合":{"docs":{},"内":{"docs":{},"核":{"docs":{},"框":{"docs":{},"架":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}},"描":{"docs":{},"述":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"环":{"docs":{},"境":{"docs":{},"工":{"docs":{},"具":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}}}},".":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}},"般":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"引":{"docs":{},"导":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"(":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"中":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"内":{"docs":{},"容":{"docs":{},"则":{"docs":{},"和":{"docs":{},"我":{"docs":{},"们":{"docs":{},"刚":{"docs":{},"才":{"docs":{},"提":{"docs":{},"到":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"其":{"docs":{},"内":{"docs":{},"容":{"docs":{},"包":{"docs":{},"含":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"号":{"docs":{},",":{"docs":{},"即":{"docs":{},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"个":{"docs":{},"要":{"docs":{},"映":{"docs":{},"射":{"docs":{},"到":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"三":{"docs":{},"、":{"docs":{},"内":{"docs":{},"核":{"docs":{},"功":{"docs":{},"能":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"框":{"docs":{},"架":{"docs":{},"图":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}},"代":{"docs":{},"码":{"docs":{},"移":{"docs":{},"植":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},".":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}},"中":{"docs":{},"断":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"中":{"docs":{},"断":{"docs":{},"队":{"docs":{},"列":{"docs":{},"机":{"docs":{},"制":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"是":{"docs":{},"基":{"docs":{},"于":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"管":{"docs":{},"理":{"docs":{},"机":{"docs":{},"制":{"docs":{},"的":{"docs":{},",":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"架":{"docs":{},"构":{"docs":{},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"现":{"docs":{},"机":{"docs":{},"制":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"差":{"docs":{},"别":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{},"大":{"docs":{},"体":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"上":{"docs":{},"都":{"docs":{},"是":{"docs":{},"一":{"docs":{},"致":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"抽":{"docs":{},"象":{"docs":{},"出":{"docs":{},"一":{"docs":{},"套":{"docs":{},"统":{"docs":{},"一":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"来":{"docs":{},"供":{"docs":{},"上":{"docs":{},"层":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{},"对":{"docs":{},"内":{"docs":{},"核":{"docs":{},"以":{"docs":{},"及":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"都":{"docs":{},"是":{"docs":{},"至":{"docs":{},"关":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"全":{"docs":{},"局":{"docs":{},"打":{"docs":{},"开":{"docs":{},"和":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"的":{"docs":{},",":{"docs":{},"打":{"docs":{},"开":{"docs":{},"后":{"docs":{},"才":{"docs":{},"会":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"除":{"docs":{},"此":{"docs":{},"之":{"docs":{},"外":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"打":{"docs":{},"开":{"docs":{},"和":{"docs":{},"关":{"docs":{},"闭":{"docs":{},",":{"docs":{},"在":{"docs":{},"禁":{"docs":{},"止":{"docs":{},"了":{"docs":{},"网":{"docs":{},"卡":{"docs":{},"中":{"docs":{},"断":{"docs":{},"后":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"打":{"docs":{},"开":{"docs":{},"了":{"docs":{},"全":{"docs":{},"局":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"也":{"docs":{},"收":{"docs":{},"不":{"docs":{},"到":{"docs":{},"网":{"docs":{},"络":{"docs":{},"数":{"docs":{},"据":{"docs":{},"包":{"docs":{},"了":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},",":{"docs":{},"异":{"docs":{},"常":{"docs":{},"是":{"docs":{},"不":{"docs":{},"可":{"docs":{},"以":{"docs":{},"屏":{"docs":{},"蔽":{"docs":{},"的":{"docs":{},",":{"docs":{},"异":{"docs":{},"常":{"docs":{},"是":{"docs":{},"来":{"docs":{},"告":{"docs":{},"诉":{"docs":{},"内":{"docs":{},"核":{"docs":{},"出":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"问":{"docs":{},"题":{"docs":{},"了":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"异":{"docs":{},"常":{"docs":{},"做":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"有":{"docs":{},"的":{"docs":{},"异":{"docs":{},"常":{"docs":{},"是":{"docs":{},"不":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"复":{"docs":{},"的":{"docs":{},",":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"系":{"docs":{},"统":{"docs":{},"死":{"docs":{},"机":{"docs":{},",":{"docs":{},"有":{"docs":{},"的":{"docs":{},"异":{"docs":{},"常":{"docs":{},"时":{"docs":{},"可":{"docs":{},"以":{"docs":{},"修":{"docs":{},"复":{"docs":{},"的":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"页":{"docs":{},"故":{"docs":{},"障":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"拿":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"页":{"docs":{},"面":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"由":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"临":{"docs":{},"时":{"docs":{},"打":{"docs":{},"断":{"docs":{},"当":{"docs":{},"前":{"docs":{},"执":{"docs":{},"行":{"docs":{},"流":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"可":{"docs":{},"分":{"docs":{},"为":{"docs":{},"设":{"docs":{},"备":{"docs":{},"中":{"docs":{},"断":{"docs":{},"和":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"异":{"docs":{},"常":{"docs":{},"。":{"docs":{},"设":{"docs":{},"备":{"docs":{},"中":{"docs":{},"断":{"docs":{},"就":{"docs":{},"是":{"docs":{},"当":{"docs":{},"网":{"docs":{},"卡":{"docs":{},"设":{"docs":{},"备":{"docs":{},"收":{"docs":{},"到":{"docs":{},"数":{"docs":{},"据":{"docs":{},"后":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"打":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"当":{"docs":{},"前":{"docs":{},"在":{"docs":{},"处":{"docs":{},"理":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},",":{"docs":{},"去":{"docs":{},"处":{"docs":{},"理":{"docs":{},"网":{"docs":{},"络":{"docs":{},"数":{"docs":{},"据":{"docs":{},"包":{"docs":{},"。":{"docs":{},"异":{"docs":{},"常":{"docs":{},"中":{"docs":{},"断":{"docs":{},"就":{"docs":{},"是":{"docs":{},"当":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"执":{"docs":{},"行":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"或":{"docs":{},"者":{"docs":{},"访":{"docs":{},"问":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"没":{"docs":{},"有":{"docs":{},"权":{"docs":{},"限":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"就":{"docs":{},"会":{"docs":{},"中":{"docs":{},"断":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"流":{"docs":{},",":{"docs":{},"去":{"docs":{},"对":{"docs":{},"异":{"docs":{},"常":{"docs":{},"做":{"docs":{},"一":{"docs":{},"个":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"都":{"docs":{},"是":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":10}}}},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}},"在":{"docs":{},"某":{"docs":{},"个":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"或":{"docs":{},"者":{"docs":{},"内":{"docs":{},"核":{"docs":{},"组":{"docs":{},"件":{"docs":{},"中":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"。":{"docs":{},"当":{"docs":{},"产":{"docs":{},"生":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"在":{"docs":{},"中":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"中":{"docs":{},",":{"docs":{},"只":{"docs":{},"对":{"docs":{},"中":{"docs":{},"断":{"docs":{},"产":{"docs":{},"生":{"docs":{},"时":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"进":{"docs":{},"行":{"docs":{},"保":{"docs":{},"存":{"docs":{},",":{"docs":{},"不":{"docs":{},"对":{"docs":{},"中":{"docs":{},"断":{"docs":{},"产":{"docs":{},"生":{"docs":{},"时":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"种":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"处":{"docs":{},"理":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}},"机":{"docs":{},"制":{"docs":{},"中":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"下":{"docs":{},"半":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"用":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"要":{"docs":{},"求":{"docs":{},"是":{"docs":{},"快":{"docs":{},"速":{"docs":{},"地":{"docs":{},"响":{"docs":{},"应":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"是":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"了":{"docs":{},"全":{"docs":{},"局":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"回":{"docs":{},"到":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{},"而":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},"就":{"docs":{},"是":{"docs":{},"来":{"docs":{},"完":{"docs":{},"成":{"docs":{},"这":{"docs":{},"个":{"docs":{},"工":{"docs":{},"作":{"docs":{},"的":{"docs":{},",":{"docs":{},"产":{"docs":{},"生":{"docs":{},"了":{"docs":{},"中":{"docs":{},"断":{"docs":{},"后":{"docs":{},",":{"docs":{},"只":{"docs":{},"进":{"docs":{},"行":{"docs":{},"最":{"docs":{},"少":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"表":{"docs":{},"地":{"docs":{},"址":{"docs":{},"需":{"docs":{},"要":{"docs":{},"写":{"docs":{},"入":{"docs":{},"管":{"docs":{},"理":{"docs":{},"者":{"docs":{},"模":{"docs":{},"式":{"docs":{},"的":{"docs":{},"向":{"docs":{},"量":{"docs":{},"基":{"docs":{},"址":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"被":{"docs":{},"划":{"docs":{},"分":{"docs":{},"成":{"3":{"docs":{},"类":{"docs":{},",":{"docs":{},"小":{"docs":{},"(":{"1":{"6":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}}}}}}}}},"分":{"docs":{},"为":{"docs":{},"实":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"和":{"docs":{},"分":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"实":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"是":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"有":{"docs":{},"高":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"就":{"docs":{},"不":{"docs":{},"能":{"docs":{},"运":{"docs":{},"行":{"docs":{},"低":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"而":{"docs":{},"分":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"是":{"docs":{},"高":{"docs":{},"低":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"线":{"docs":{},"程":{"docs":{},"都":{"docs":{},"能":{"docs":{},"得":{"docs":{},"到":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"低":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"线":{"docs":{},"程":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"更":{"docs":{},"少":{"docs":{},"而":{"docs":{},"已":{"docs":{},"。":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"会":{"docs":{},"先":{"docs":{},"检":{"docs":{},"测":{"docs":{},"该":{"docs":{},"地":{"docs":{},"址":{"docs":{},"是":{"docs":{},"否":{"docs":{},"已":{"docs":{},"经":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"没":{"docs":{},"有":{"docs":{},"映":{"docs":{},"射":{"docs":{},"才":{"docs":{},"能":{"docs":{},"映":{"docs":{},"射":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"通":{"docs":{},"过":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"多":{"docs":{},"了":{"docs":{},"对":{"docs":{},"当":{"docs":{},"前":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"据":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"获":{"docs":{},"取":{"docs":{},"了":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"值":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"从":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"完":{"docs":{},"串":{"docs":{},"口":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"打":{"docs":{},"印":{"docs":{},"功":{"docs":{},"能":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"构":{"docs":{},"建":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"调":{"docs":{},"用":{"docs":{},"了":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"这":{"docs":{},"个":{"docs":{},"频":{"docs":{},"率":{"docs":{},"是":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"二":{"docs":{},"、":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"编":{"docs":{},"译":{"docs":{},"和":{"docs":{},"运":{"docs":{},"行":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}},"目":{"docs":{},"录":{"docs":{},"框":{"docs":{},"架":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"原":{"docs":{},"理":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}},"架":{"docs":{},"构":{"docs":{},"简":{"docs":{},"述":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{},"环":{"docs":{},"境":{"docs":{},"工":{"docs":{},"具":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}},".":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"中":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"号":{"docs":{},"可":{"docs":{},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"个":{"docs":{},"一":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}},"五":{"docs":{},"、":{"docs":{},"许":{"docs":{},"可":{"docs":{},"协":{"docs":{},"议":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}},"以":{"docs":{},"线":{"docs":{},"程":{"docs":{},"为":{"docs":{},"最":{"docs":{},"小":{"docs":{},"调":{"docs":{},"度":{"docs":{},"单":{"docs":{},"元":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"的":{"docs":{},"好":{"docs":{},"处":{"docs":{},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"很":{"docs":{},"方":{"docs":{},"便":{"docs":{},"支":{"docs":{},"持":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},"以":{"docs":{},"及":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"的":{"docs":{},"多":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"层":{"docs":{},"次":{"docs":{},"框":{"docs":{},"架":{"docs":{},"也":{"docs":{},"比":{"docs":{},"较":{"docs":{},"好":{"docs":{},",":{"docs":{},"容":{"docs":{},"易":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"及":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}},"在":{"docs":{},"做":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"堆":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"栈":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"到":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"节":{"docs":{},"点":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},",":{"docs":{},"已":{"docs":{},"经":{"docs":{},"一":{"docs":{},"些":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"的":{"docs":{},"标":{"docs":{},"志":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"标":{"docs":{},"志":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"线":{"docs":{},"程":{"docs":{},"运":{"docs":{},"行":{"docs":{},"时":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"内":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"存":{"docs":{},"取":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}},"上":{"docs":{},"描":{"docs":{},"述":{"docs":{},"摘":{"docs":{},"自":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"避":{"docs":{},"免":{"docs":{},"重":{"docs":{},"名":{"docs":{},",":{"docs":{},"另":{"docs":{},"外":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"文":{"docs":{},"件":{"docs":{},"名":{"docs":{},"中":{"docs":{},"是":{"docs":{},"否":{"docs":{},"包":{"docs":{},"含":{"docs":{},"多":{"docs":{},"个":{"docs":{},"词":{"docs":{},"语":{"docs":{},"而":{"docs":{},"采":{"docs":{},"用":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"动":{"docs":{},"词":{"docs":{},"开":{"docs":{},"头":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"第":{"docs":{},"一":{"docs":{},"人":{"docs":{},"称":{"docs":{},"现":{"docs":{},"在":{"docs":{},"时":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},"或":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"他":{"docs":{},"功":{"docs":{},"能":{"docs":{},"正":{"docs":{},"在":{"docs":{},"开":{"docs":{},"发":{"docs":{},"中":{"docs":{},",":{"docs":{},"敬":{"docs":{},"请":{"docs":{},"期":{"docs":{},"待":{"docs":{},"!":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},":":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}},"注":{"docs":{},"意":{"docs":{},"事":{"docs":{},"项":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}},"中":{"docs":{},"\"":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"和":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"\"":{"docs":{},"需":{"docs":{},"要":{"docs":{},"单":{"docs":{},"独":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"行":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}},",":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"就":{"docs":{},"只":{"docs":{},"负":{"docs":{},"责":{"docs":{},"基":{"docs":{},"础":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"平":{"docs":{},"台":{"docs":{},"移":{"docs":{},"植":{"docs":{},"和":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"的":{"docs":{},"移":{"docs":{},"植":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"如":{"docs":{},"何":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"同":{"docs":{},"一":{"docs":{},"个":{"docs":{},"数":{"docs":{},"量":{"docs":{},"级":{"docs":{},"的":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"还":{"docs":{},"有":{"docs":{},"国":{"docs":{},"产":{"docs":{},"开":{"docs":{},"源":{"docs":{},"系":{"docs":{},"统":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}},"、":{"docs":{},"苹":{"docs":{},"果":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"一":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"文":{"docs":{},"档":{"docs":{},"说":{"docs":{},"明":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}},"其":{"docs":{},"余":{"docs":{},"模":{"docs":{},"块":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"以":{"docs":{},"及":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"核":{"docs":{},"心":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}},"源":{"docs":{},"码":{"docs":{},"目":{"docs":{},"录":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"的":{"docs":{},"源":{"docs":{},"码":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"最":{"docs":{},"小":{"docs":{},"调":{"docs":{},"度":{"docs":{},"单":{"docs":{},"位":{"docs":{},"是":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"都":{"docs":{},"有":{"docs":{},"自":{"docs":{},"己":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"栈":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"组":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"一":{"docs":{},"些":{"docs":{},"运":{"docs":{},"行":{"docs":{},"信":{"docs":{},"息":{"docs":{},"等":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"属":{"docs":{},"于":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}},"功":{"docs":{},"能":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}},"执":{"docs":{},"行":{"docs":{},"路":{"docs":{},"径":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}},"虚":{"docs":{},"拟":{"docs":{},"堆":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"基":{"docs":{},"于":{"docs":{},"缓":{"docs":{},"存":{"docs":{},"的":{"docs":{},"链":{"docs":{},"表":{"docs":{},"实":{"docs":{},"现":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"之":{"docs":{},"堆":{"docs":{},"内":{"docs":{},"存":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"堆":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"待":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"个":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"为":{"docs":{},"空":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"是":{"docs":{},"分":{"docs":{},"配":{"docs":{},"失":{"docs":{},"败":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},",":{"docs":{},"休":{"docs":{},"眠":{"docs":{},"的":{"docs":{},"单":{"docs":{},"位":{"docs":{},"是":{"docs":{},"毫":{"docs":{},"秒":{"docs":{},",":{"docs":{},"休":{"docs":{},"眠":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}},"崩":{"docs":{},"溃":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}},"入":{"docs":{},"口":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":10.11111111111111},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},"模":{"docs":{},"块":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"分":{"docs":{},"为":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"、":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"、":{"docs":{},"进":{"docs":{},"程":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"这":{"docs":{},"三":{"docs":{},"个":{"docs":{},"大":{"docs":{},"模":{"docs":{},"块":{"docs":{},"。":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},"最":{"docs":{},"为":{"docs":{},"核":{"docs":{},"心":{"docs":{},"和":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"这":{"docs":{},"是":{"docs":{},"由":{"docs":{},"于":{"docs":{},"很":{"docs":{},"多":{"docs":{},"其":{"docs":{},"它":{"docs":{},"模":{"docs":{},"块":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},"。":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"最":{"docs":{},"基":{"docs":{},"本":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"就":{"docs":{},"是":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"能":{"docs":{},"够":{"docs":{},"支":{"docs":{},"持":{"docs":{},"分":{"docs":{},"页":{"docs":{},"机":{"docs":{},"制":{"docs":{},",":{"docs":{},"为":{"docs":{},"页":{"docs":{},"表":{"docs":{},"映":{"docs":{},"射":{"docs":{},"提":{"docs":{},"供":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"将":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"为":{"docs":{},"页":{"docs":{},"面":{"docs":{},"大":{"docs":{},"小":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},"会":{"docs":{},"比":{"docs":{},"较":{"docs":{},"合":{"docs":{},"适":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"根":{"docs":{},"基":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"从":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},"取":{"docs":{},"出":{"docs":{},"指":{"docs":{},"令":{"docs":{},"来":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"在":{"docs":{},"进":{"docs":{},"入":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"会":{"docs":{},"有":{"docs":{},"引":{"docs":{},"导":{"docs":{},"器":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"释":{"docs":{},"放":{"docs":{},"堆":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"并":{"docs":{},"返":{"docs":{},"回":{"docs":{},"释":{"docs":{},"放":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"屏":{"docs":{},"障":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"前":{"docs":{},"的":{"docs":{},"所":{"docs":{},"有":{"docs":{},"读":{"docs":{},"写":{"docs":{},"操":{"docs":{},"作":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"才":{"docs":{},"能":{"docs":{},"执":{"docs":{},"行":{"docs":{},"屏":{"docs":{},"障":{"docs":{},"后":{"docs":{},"的":{"docs":{},"读":{"docs":{},"写":{"docs":{},"操":{"docs":{},"作":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}},"读":{"docs":{},"/":{"docs":{},"写":{"docs":{},"屏":{"docs":{},"障":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}},"就":{"docs":{},"能":{"docs":{},"正":{"docs":{},"确":{"docs":{},"地":{"docs":{},"进":{"docs":{},"行":{"docs":{},"数":{"docs":{},"据":{"docs":{},"存":{"docs":{},"取":{"docs":{},",":{"docs":{},"不":{"docs":{},"然":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"页":{"docs":{},"面":{"docs":{},"故":{"docs":{},"障":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"置":{"docs":{},"了":{"docs":{},"原":{"docs":{},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"的":{"docs":{},"原":{"docs":{},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"分":{"docs":{},"支":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"配":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}},"一":{"docs":{},"个":{"docs":{},"t":{"docs":{},"l":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"功":{"docs":{},"能":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.02849740932642487}},"支":{"docs":{},"持":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"可":{"docs":{},"以":{"docs":{},"运":{"docs":{},"行":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"串":{"docs":{},"口":{"docs":{},"输":{"docs":{},"出":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"串":{"docs":{},"口":{"docs":{},"输":{"docs":{},"入":{"docs":{},"按":{"docs":{},"键":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"找":{"docs":{},"到":{"docs":{},"其":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"在":{"docs":{},"终":{"docs":{},"端":{"docs":{},"中":{"docs":{},"输":{"docs":{},"入":{"docs":{},"命":{"docs":{},"令":{"docs":{},"安":{"docs":{},"装":{"docs":{},":":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"省":{"docs":{},"略":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"编":{"docs":{},"程":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"和":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},"服":{"docs":{},"务":{"docs":{},",":{"docs":{},"应":{"docs":{},"用":{"docs":{},"程":{"docs":{},"序":{"docs":{},"去":{"docs":{},"构":{"docs":{},"建":{"docs":{},"应":{"docs":{},"用":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}},"加":{"docs":{},"入":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},"相":{"docs":{},"反":{"docs":{},",":{"docs":{},"有":{"docs":{},"离":{"docs":{},"开":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"和":{"docs":{},"加":{"docs":{},"入":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"一":{"docs":{},"样":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"意":{"docs":{},"思":{"docs":{},"相":{"docs":{},"反":{"docs":{},"而":{"docs":{},"已":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"禁":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"线":{"docs":{},"程":{"docs":{},"结":{"docs":{},"束":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"裸":{"docs":{},"机":{"docs":{},"开":{"docs":{},"发":{"docs":{},"种":{"docs":{},",":{"docs":{},"很":{"docs":{},"多":{"docs":{},"时":{"docs":{},"候":{"docs":{},"都":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}},"四":{"docs":{},"、":{"docs":{},"平":{"docs":{},"台":{"docs":{},"支":{"docs":{},"持":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"接":{"docs":{},"口":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}},"移":{"docs":{},"植":{"docs":{},"总":{"docs":{},"结":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},".":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"在":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.021739130434782608},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003937007874015748}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"上":{"docs":{},"对":{"docs":{},"内":{"docs":{},"核":{"docs":{},"和":{"docs":{},"进":{"docs":{},"程":{"docs":{},"进":{"docs":{},"行":{"docs":{},"隔":{"docs":{},"离":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"中":{"docs":{},",":{"docs":{},"打":{"docs":{},"开":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"选":{"docs":{},"取":{"docs":{},"需":{"docs":{},"要":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{},",":{"docs":{},"退":{"docs":{},"出":{"docs":{},"保":{"docs":{},"存":{"docs":{},"。":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},"源":{"docs":{},"码":{"docs":{},"后":{"docs":{},",":{"docs":{},"您":{"docs":{},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"编":{"docs":{},"译":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"(":{"docs":{},"点":{"docs":{},"我":{"docs":{},"跳":{"docs":{},"转":{"docs":{},")":{"docs":{},",":{"docs":{},"下":{"docs":{},"载":{"docs":{},"好":{"docs":{},"后":{"docs":{},",":{"docs":{},"进":{"docs":{},"行":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"备":{"docs":{},"开":{"docs":{},"机":{"docs":{},"后":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"去":{"docs":{},"执":{"docs":{},"行":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"都":{"docs":{},"是":{"docs":{},"固":{"docs":{},"定":{"docs":{},"的":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"从":{"docs":{},"这":{"docs":{},"些":{"docs":{},"固":{"docs":{},"定":{"docs":{},"代":{"docs":{},"码":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"程":{"docs":{},"序":{"docs":{},"员":{"docs":{},"自":{"docs":{},"己":{"docs":{},"编":{"docs":{},"写":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"。":{"docs":{},"程":{"docs":{},"序":{"docs":{},"员":{"docs":{},"自":{"docs":{},"己":{"docs":{},"写":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},"就":{"docs":{},"是":{"docs":{},"裸":{"docs":{},"机":{"docs":{},",":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"或":{"docs":{},"者":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"。":{"docs":{},"在":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"会":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"执":{"docs":{},"行":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"指":{"docs":{},"定":{"docs":{},"内":{"docs":{},"核":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"在":{"docs":{},"链":{"docs":{},"接":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"指":{"docs":{},"定":{"docs":{},"一":{"docs":{},"个":{"docs":{},"标":{"docs":{},"签":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"砖":{"docs":{},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"页":{"docs":{},"面":{"docs":{},"结":{"docs":{},"构":{"docs":{},",":{"docs":{},"来":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"结":{"docs":{},"构":{"docs":{},"里":{"docs":{},"面":{"docs":{},"的":{"docs":{},"成":{"docs":{},"员":{"docs":{},",":{"docs":{},"这":{"docs":{},"在":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"指":{"docs":{},"针":{"docs":{},"类":{"docs":{},"型":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"后":{"docs":{},"缀":{"docs":{},",":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}},"释":{"docs":{},"放":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"引":{"docs":{},"用":{"docs":{},"计":{"docs":{},"数":{"docs":{},"为":{"0":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"去":{"docs":{},"正":{"docs":{},"在":{"docs":{},"释":{"docs":{},"放":{"docs":{},"这":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}},"除":{"docs":{},"页":{"docs":{},"面":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"循":{"docs":{},"环":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"也":{"docs":{},"会":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"堆":{"docs":{},"的":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"扩":{"docs":{},"展":{"docs":{},"等":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{},"多":{"docs":{},"任":{"docs":{},"务":{"docs":{},"的":{"docs":{},"是":{"docs":{},"线":{"docs":{},"程":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"调":{"docs":{},"度":{"docs":{},"算":{"docs":{},"法":{"docs":{},",":{"docs":{},"多":{"docs":{},"核":{"docs":{},"调":{"docs":{},"度":{"docs":{},"。":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"嵌":{"docs":{},"入":{"docs":{},"式":{"docs":{},"领":{"docs":{},"域":{"docs":{},",":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"的":{"docs":{},"实":{"docs":{},"时":{"docs":{},"性":{"docs":{},"是":{"docs":{},"非":{"docs":{},"常":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"。":{"docs":{},"简":{"docs":{},"单":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"最":{"docs":{},"高":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"在":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"低":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"得":{"docs":{},"不":{"docs":{},"到":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"更":{"docs":{},"高":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"代":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},",":{"docs":{},"多":{"docs":{},"任":{"docs":{},"务":{"docs":{},"已":{"docs":{},"成":{"docs":{},"为":{"docs":{},"标":{"docs":{},"配":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"可":{"docs":{},"以":{"docs":{},"“":{"docs":{},"同":{"docs":{},"时":{"docs":{},"”":{"docs":{},"执":{"docs":{},"行":{"docs":{},"多":{"docs":{},"个":{"docs":{},"任":{"docs":{},"务":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"最":{"docs":{},"大":{"docs":{},"化":{"docs":{},"利":{"docs":{},"用":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"支":{"docs":{},"持":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"分":{"docs":{},"为":{"docs":{},"了":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},"和":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"。":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},"是":{"docs":{},"内":{"docs":{},"核":{"docs":{},"程":{"docs":{},"序":{"docs":{},"本":{"docs":{},"身":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"对":{"docs":{},"设":{"docs":{},"备":{"docs":{},"资":{"docs":{},"源":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},"核":{"docs":{},"控":{"docs":{},"制":{"docs":{},"。":{"docs":{},"而":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"只":{"docs":{},"能":{"docs":{},"够":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"内":{"docs":{},"核":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},",":{"docs":{},"不":{"docs":{},"能":{"docs":{},"够":{"docs":{},"直":{"docs":{},"接":{"docs":{},"对":{"docs":{},"资":{"docs":{},"源":{"docs":{},"进":{"docs":{},"行":{"docs":{},"访":{"docs":{},"问":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"运":{"docs":{},"行":{"docs":{},"该":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{},"线":{"docs":{},"程":{"docs":{},"去":{"docs":{},"完":{"docs":{},"成":{"docs":{},"一":{"docs":{},"些":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},"的":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"创":{"docs":{},"建":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}},"线":{"docs":{},"程":{"docs":{},"创":{"docs":{},"建":{"docs":{},"后":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"线":{"docs":{},"程":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},",":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"设":{"docs":{},"置":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"亲":{"docs":{},"和":{"docs":{},"性":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"该":{"docs":{},"线":{"docs":{},"程":{"docs":{},"被":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"在":{"docs":{},"指":{"docs":{},"定":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"上":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"中":{"docs":{},",":{"docs":{},"有":{"docs":{},"链":{"docs":{},"表":{"docs":{},",":{"docs":{},"基":{"docs":{},"础":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"栈":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"调":{"docs":{},"度":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"资":{"docs":{},"源":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"还":{"docs":{},"没":{"docs":{},"开":{"docs":{},"始":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"一":{"docs":{},"个":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"切":{"docs":{},"换":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"的":{"docs":{},"是":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{},"地":{"docs":{},"址":{"docs":{},"中":{"docs":{},"取":{"docs":{},"出":{"docs":{},"线":{"docs":{},"程":{"docs":{},"当":{"docs":{},"前":{"docs":{},"栈":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"中":{"docs":{},"断":{"docs":{},"中":{"docs":{},",":{"docs":{},"使":{"docs":{},"能":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"做":{"docs":{},"时":{"docs":{},"钟":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"关":{"docs":{},"闭":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"平":{"docs":{},"台":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"调":{"docs":{},"试":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"会":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"很":{"docs":{},"多":{"docs":{},"问":{"docs":{},"题":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"耐":{"docs":{},"心":{"docs":{},"地":{"docs":{},"调":{"docs":{},"试":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"里":{"docs":{},"三":{"docs":{},"级":{"docs":{},"和":{"docs":{},"二":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"源":{"docs":{},"文":{"docs":{},"件":{"docs":{},"文":{"docs":{},"件":{"docs":{},"头":{"docs":{},"上":{"docs":{},",":{"docs":{},"应":{"docs":{},"该":{"docs":{},"包":{"docs":{},"括":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"版":{"docs":{},"权":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"文":{"docs":{},"件":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}},"根":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},",":{"docs":{},"打":{"docs":{},"开":{"docs":{},"一":{"docs":{},"个":{"docs":{},"终":{"docs":{},"端":{"docs":{},",":{"docs":{},"在":{"docs":{},"配":{"docs":{},"置":{"docs":{},"了":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"配":{"docs":{},"置":{"docs":{},"了":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"中":{"docs":{},"输":{"docs":{},"入":{"docs":{},"命":{"docs":{},"令":{"docs":{},"即":{"docs":{},"可":{"docs":{},"开":{"docs":{},"始":{"docs":{},"测":{"docs":{},"试":{"docs":{},":":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}},"基":{"docs":{},"于":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},",":{"docs":{},"基":{"docs":{},"于":{"docs":{},"线":{"docs":{},"性":{"docs":{},"链":{"docs":{},"表":{"docs":{},"实":{"docs":{},"现":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}},"多":{"docs":{},"核":{"docs":{},",":{"docs":{},"多":{"docs":{},"架":{"docs":{},"构":{"docs":{},",":{"docs":{},"多":{"docs":{},"平":{"docs":{},"台":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}},"调":{"docs":{},"度":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}},"中":{"docs":{},"很":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"机":{"docs":{},"制":{"docs":{},"就":{"docs":{},"是":{"docs":{},"自":{"docs":{},"旋":{"docs":{},"锁":{"docs":{},",":{"docs":{},"当":{"docs":{},"需":{"docs":{},"要":{"docs":{},"访":{"docs":{},"问":{"docs":{},"公":{"docs":{},"共":{"docs":{},"资":{"docs":{},"源":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"自":{"docs":{},"旋":{"docs":{},"锁":{"docs":{},"来":{"docs":{},"上":{"docs":{},"锁":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"保":{"docs":{},"证":{"docs":{},"多":{"docs":{},"个":{"docs":{},"核":{"docs":{},"同":{"docs":{},"时":{"docs":{},"访":{"docs":{},"问":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"。":{"docs":{},"自":{"docs":{},"旋":{"docs":{},"锁":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"于":{"docs":{},"原":{"docs":{},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"而":{"docs":{},"原":{"docs":{},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{},"又":{"docs":{},"需":{"docs":{},"要":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"做":{"docs":{},"支":{"docs":{},"持":{"docs":{},"。":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},",":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"内":{"docs":{},"核":{"docs":{},"只":{"docs":{},"是":{"docs":{},"根":{"docs":{},"据":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"做":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"抽":{"docs":{},"象":{"docs":{},",":{"docs":{},"做":{"docs":{},"好":{"docs":{},"多":{"docs":{},"核":{"docs":{},"间":{"docs":{},"的":{"docs":{},"同":{"docs":{},"步":{"docs":{},"与":{"docs":{},"互":{"docs":{},"斥":{"docs":{},"。":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},"果":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"您":{"docs":{},"在":{"docs":{},"文":{"docs":{},"档":{"docs":{},"中":{"docs":{},"发":{"docs":{},"现":{"docs":{},"了":{"docs":{},"问":{"docs":{},"题":{"docs":{},"或":{"docs":{},"者":{"docs":{},"想":{"docs":{},"参":{"docs":{},"与":{"docs":{},"文":{"docs":{},"档":{"docs":{},"的":{"docs":{},"编":{"docs":{},"写":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"文":{"docs":{},"档":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"提":{"docs":{},"出":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"静":{"docs":{},"态":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"创":{"docs":{},"建":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"调":{"docs":{},"用":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"并":{"docs":{},"传":{"docs":{},"入":{"docs":{},"该":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},",":{"docs":{},"参":{"docs":{},"数":{"docs":{},"同":{"docs":{},"上":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"静":{"docs":{},"态":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"进":{"docs":{},"行":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}},"只":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"运":{"docs":{},"行":{"docs":{},"起":{"docs":{},"来":{"docs":{},",":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"线":{"docs":{},"程":{"docs":{},"环":{"docs":{},"境":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{},"前":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"超":{"docs":{},"过":{"docs":{},"了":{"docs":{},"超":{"docs":{},"时":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"触":{"docs":{},"发":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},":":{"docs":{},"前":{"docs":{},"提":{"docs":{},"是":{"docs":{},"打":{"docs":{},"开":{"docs":{},"了":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{},"多":{"docs":{},"核":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"这":{"docs":{},"个":{"docs":{},"时":{"docs":{},"候":{"docs":{},"去":{"docs":{},"唤":{"docs":{},"醒":{"docs":{},"其":{"docs":{},"他":{"docs":{},"核":{"docs":{},"。":{"docs":{},"不":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"话":{"docs":{},"返":{"docs":{},"回":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"为":{"docs":{},"空":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"使":{"docs":{},"用":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},"作":{"docs":{},"为":{"docs":{},"入":{"docs":{},"口":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"类":{"docs":{},"型":{"docs":{},"定":{"docs":{},"义":{"docs":{},"中":{"docs":{},"使":{"docs":{},"用":{"docs":{},"指":{"docs":{},"针":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},"后":{"docs":{},"缀":{"docs":{},"或":{"docs":{},"者":{"docs":{},"其":{"docs":{},"他":{"docs":{},"可":{"docs":{},"以":{"docs":{},"表":{"docs":{},"达":{"docs":{},"意":{"docs":{},"思":{"docs":{},"的":{"docs":{},"单":{"docs":{},"词":{"docs":{},"指":{"docs":{},"明":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"为":{"docs":{},"f":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"和":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},",":{"docs":{},"则":{"docs":{},"该":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}},"你":{"docs":{},"的":{"docs":{},"修":{"docs":{},"改":{"docs":{},"影":{"docs":{},"响":{"docs":{},"了":{"docs":{},"不":{"docs":{},"止":{"docs":{},"一":{"docs":{},"个":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"*":{"docs":{},"代":{"docs":{},"替":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"源":{"docs":{},"协":{"docs":{},"议":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"自":{"docs":{},"由":{"docs":{},"的":{"docs":{},"复":{"docs":{},"制":{"docs":{},"和":{"docs":{},"修":{"docs":{},"改":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"留":{"docs":{},"版":{"docs":{},"权":{"docs":{},"说":{"docs":{},"明":{"docs":{},"即":{"docs":{},"可":{"docs":{},",":{"docs":{},"无":{"docs":{},"潜":{"docs":{},"在":{"docs":{},"的":{"docs":{},"商":{"docs":{},"业":{"docs":{},"风":{"docs":{},"险":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"始":{"docs":{},",":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}}}},"彩":{"docs":{},"色":{"docs":{},"日":{"docs":{},"志":{"docs":{},"输":{"docs":{},"出":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}},"我":{"docs":{},"们":{"docs":{},"以":{"docs":{},"简":{"docs":{},"洁":{"docs":{},"、":{"docs":{},"高":{"docs":{},"效":{"docs":{},"、":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"为":{"docs":{},"核":{"docs":{},"心":{"docs":{},",":{"docs":{},"用":{"docs":{},"比":{"docs":{},"较":{"docs":{},"简":{"docs":{},"洁":{"docs":{},"且":{"docs":{},"高":{"docs":{},"效":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"去":{"docs":{},"实":{"docs":{},"现":{"docs":{},"一":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"去":{"docs":{},"掉":{"docs":{},"一":{"docs":{},"些":{"docs":{},"复":{"docs":{},"杂":{"docs":{},",":{"docs":{},"冗":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"化":{"docs":{},"繁":{"docs":{},"为":{"docs":{},"简":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"采":{"docs":{},"用":{"docs":{},"的":{"docs":{},"是":{"docs":{},"世":{"docs":{},"界":{"docs":{},"上":{"docs":{},"最":{"docs":{},"流":{"docs":{},"行":{"docs":{},"的":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"机":{"docs":{},",":{"docs":{},"各":{"docs":{},"种":{"docs":{},"平":{"docs":{},"台":{"docs":{},"都":{"docs":{},"有":{"docs":{},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"刚":{"docs":{},"好":{"docs":{},"有":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"版":{"docs":{},"本":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"管":{"docs":{},"理":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"就":{"docs":{},"是":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"是":{"docs":{},"除":{"docs":{},"了":{"docs":{},"保":{"docs":{},"留":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"占":{"docs":{},"用":{"docs":{},"以":{"docs":{},"外":{"docs":{},"的":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"存":{"docs":{},"就":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"进":{"docs":{},"行":{"docs":{},"静":{"docs":{},"态":{"docs":{},"/":{"docs":{},"动":{"docs":{},"态":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"基":{"docs":{},"于":{"docs":{},"缓":{"docs":{},"存":{"docs":{},"的":{"docs":{},"链":{"docs":{},"表":{"docs":{},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{},"堆":{"docs":{},",":{"docs":{},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},"的":{"docs":{},"原":{"docs":{},"理":{"docs":{},"是":{"docs":{},",":{"docs":{},"在":{"docs":{},"释":{"docs":{},"放":{"docs":{},"一":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"放":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"链":{"docs":{},"表":{"docs":{},"上":{"docs":{},"面":{"docs":{},",":{"docs":{},"下":{"docs":{},"次":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"从":{"docs":{},"链":{"docs":{},"表":{"docs":{},"获":{"docs":{},"取":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"也":{"docs":{},"将":{"docs":{},"页":{"docs":{},"表":{"docs":{},"分":{"docs":{},"为":{"docs":{},"三":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},",":{"docs":{},"二":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},",":{"docs":{},"一":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"一":{"docs":{},"个":{"docs":{},"页":{"docs":{},"表":{"docs":{},"放":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"中":{"docs":{},",":{"docs":{},"并":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"号":{"docs":{},"来":{"docs":{},"描":{"docs":{},"述":{"docs":{},"它":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"首":{"docs":{},"先":{"docs":{},"会":{"docs":{},"记":{"docs":{},"录":{"docs":{},"装":{"docs":{},"载":{"docs":{},"「":{"docs":{},"当":{"docs":{},"前":{"docs":{},"所":{"docs":{},"用":{"docs":{},"的":{"docs":{},"三":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"」":{"docs":{},"的":{"docs":{},"页":{"docs":{},"号":{"docs":{},"到":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"或":{"docs":{},"者":{"docs":{},"提":{"docs":{},"交":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"描":{"docs":{},"述":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0136986301369863},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"支":{"docs":{},"持":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},"g":{"docs":{},"d":{"docs":{},"b":{"docs":{},"调":{"docs":{},"试":{"docs":{},"内":{"docs":{},"核":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}},"v":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}},"中":{"docs":{},"断":{"docs":{},"管":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"串":{"docs":{},"口":{"docs":{},"输":{"docs":{},"入":{"docs":{},"输":{"docs":{},"出":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"线":{"docs":{},"程":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"核":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"均":{"docs":{},"衡":{"docs":{},"负":{"docs":{},"载":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"进":{"docs":{},"程":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}},"配":{"docs":{},"置":{"docs":{},"日":{"docs":{},"志":{"docs":{},"输":{"docs":{},"出":{"docs":{},"时":{"docs":{},"间":{"docs":{},",":{"docs":{},"格":{"docs":{},"式":{"docs":{},",":{"docs":{},"名":{"docs":{},"称":{"docs":{},",":{"docs":{},"颜":{"docs":{},"色":{"docs":{},",":{"docs":{},"消":{"docs":{},"息":{"docs":{},"等":{"docs":{},"级":{"docs":{},"等":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}},"特":{"docs":{},"权":{"docs":{},"保":{"docs":{},"护":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"架":{"docs":{},"构":{"docs":{},"中":{"docs":{},",":{"docs":{},"都":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"模":{"docs":{},"式":{"docs":{},"切":{"docs":{},"换":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"。":{"docs":{},"至":{"docs":{},"少":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"两":{"docs":{},"个":{"docs":{},"特":{"docs":{},"权":{"docs":{},"级":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"用":{"docs":{},"于":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},",":{"docs":{},"特":{"docs":{},"权":{"docs":{},"更":{"docs":{},"高":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"。":{"docs":{},"另":{"docs":{},"外":{"docs":{},"一":{"docs":{},"个":{"docs":{},"用":{"docs":{},"于":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"档":{"docs":{},"版":{"docs":{},"本":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},"框":{"docs":{},"架":{"docs":{},"以":{"docs":{},"及":{"docs":{},"各":{"docs":{},"种":{"docs":{},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"支":{"docs":{},"持":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}},":":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{},"e":{"docs":{},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},".":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"s":{"docs":{},"b":{"docs":{},"i":{"docs":{},"_":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"/":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"/":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"_":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"/":{"docs":{},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"名":{"docs":{},"称":{"docs":{},"也":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"首":{"docs":{},"字":{"docs":{},"母":{"docs":{},"大":{"docs":{},"写":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"缩":{"docs":{},"写":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"全":{"docs":{},"部":{"docs":{},"都":{"docs":{},"大":{"docs":{},"写":{"docs":{},"。":{"docs":{},"文":{"docs":{},"件":{"docs":{},"命":{"docs":{},"名":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"不":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"通":{"docs":{},"用":{"docs":{},"化":{"docs":{},"、":{"docs":{},"使":{"docs":{},"用":{"docs":{},"频":{"docs":{},"率":{"docs":{},"高":{"docs":{},"的":{"docs":{},"名":{"docs":{},"称":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{},"c":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"分":{"docs":{},"时":{"docs":{},"多":{"docs":{},"进":{"docs":{},"程":{"docs":{},"/":{"docs":{},"多":{"docs":{},"线":{"docs":{},"程":{"docs":{},"(":{"docs":{},"也":{"docs":{},"支":{"docs":{},"持":{"docs":{},"实":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},")":{"docs":{},",":{"docs":{},"支":{"docs":{},"持":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"为":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"机":{"docs":{},"制":{"docs":{},"。":{"docs":{},"在":{"docs":{},"开":{"docs":{},"启":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"该":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"中":{"docs":{},"断":{"docs":{},"工":{"docs":{},"作":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"设":{"docs":{},"定":{"docs":{},"的":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"能":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"映":{"docs":{},"射":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"并":{"docs":{},"映":{"docs":{},"射":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"需":{"docs":{},"的":{"docs":{},",":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"算":{"docs":{},"法":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}}}}}}}}}}}},"分":{"docs":{},"配":{"docs":{},"/":{"docs":{},"释":{"docs":{},"放":{"docs":{},"管":{"docs":{},"理":{"docs":{},"之":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"算":{"docs":{},"法":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},")":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}},"页":{"docs":{},"号":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"基":{"docs":{},"址":{"docs":{},"(":{"docs":{},"即":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"号":{"docs":{},"左":{"docs":{},"移":{"1":{"2":{"docs":{},"位":{"docs":{},")":{"docs":{},"加":{"docs":{},"上":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"的":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"初":{"docs":{},"期":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"运":{"docs":{},"行":{"docs":{},"在":{"docs":{},"一":{"docs":{},"些":{"docs":{},"高":{"docs":{},"性":{"docs":{},"能":{"docs":{},"的":{"docs":{},"嵌":{"docs":{},"入":{"docs":{},"式":{"docs":{},"设":{"docs":{},"备":{"docs":{},"上":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"手":{"docs":{},"机":{"docs":{},"终":{"docs":{},"端":{"docs":{},",":{"docs":{},"游":{"docs":{},"戏":{"docs":{},"掌":{"docs":{},"机":{"docs":{},"等":{"docs":{},"。":{"docs":{},"后":{"docs":{},"期":{"docs":{},"目":{"docs":{},"标":{"docs":{},"是":{"docs":{},"能":{"docs":{},"够":{"docs":{},"作":{"docs":{},"为":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"甚":{"docs":{},"至":{"docs":{},"是":{"docs":{},"桌":{"docs":{},"面":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"现":{"docs":{},"代":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"它":{"docs":{},"和":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}},"任":{"docs":{},"务":{"docs":{},"被":{"docs":{},"唤":{"docs":{},"醒":{"docs":{},",":{"docs":{},"就":{"docs":{},"得":{"docs":{},"立":{"docs":{},"即":{"docs":{},"切":{"docs":{},"换":{"docs":{},"过":{"docs":{},"去":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"去":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"来":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"也":{"docs":{},"能":{"docs":{},"够":{"docs":{},"正":{"docs":{},"常":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"新":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"访":{"docs":{},"问":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"出":{"docs":{},"错":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"进":{"docs":{},"程":{"docs":{},"都":{"docs":{},"会":{"docs":{},"把":{"docs":{},"部":{"docs":{},"分":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{},"范":{"docs":{},"围":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},",":{"docs":{},"只":{"docs":{},"要":{"docs":{},"在":{"docs":{},"访":{"docs":{},"问":{"docs":{},"前":{"docs":{},"映":{"docs":{},"射":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}},"好":{"docs":{},"处":{"docs":{},"是":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"串":{"docs":{},"口":{"docs":{},"的":{"docs":{},"输":{"docs":{},"入":{"docs":{},"输":{"docs":{},"出":{"docs":{},",":{"docs":{},"很":{"docs":{},"方":{"docs":{},"便":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"不":{"docs":{},"用":{"docs":{},"自":{"docs":{},"己":{"docs":{},"从":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"封":{"docs":{},"装":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"设":{"docs":{},"置":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},",":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},"[":{"1":{"docs":{},"]":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"2":{"docs":{},"]":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}}}}}}}}}},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"存":{"docs":{},"放":{"docs":{},"了":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},",":{"docs":{},"最":{"docs":{},"开":{"docs":{},"始":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"跑":{"docs":{},"进":{"docs":{},"程":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"类":{"docs":{},"别":{"docs":{},",":{"docs":{},"只":{"docs":{},"允":{"docs":{},"许":{"docs":{},"使":{"docs":{},"用":{"docs":{},"下":{"docs":{},"面":{"7":{"docs":{},"个":{"docs":{},"标":{"docs":{},"识":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"docs":{}}}}}}}}}}},"详":{"docs":{},"细":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"分":{"docs":{},"成":{"docs":{},"多":{"docs":{},"行":{"docs":{},"。":{"docs":{},"下":{"docs":{},"面":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"范":{"docs":{},"例":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}},"录":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0136986301369863}},"下":{"docs":{},"面":{"docs":{},",":{"docs":{},"新":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"支":{"docs":{},"持":{"docs":{},"这":{"docs":{},"些":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}},"名":{"docs":{},"称":{"docs":{},"采":{"docs":{},"用":{"docs":{},"首":{"docs":{},"字":{"docs":{},"母":{"docs":{},"大":{"docs":{},"写":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},",":{"docs":{},"子":{"docs":{},"目":{"docs":{},"录":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{},"属":{"docs":{},"于":{"docs":{},"父":{"docs":{},"目":{"docs":{},"录":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"相":{"docs":{},"关":{"docs":{},"性":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"k":{"docs":{},"/":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"前":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"是":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"的":{"docs":{},"的":{"docs":{},"简":{"docs":{},"短":{"docs":{},"描":{"docs":{},"述":{"docs":{},",":{"docs":{},"不":{"docs":{},"超":{"docs":{},"过":{"5":{"0":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}},"简":{"docs":{},"介":{"docs":{"./":{"ref":"./","tf":5.01010101010101}}}},"线":{"docs":{},"程":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}},"管":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.010101010101010102},"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":10.003424657534246},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"创":{"docs":{},"建":{"docs":{},"好":{"docs":{},"后":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"启":{"docs":{},"动":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"主":{"docs":{},"动":{"docs":{},"退":{"docs":{},"出":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"具":{"docs":{},"有":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"的":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"高":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"先":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"低":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"后":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"在":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"让":{"docs":{},"出":{"docs":{},"当":{"docs":{},"前":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"不":{"docs":{},"允":{"docs":{},"许":{"docs":{},",":{"docs":{},"希":{"docs":{},"望":{"docs":{},"把":{"docs":{},"运":{"docs":{},"行":{"docs":{},"机":{"docs":{},"会":{"docs":{},"让":{"docs":{},"给":{"docs":{},"其":{"docs":{},"它":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"做":{"docs":{},"一":{"docs":{},"个":{"docs":{},"\"":{"docs":{},"好":{"docs":{},"人":{"docs":{},"\"":{"docs":{},",":{"docs":{},"此":{"docs":{},"时":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"创":{"docs":{},"建":{"docs":{},"是":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"等":{"docs":{},"都":{"docs":{},"有":{"docs":{},"自":{"docs":{},"己":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"任":{"docs":{},"务":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"来":{"docs":{},"保":{"docs":{},"证":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"至":{"docs":{},"少":{"docs":{},"能":{"docs":{},"够":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"栈":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"支":{"docs":{},"持":{"docs":{},"c":{"docs":{},"p":{"docs":{},"i":{"docs":{},"o":{"docs":{},"只":{"docs":{},"读":{"docs":{},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"实":{"docs":{},"现":{"docs":{"./":{"ref":"./","tf":0.010101010101010102}}}}}}}}}}}}}}}}}}}}}}},"平":{"docs":{},"台":{"docs":{},"运":{"docs":{},"行":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":10}}}},"中":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"布":{"docs":{},"局":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}},"机":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"地":{"docs":{},"址":{"docs":{},"在":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"指":{"docs":{},"定":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"是":{"docs":{},"传":{"docs":{},"入":{"docs":{},"一":{"docs":{},"个":{"docs":{},"想":{"docs":{},"要":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"为":{"0":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"会":{"docs":{},"自":{"docs":{},"动":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"和":{"docs":{},"访":{"docs":{},"问":{"docs":{},",":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},",":{"docs":{},"映":{"docs":{},"射":{"docs":{},"和":{"docs":{},"解":{"docs":{},"除":{"docs":{},"页":{"docs":{},"面":{"docs":{},"映":{"docs":{},"射":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}},"化":{"docs":{},"模":{"docs":{},"式":{"docs":{},"用":{"docs":{},"于":{"docs":{},"使":{"docs":{},"用":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"化":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},",":{"docs":{},"目":{"docs":{},"前":{"docs":{},"还":{"docs":{},"在":{"docs":{},"开":{"docs":{},"发":{"docs":{},"阶":{"docs":{},"段":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}},"#":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.08040201005025126},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.08791208791208792},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.11764705882352941},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.07563025210084033},"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.07692307692307693},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.02054794520547945},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.06779661016949153},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.007874015748031496},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}}}},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"e":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}},"这":{"docs":{},"种":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"开":{"docs":{},"头":{"docs":{},"和":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"后":{"docs":{},"面":{"docs":{},"写":{"docs":{},"上":{"docs":{},"注":{"docs":{},"释":{"docs":{},"来":{"docs":{},"帮":{"docs":{},"助":{"docs":{},"开":{"docs":{},"发":{"docs":{},"这":{"docs":{},"快":{"docs":{},"速":{"docs":{},"找":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"宏":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.018473652331920047}}}}}}}}},"&":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0036341611144760752}},"&":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"[":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"_":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"(":{"0":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},")":{"docs":{},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},"安":{"docs":{},"装":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},"安":{"docs":{},"装":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"h":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"y":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}},"t":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"*":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}}}}}},"v":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"x":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}},"o":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"p":{"docs":{},"i":{"docs":{},"o":{"docs":{},"a":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}},"x":{"8":{"6":{"docs":{},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"docs":{}},"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},")":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},")":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"调":{"docs":{},"用":{"docs":{},")":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}},"平":{"docs":{},"台":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}},"二":{"docs":{},"阶":{"docs":{},"段":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"主":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"什":{"docs":{},"么":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},":":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}}}}}}}},"调":{"docs":{},"度":{"docs":{},"第":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},")":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"_":{"docs":{},"n":{"docs":{},"r":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"_":{"docs":{},"h":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},"&":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"0":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"1":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"2":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"3":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"_":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"_":{"docs":{},"s":{"docs":{},"a":{"docs":{},"t":{"docs":{},"p":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},"t":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},")":{"docs":{},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"8":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},"(":{"docs":{},"(":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}},"!":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"*":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}},"\"":{"docs":{},"r":{"docs":{},"d":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"a":{"0":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"1":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"n":{"docs":{},"o":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}},"s":{"docs":{},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"_":{"docs":{},"p":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0027256208358570565}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0027256208358570565}}}}},"p":{"docs":{},"n":{"2":{"docs":{},",":{"docs":{},"v":{"docs":{},"p":{"docs":{},"n":{"1":{"docs":{},",":{"docs":{},"v":{"docs":{},"p":{"docs":{},"n":{"0":{"docs":{},",":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}},"docs":{}}}},"d":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"r":{"docs":{},"v":{"6":{"4":{"docs":{},"g":{"docs":{},"c":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"docs":{}},"docs":{}}},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376}},"c":{"docs":{},"s":{"docs":{},"r":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"+":{"docs":{},"a":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}},"d":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{},"p":{"docs":{},"_":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"_":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"_":{"docs":{},"k":{"2":{"1":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"0":{"docs":{},"_":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"_":{"docs":{},"s":{"docs":{},"b":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0036341611144760752}}}},"n":{"docs":{},"t":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"d":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"s":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}},")":{"docs":{},";":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}},"r":{"docs":{},"e":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"a":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"\"":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"2":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"3":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}}}}}}}},"w":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}},"p":{"docs":{},"y":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}},"d":{"docs":{},"e":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},",":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}},"i":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.049586776859504134}}}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.04225352112676056}}}},"s":{"docs":{},"e":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.014705882352941176}}}},"l":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.01652892561983471}}}},"r":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.015544041450777202},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.02727272727272727}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"p":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"0":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"1":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"3":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}}}}}}}}}},"。":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}},",":{"docs":{},"而":{"docs":{},"之":{"docs":{},"前":{"docs":{},"的":{"docs":{},"都":{"docs":{},"是":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}}}}},"s":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"w":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"m":{"docs":{},"d":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}},"语":{"docs":{},"言":{"docs":{},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"为":{"docs":{},"了":{"docs":{},"避":{"docs":{},"免":{"docs":{},"多":{"docs":{},"次":{"docs":{},"重":{"docs":{},"复":{"docs":{},"包":{"docs":{},"含":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"定":{"docs":{},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"符":{"docs":{},"号":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"形":{"docs":{},"式":{"docs":{},"请":{"docs":{},"采":{"docs":{},"用":{"docs":{},"如":{"docs":{},"下":{"docs":{},"的":{"docs":{},"风":{"docs":{},"格":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"d":{"docs":{},"b":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}},"调":{"docs":{},"试":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"e":{"docs":{},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}}}}}}}},"t":{"docs":{},"_":{"docs":{},"p":{"docs":{},"f":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}},"r":{"docs":{},"u":{"docs":{},"b":{"2":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}},"引":{"docs":{},"导":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}},"docs":{}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}},"c":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.08108108108108109}},"\\":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"u":{"8":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},"docs":{},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"docs":{},"/":{"docs":{},"k":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"s":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.01652892561983471}},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},")":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}},"d":{"docs":{},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"i":{"docs":{},"z":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.02849740932642487}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},".":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"=":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"/":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"u":{"docs":{},"s":{"docs":{},"b":{"0":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"docs":{}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"3":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"docs":{}}}}},"是":{"docs":{},"串":{"docs":{},"口":{"docs":{},"设":{"docs":{},"备":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"设":{"docs":{},"备":{"docs":{},"列":{"docs":{},"表":{"docs":{},"查":{"docs":{},"看":{"docs":{},"是":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"设":{"docs":{},"备":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"是":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"/":{"docs":{},"t":{"docs":{},"t":{"docs":{},"y":{"docs":{},"u":{"docs":{},"s":{"docs":{},"b":{"0":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"不":{"docs":{},"写":{"docs":{},"。":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"查":{"docs":{},"看":{"docs":{},",":{"docs":{},"k":{"2":{"1":{"0":{"docs":{},"的":{"docs":{},"设":{"docs":{},"备":{"docs":{},"是":{"docs":{},"哪":{"docs":{},"个":{"docs":{},"串":{"docs":{},"口":{"docs":{},"。":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"y":{"docs":{},"u":{"docs":{},"m":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.01507537688442211}}}},"y":{"docs":{},"i":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"解":{"docs":{},"压":{"docs":{},"出":{"docs":{},"来":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"将":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"配":{"docs":{},"置":{"docs":{},"到":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"中":{"docs":{},"(":{"docs":{},"最":{"docs":{},"好":{"docs":{},"是":{"docs":{},"配":{"docs":{},"置":{"docs":{},"到":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"的":{"docs":{},"最":{"docs":{},"前":{"docs":{},"面":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"和":{"docs":{},"其":{"docs":{},"它":{"docs":{},"系":{"docs":{},"统":{"docs":{},"已":{"docs":{},"经":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"冲":{"docs":{},"突":{"docs":{},")":{"docs":{},",":{"docs":{},"解":{"docs":{},"压":{"docs":{},"后":{"docs":{},"您":{"docs":{},"将":{"docs":{},"会":{"docs":{},"有":{"docs":{},":":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"链":{"docs":{},"接":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},".":{"docs":{},"w":{"docs":{},"e":{"docs":{},"i":{"docs":{},"l":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"z":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"/":{"docs":{},"w":{"6":{"4":{"docs":{},"/":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"到":{"docs":{},"本":{"docs":{},"地":{"docs":{},"后":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"手":{"docs":{},"动":{"docs":{},"解":{"docs":{},"压":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"面":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"对":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"的":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"路":{"docs":{},"径":{"docs":{},"配":{"docs":{},"置":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"。":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"了":{"docs":{},"方":{"docs":{},"便":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"将":{"docs":{},"其":{"docs":{},"他":{"docs":{},"比":{"docs":{},"较":{"docs":{},"小":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"已":{"docs":{},"经":{"docs":{},"打":{"docs":{},"包":{"docs":{},"在":{"docs":{},"一":{"docs":{},"个":{"docs":{},"工":{"docs":{},"具":{"docs":{},"包":{"docs":{},"里":{"docs":{},"面":{"docs":{},"了":{"docs":{},",":{"docs":{},"下":{"docs":{},"载":{"docs":{},"解":{"docs":{},"压":{"docs":{},"后":{"docs":{},",":{"docs":{},"手":{"docs":{},"动":{"docs":{},"添":{"docs":{},"加":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"到":{"docs":{},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"选":{"docs":{},"中":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"做":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"(":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},")":{"docs":{},",":{"docs":{},"会":{"docs":{},"为":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"平":{"docs":{},"台":{"docs":{},"下":{"docs":{},"载":{"docs":{},"平":{"docs":{},"台":{"docs":{},"特":{"docs":{},"别":{"docs":{},"需":{"docs":{},"要":{"docs":{},"的":{"docs":{},"工":{"docs":{},"具":{"docs":{},"到":{"docs":{},"平":{"docs":{},"台":{"docs":{},"中":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"假":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"就":{"docs":{},"会":{"docs":{},"出":{"docs":{},"错":{"docs":{},",":{"docs":{},"存":{"docs":{},"在":{"docs":{},"就":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},",":{"docs":{},"里":{"docs":{},"面":{"docs":{},"存":{"docs":{},"放":{"docs":{},"了":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"某":{"docs":{},"个":{"docs":{},"等":{"docs":{},"级":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"就":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{},"空":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"真":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"会":{"docs":{},"在":{"docs":{},"遍":{"docs":{},"历":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"分":{"docs":{},"配":{"docs":{},"不":{"docs":{},"存":{"docs":{},"在":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"如":{"docs":{},"果":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"没":{"docs":{},"有":{"docs":{},"映":{"docs":{},"射":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"一":{"docs":{},"级":{"docs":{},"一":{"docs":{},"级":{"docs":{},"地":{"docs":{},"分":{"docs":{},"配":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"仅":{"docs":{},"仅":{"docs":{},"编":{"docs":{},"译":{"docs":{},"源":{"docs":{},"码":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}},"使":{"docs":{},"用":{"docs":{},"菜":{"docs":{},"单":{"docs":{},"配":{"docs":{},"置":{"docs":{},"进":{"docs":{},"行":{"docs":{},"个":{"docs":{},"性":{"docs":{},"化":{"docs":{},"剪":{"docs":{},"裁":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"打":{"docs":{},"开":{"docs":{},"或":{"docs":{},"者":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"某":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"设":{"docs":{},"置":{"docs":{},"一":{"docs":{},"些":{"docs":{},"变":{"docs":{},"量":{"docs":{},"等":{"docs":{},"。":{"docs":{},"配":{"docs":{},"置":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"按":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"键":{"docs":{},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"退":{"docs":{},"出":{"docs":{},"后":{"docs":{},"会":{"docs":{},"生":{"docs":{},"成":{"docs":{},"新":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"就":{"docs":{},"非":{"docs":{},"常":{"docs":{},"方":{"docs":{},"便":{"docs":{},"移":{"docs":{},"植":{"docs":{},"到":{"docs":{},"其":{"docs":{},"它":{"docs":{},"架":{"docs":{},"构":{"docs":{},"上":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"写":{"docs":{},"作":{"docs":{},"为":{"docs":{},"名":{"docs":{},"字":{"docs":{},",":{"docs":{},"单":{"docs":{},"词":{"docs":{},"间":{"docs":{},"使":{"docs":{},"用":{"docs":{},"\"":{"docs":{},"_":{"docs":{},"\"":{"docs":{},"隔":{"docs":{},"开":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}},"第":{"docs":{},"一":{"docs":{},"人":{"docs":{},"称":{"docs":{},"现":{"docs":{},"在":{"docs":{},"时":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},"或":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"方":{"docs":{},"法":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}},"加":{"docs":{},"载":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"会":{"docs":{},"读":{"docs":{},"取":{"docs":{},"选":{"docs":{},"中":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"默":{"docs":{},"认":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"u":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"配":{"docs":{},"置":{"docs":{},"到":{"docs":{},"工":{"docs":{},"作":{"docs":{},"区":{"docs":{},"中":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"速":{"docs":{},"器":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"快":{"docs":{},"速":{"docs":{},"体":{"docs":{},"验":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}},"入":{"docs":{},"门":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"推":{"docs":{},"荐":{"docs":{},"的":{"docs":{},"一":{"docs":{},"个":{"docs":{},"不":{"docs":{},"错":{"docs":{},"的":{"docs":{},"终":{"docs":{},"端":{"docs":{},"(":{"docs":{},"非":{"docs":{},"必":{"docs":{},"须":{"docs":{},")":{"docs":{},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},"安":{"docs":{},"装":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"文":{"docs":{},"档":{"docs":{},"将":{"docs":{},"带":{"docs":{},"您":{"docs":{},"从":{"docs":{},"入":{"docs":{},"门":{"docs":{},"到":{"docs":{},"劝":{"docs":{},"退":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}},"存":{"docs":{},"放":{"docs":{},"的":{"docs":{},"是":{"docs":{},"用":{"docs":{},"户":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"编":{"docs":{},"程":{"docs":{},"接":{"docs":{},"口":{"docs":{},"的":{"docs":{},"设":{"docs":{},"计":{"docs":{},"说":{"docs":{},"明":{"docs":{},"。":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"的":{"docs":{},"下":{"docs":{},"载":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"搭":{"docs":{},"建":{"docs":{},"编":{"docs":{},"译":{"docs":{},"环":{"docs":{},"境":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"下":{"docs":{},"载":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{},"后":{"docs":{},"再":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"。":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"关":{"docs":{},"于":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"程":{"docs":{},"风":{"docs":{},"格":{"docs":{},"的":{"docs":{},"描":{"docs":{},"述":{"docs":{},"。":{"docs":{},"开":{"docs":{},"发":{"docs":{},"者":{"docs":{},"必":{"docs":{},"须":{"docs":{},"遵":{"docs":{},"守":{"docs":{},"本":{"docs":{},"文":{"docs":{},"档":{"docs":{},"规":{"docs":{},"范":{"docs":{},"进":{"docs":{},"行":{"docs":{},"开":{"docs":{},"发":{"docs":{},"。":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"系":{"docs":{},"统":{"docs":{},"内":{"docs":{},"核":{"docs":{},"使":{"docs":{},"用":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"作":{"docs":{},"为":{"docs":{},"主":{"docs":{},"要":{"docs":{},"开":{"docs":{},"发":{"docs":{},"语":{"docs":{},"言":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"以":{"docs":{},"下":{"docs":{},"规":{"docs":{},"则":{"docs":{},"仅":{"docs":{},"仅":{"docs":{},"适":{"docs":{},"用":{"docs":{},"于":{"docs":{},"c":{"docs":{},"语":{"docs":{},"言":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"欢":{"docs":{},"迎":{"docs":{},"来":{"docs":{},"到":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"内":{"docs":{},"核":{"docs":{},"!":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"跨":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"简":{"docs":{},"洁":{"docs":{},"的":{"docs":{},"高":{"docs":{},"性":{"docs":{},"能":{"docs":{},",":{"docs":{},"高":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"性":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"内":{"docs":{},"核":{"docs":{},",":{"docs":{},"它":{"docs":{},"将":{"docs":{},"应":{"docs":{},"用":{"docs":{},"于":{"docs":{},"桌":{"docs":{},"面":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},",":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},"以":{"docs":{},"及":{"docs":{},"移":{"docs":{},"动":{"docs":{},"终":{"docs":{},"端":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"领":{"docs":{},"域":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"步":{"docs":{},"骤":{"docs":{},"拆":{"docs":{},"解":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"第":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"一":{"docs":{},"次":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},",":{"docs":{},"为":{"docs":{},"平":{"docs":{},"台":{"docs":{},"做":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"一":{"docs":{},"下":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"字":{"docs":{},"母":{"docs":{},"小":{"docs":{},"写":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"编":{"docs":{},"译":{"docs":{},"器":{"docs":{},"工":{"docs":{},"具":{"docs":{},"链":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"源":{"docs":{},"码":{"docs":{},"并":{"docs":{},"运":{"docs":{},"行":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"使":{"docs":{},"用":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"机":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"按":{"docs":{},"下":{"docs":{},"小":{"docs":{},"写":{"docs":{},"的":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{},"+":{"docs":{},"x":{"docs":{},"后":{"docs":{},"再":{"docs":{},"按":{"docs":{},"下":{"docs":{},"a":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"退":{"docs":{},"出":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"并":{"docs":{},"运":{"docs":{},"行":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}},"程":{"docs":{},"风":{"docs":{},"格":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},"设":{"docs":{},"置":{"docs":{},"临":{"docs":{},"时":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"在":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"有":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"来":{"docs":{},"设":{"docs":{},"置":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"运":{"docs":{},"行":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"使":{"docs":{},"用":{"docs":{},"b":{"docs":{},"a":{"docs":{},"t":{"docs":{},",":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{},"使":{"docs":{},"用":{"docs":{},"s":{"docs":{},"h":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}},"了":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"到":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"中":{"docs":{},",":{"docs":{},"当":{"docs":{},"访":{"docs":{},"问":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"设":{"docs":{},"置":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"进":{"docs":{},"行":{"docs":{},"地":{"docs":{},"址":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"页":{"docs":{},"表":{"docs":{},"基":{"docs":{},"地":{"docs":{},"址":{"docs":{},"写":{"docs":{},"入":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},"的":{"docs":{},"值":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"备":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"调":{"docs":{},"试":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"配":{"docs":{},"置":{"docs":{},"信":{"docs":{},"息":{"docs":{},"和":{"docs":{},"文":{"docs":{},"件":{"docs":{},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"平":{"docs":{},"台":{"docs":{},"中":{"docs":{},",":{"docs":{},"使":{"docs":{},"得":{"docs":{},"配":{"docs":{},"置":{"docs":{},"永":{"docs":{},"久":{"docs":{},"生":{"docs":{},"效":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"度":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},"和":{"docs":{},"s":{"docs":{},"m":{"docs":{},"p":{"docs":{},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"同":{"docs":{},"步":{"docs":{},"机":{"docs":{},"制":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}},"管":{"docs":{},"理":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":10.090909090909092}}}}},"用":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"代":{"docs":{},"码":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"输":{"docs":{},"入":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}}}},"进":{"docs":{},"入":{"docs":{},"到":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},",":{"docs":{},"在":{"docs":{},"目":{"docs":{},"录":{"docs":{},"中":{"docs":{},"打":{"docs":{},"开":{"docs":{},"一":{"docs":{},"个":{"docs":{},"终":{"docs":{},"端":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"源":{"docs":{},"码":{"docs":{},",":{"docs":{},"打":{"docs":{},"开":{"docs":{},"终":{"docs":{},"端":{"docs":{},"。":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}},"单":{"docs":{},"元":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"程":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":10.012658227848101},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},",":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"相":{"docs":{},"关":{"docs":{},"内":{"docs":{},"容":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}},"相":{"docs":{},"关":{"docs":{},"操":{"docs":{},"作":{"docs":{},"是":{"docs":{},"实":{"docs":{},"现":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"必":{"docs":{},"要":{"docs":{},"条":{"docs":{},"件":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"间":{"docs":{},"通":{"docs":{},"信":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"基":{"docs":{},"于":{"docs":{},"线":{"docs":{},"性":{"docs":{},"链":{"docs":{},"表":{"docs":{},"实":{"docs":{},"现":{"docs":{"programing-manual/mm/mm.html":{"ref":"programing-manual/mm/mm.html","tf":0.1111111111111111}}}}}}}}}}},"之":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"空":{"docs":{},"间":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}},"在":{"docs":{},"启":{"docs":{},"动":{"docs":{},"前":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"载":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"、":{"docs":{},"数":{"docs":{},"据":{"docs":{},"到":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"才":{"docs":{},"开":{"docs":{},"始":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"(":{"docs":{},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},"就":{"docs":{},"是":{"docs":{},"用":{"docs":{},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"不":{"docs":{},"同":{"docs":{},"地":{"docs":{},"址":{"docs":{},"会":{"docs":{},"有":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"用":{"docs":{},"途":{"docs":{},",":{"docs":{},"于":{"docs":{},"是":{"docs":{},"会":{"docs":{},"有":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"节":{"docs":{},"点":{"docs":{},"(":{"docs":{},"v":{"docs":{},"m":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"管":{"docs":{},"理":{"docs":{},"使":{"docs":{},"用":{"docs":{},"链":{"docs":{},"表":{"docs":{},"来":{"docs":{},"维":{"docs":{},"护":{"docs":{},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"节":{"docs":{},"点":{"docs":{},",":{"docs":{},"节":{"docs":{},"点":{"docs":{},"是":{"docs":{},"根":{"docs":{},"据":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"值":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"线":{"docs":{},"性":{"docs":{},"排":{"docs":{},"序":{"docs":{},",":{"docs":{},"低":{"docs":{},"地":{"docs":{},"址":{"docs":{},"在":{"docs":{},"链":{"docs":{},"表":{"docs":{},"的":{"docs":{},"开":{"docs":{},"头":{"docs":{},",":{"docs":{},"高":{"docs":{},"地":{"docs":{},"址":{"docs":{},"在":{"docs":{},"链":{"docs":{},"表":{"docs":{},"的":{"docs":{},"结":{"docs":{},"尾":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"执":{"docs":{},"行":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"程":{"docs":{},"序":{"docs":{},"运":{"docs":{},"行":{"docs":{},"出":{"docs":{},"故":{"docs":{},"障":{"docs":{},"也":{"docs":{},"不":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{},"系":{"docs":{},"统":{"docs":{},"出":{"docs":{},"现":{"docs":{},"故":{"docs":{},"障":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},"可":{"docs":{},"以":{"docs":{},"把":{"docs":{},"一":{"docs":{},"些":{"docs":{},"服":{"docs":{},"务":{"docs":{},"程":{"docs":{},"序":{"docs":{},"放":{"docs":{},"到":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"作":{"docs":{},"为":{"docs":{},"进":{"docs":{},"程":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"当":{"docs":{},"服":{"docs":{},"务":{"docs":{},"出":{"docs":{},"错":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"不":{"docs":{},"会":{"docs":{},"导":{"docs":{},"致":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"结":{"docs":{},"束":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"退":{"docs":{},"出":{"docs":{},",":{"docs":{},"并":{"docs":{},"传":{"docs":{},"入":{"docs":{},"退":{"docs":{},"出":{"docs":{},"时":{"docs":{},"候":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"具":{"docs":{},"有":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"线":{"docs":{},"性":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"集":{"docs":{},"合":{"docs":{},",":{"docs":{},"是":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"容":{"docs":{},"器":{"docs":{},"。":{"docs":{},"在":{"docs":{},"现":{"docs":{},"代":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},",":{"docs":{},"硬":{"docs":{},"件":{"docs":{},"的":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"于":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}},"行":{"docs":{},"独":{"docs":{},"立":{"docs":{},"的":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"于":{"docs":{},"是":{"docs":{},"进":{"docs":{},"程":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"就":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"服":{"docs":{},"务":{"docs":{},"的":{"docs":{},"分":{"docs":{},"发":{"docs":{},",":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"内":{"docs":{},"核":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}},"菜":{"docs":{},"单":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"选":{"docs":{},"择":{"docs":{},"你":{"docs":{},"想":{"docs":{},"要":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"或":{"docs":{},"者":{"docs":{},"进":{"docs":{},"行":{"docs":{},"某":{"docs":{},"些":{"docs":{},"功":{"docs":{},"能":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"。":{"docs":{},"配":{"docs":{},"置":{"docs":{},"完":{"docs":{},"后":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"菜":{"docs":{},"单":{"docs":{},"的":{"docs":{},"提":{"docs":{},"示":{"docs":{},"进":{"docs":{},"行":{"docs":{},"退":{"docs":{},"出":{"docs":{},"或":{"docs":{},"者":{"docs":{},"保":{"docs":{},"存":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"退":{"docs":{},"出":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.010050251256281407}},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}}}}}},"k":{"2":{"1":{"0":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"docs":{}},"docs":{}},"docs":{}},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"进":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"一":{"docs":{},"个":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}},"单":{"docs":{},"元":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}},"选":{"docs":{},"择":{"docs":{},"最":{"docs":{},"新":{"docs":{},"版":{"docs":{},"本":{"docs":{},"下":{"docs":{},"载":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},",":{"docs":{},"安":{"docs":{},"装":{"docs":{},"到":{"docs":{},"一":{"docs":{},"个":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"再":{"docs":{},"把":{"docs":{},"路":{"docs":{},"径":{"docs":{},"配":{"docs":{},"置":{"docs":{},"到":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"系":{"docs":{},"统":{"docs":{},"环":{"docs":{},"境":{"docs":{},"变":{"docs":{},"量":{"docs":{},"中":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"配":{"docs":{},"置":{"docs":{},"环":{"docs":{},"境":{"docs":{},"并":{"docs":{},"运":{"docs":{},"行":{"docs":{"tutorial/quick-start.html":{"ref":"tutorial/quick-start.html","tf":0.005025125628140704}}}}},"变":{"docs":{},"量":{"docs":{},"时":{"docs":{},"的":{"docs":{},"路":{"docs":{},"径":{"docs":{},":":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}}}}}}},"+":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.136986301369863},"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.021739130434782608},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0036341611144760752},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"=":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376}}}},"/":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.0136986301369863},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563}},"*":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.07191780821917808},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.009691096305269533},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.029411764705882353},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.05}},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.005451241671714113},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}},"/":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.005451241671714113},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"f":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}},";":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},".":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"_":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}},"l":{"docs":{},"f":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.08108108108108109}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"r":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"y":{"docs":{},"`":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"v":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"p":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}},"r":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}},"f":{"docs":{},"s":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.005451241671714113}}}}}},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.012953367875647668}},";":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}}},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}},"o":{"docs":{},"p":{"docs":{},"p":{"docs":{},"i":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"e":{"docs":{},"d":{"docs":{},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}},"t":{"1":{"2":{"docs":{},",":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}},"6":{"docs":{},",":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}},"docs":{}},"3":{"2":{"docs":{},",":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}},"docs":{}},"docs":{},"f":{"docs":{},"s":{"docs":{},",":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"i":{"docs":{},"x":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}},"e":{"docs":{},"d":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},":":{"docs":{},"修":{"docs":{},"补":{"docs":{},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"v":{"docs":{},"e":{"docs":{},"”":{"docs":{},")":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"基":{"docs":{},"于":{"docs":{},"精":{"docs":{},"简":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},")":{"docs":{},"原":{"docs":{},"则":{"docs":{},"的":{"docs":{},"开":{"docs":{},"源":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"架":{"docs":{},"构":{"docs":{},"(":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},")":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},".":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},")":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.01652892561983471}}}}}}},":":{"docs":{},"新":{"docs":{},"功":{"docs":{},"能":{"docs":{},"(":{"docs":{},"f":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},")":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"p":{"docs":{},"u":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}}}},"|":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.15753424657534246},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.015445184736523319}},"内":{"docs":{},"容":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"描":{"docs":{},"述":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"头":{"docs":{},"文":{"docs":{},"件":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}},"常":{"docs":{},"用":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"组":{"docs":{},"件":{"docs":{},",":{"docs":{},"小":{"docs":{},"工":{"docs":{},"具":{"docs":{},",":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"显":{"docs":{},"示":{"docs":{},"以":{"docs":{},"及":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"操":{"docs":{},"作":{"docs":{},"等":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}}}}}},"平":{"docs":{},"台":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"支":{"docs":{},"持":{"docs":{},",":{"docs":{},"存":{"docs":{},"放":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"p":{"docs":{},"c":{"docs":{},"平":{"docs":{},"台":{"docs":{},"或":{"docs":{},"者":{"docs":{},"一":{"docs":{},"个":{"docs":{},"开":{"docs":{},"发":{"docs":{},"板":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}}}}},"框":{"docs":{},"架":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"了":{"docs":{},"支":{"docs":{},"持":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"者":{"docs":{},"实":{"docs":{},"现":{"docs":{},")":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.075}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}},"整":{"docs":{},"体":{"docs":{},"框":{"docs":{},"架":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":10}}}}}},"时":{"docs":{},"间":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"时":{"docs":{},"钟":{"docs":{},"和":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}},"长":{"docs":{},"度":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"被":{"docs":{},"唤":{"docs":{},"醒":{"docs":{},",":{"docs":{},"继":{"docs":{},"续":{"docs":{},"往":{"docs":{},"后":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}},"管":{"docs":{},"理":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},",":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"架":{"docs":{},"构":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}},"相":{"docs":{},"关":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"x":{"8":{"6":{"docs":{},",":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"docs":{}},"docs":{}}}}}}},"中":{"docs":{},",":{"docs":{},"有":{"3":{"docs":{},"个":{"docs":{},"特":{"docs":{},"权":{"docs":{},"级":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}},"4":{"docs":{},"个":{"docs":{},"特":{"docs":{},"权":{"docs":{},"级":{"docs":{},"(":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"0":{"docs":{},",":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}},"docs":{}}}}}}}}}}},"docs":{}},"内":{"docs":{},"存":{"docs":{},"全":{"docs":{},"(":{"docs":{},"读":{"docs":{},"和":{"docs":{},"写":{"docs":{},")":{"docs":{},"屏":{"docs":{},"障":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}},"首":{"docs":{},"度":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}}},"框":{"docs":{},"架":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}},"测":{"docs":{},"试":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"测":{"docs":{},"试":{"docs":{},"框":{"docs":{},"架":{"docs":{},"和":{"docs":{},"测":{"docs":{},"试":{"docs":{},"代":{"docs":{},"码":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}},"用":{"docs":{},"到":{"docs":{},"的":{"docs":{},"x":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"和":{"docs":{},"k":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"等":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}},"于":{"docs":{},"分":{"docs":{},"发":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},",":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"架":{"docs":{},"构":{"docs":{},"传":{"docs":{},"参":{"docs":{},"数":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"会":{"docs":{},"有":{"docs":{},"区":{"docs":{},"别":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"需":{"docs":{},"要":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"进":{"docs":{},"程":{"docs":{},"切":{"docs":{},"换":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"切":{"docs":{},"换":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"创":{"docs":{},"建":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"退":{"docs":{},"出":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"释":{"docs":{},"放":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"进":{"docs":{},"程":{"docs":{},"从":{"docs":{},"内":{"docs":{},"核":{"docs":{},"跳":{"docs":{},"到":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}},"户":{"docs":{},"模":{"docs":{},"式":{"docs":{},"就":{"docs":{},"是":{"docs":{},"应":{"docs":{},"用":{"docs":{},"程":{"docs":{},"序":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"模":{"docs":{},"式":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"进":{"docs":{},"入":{"docs":{},"到":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}},"态":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"框":{"docs":{},"架":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"采":{"docs":{},"取":{"docs":{},"架":{"docs":{},"构":{"docs":{},"和":{"docs":{},"平":{"docs":{},"台":{"docs":{},"分":{"docs":{},"离":{"docs":{},"的":{"docs":{},"措":{"docs":{},"施":{"docs":{},",":{"docs":{},"其":{"docs":{},"原":{"docs":{},"因":{"docs":{},"在":{"docs":{},"于":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"架":{"docs":{},"构":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"平":{"docs":{},"台":{"docs":{},",":{"docs":{},"分":{"docs":{},"离":{"docs":{},"后":{"docs":{},"可":{"docs":{},"以":{"docs":{},"服":{"docs":{},"用":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"用":{"docs":{},"混":{"docs":{},"合":{"docs":{},"内":{"docs":{},"核":{"docs":{},"框":{"docs":{},"架":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"结":{"docs":{},"合":{"docs":{},"宏":{"docs":{},"内":{"docs":{},"核":{"docs":{},"和":{"docs":{},"微":{"docs":{},"内":{"docs":{},"核":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"系":{"docs":{},"统":{"docs":{},"有":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"项":{"docs":{},"目":{"docs":{},"目":{"docs":{},"录":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}},"驱":{"docs":{},"动":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"磁":{"docs":{},"盘":{"docs":{},",":{"docs":{},"输":{"docs":{},"入":{"docs":{},"输":{"docs":{},"出":{"docs":{},"设":{"docs":{},"备":{"docs":{},"等":{"docs":{"programing-manual/base/framework.html":{"ref":"programing-manual/base/framework.html","tf":0.00684931506849315}}}}}}}}}}}}}}}}},">":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.275},"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}},"a":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"1":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"2":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"3":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"4":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"5":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}},"6":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"7":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}},"e":{"docs":{},"p":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},".":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"s":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},")":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},",":{"docs":{},"当":{"docs":{},"执":{"docs":{},"行":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"地":{"docs":{},"方":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"内":{"docs":{},"核":{"docs":{},"就":{"docs":{},"开":{"docs":{},"始":{"docs":{},"运":{"docs":{},"行":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"p":{"0":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"1":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"2":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"3":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}}}}}},"_":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"_":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"_":{"docs":{},"f":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"_":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"(":{"docs":{},"(":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"b":{"docs":{},"o":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"_":{"docs":{},"_":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"_":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"不":{"docs":{},"能":{"docs":{},"使":{"docs":{},"用":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},":":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":0.025}}}}}}}}}}},"同":{"docs":{},"用":{"docs":{},"法":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}},"的":{"docs":{},"架":{"docs":{},"构":{"docs":{},"内":{"docs":{},"核":{"docs":{},"入":{"docs":{},"口":{"docs":{},"代":{"docs":{},"码":{"docs":{},"有":{"docs":{},"差":{"docs":{},"异":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"架":{"docs":{},"构":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}},"管":{"docs":{},"是":{"docs":{},"哪":{"docs":{},"一":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{},"任":{"docs":{},"何":{"docs":{},"一":{"docs":{},"行":{"docs":{},"都":{"docs":{},"不":{"docs":{},"得":{"docs":{},"超":{"docs":{},"过":{"7":{"2":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},"(":{"docs":{},"或":{"1":{"0":{"0":{"docs":{},"个":{"docs":{},"字":{"docs":{},"符":{"docs":{},")":{"docs":{},"。":{"docs":{},"这":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"避":{"docs":{},"免":{"docs":{},"自":{"docs":{},"动":{"docs":{},"换":{"docs":{},"行":{"docs":{},"影":{"docs":{},"响":{"docs":{},"美":{"docs":{},"观":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"带":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"和":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}},"启":{"docs":{},"动":{"docs":{},"流":{"docs":{},"程":{"docs":{"programing-manual/base/start.html":{"ref":"programing-manual/base/start.html","tf":10.025}}}},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"进":{"docs":{},"行":{"docs":{},"一":{"docs":{},"些":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"参":{"docs":{},"加":{"docs":{},"到":{"docs":{},"调":{"docs":{},"度":{"docs":{},"工":{"docs":{},"作":{"docs":{},"中":{"docs":{},"。":{"docs":{},"而":{"docs":{},"调":{"docs":{},"度":{"docs":{},"队":{"docs":{},"列":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"于":{"docs":{},"原":{"docs":{},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{},"来":{"docs":{},"保":{"docs":{},"证":{"docs":{},"对":{"docs":{},"公":{"docs":{},"共":{"docs":{},"队":{"docs":{},"列":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"正":{"docs":{},"确":{"docs":{},"性":{"docs":{},"。":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}},"它":{"docs":{},",":{"docs":{},"才":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"超":{"docs":{},"时":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"回":{"docs":{},"调":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.03260869565217391},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.030587522713506964},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.04411764705882353}},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},",":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0030284675953967293}}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}}}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"b":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"y":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"*":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"s":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"r":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}},"docs":{}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"i":{"docs":{},"r":{"docs":{},"q":{"docs":{},"_":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"s":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}},"p":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"t":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.03260869565217391}}}}},"e":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0030284675953967293}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},"[":{"3":{"docs":{},"]":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"docs":{}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.018134715025906734}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"l":{"docs":{},"k":{"docs":{},"(":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"_":{"docs":{},"p":{"docs":{},"d":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"h":{"docs":{},"y":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},";":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043}}}}}}}}}},"*":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.03076923076923077}}}}}}}}}}}},"/":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.07191780821917808},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.014839491217443974},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.03676470588235294},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.05}}},"s":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.046153846153846156}}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.02564102564102564},"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729},"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}}},"s":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0021199273167777106}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.010273972602739725}}}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.03225806451612903}}}},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}},",":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"r":{"docs":{},";":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.05128205128205128}}}},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.021505376344086023}}},")":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}},"(":{"docs":{},"(":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},"t":{"2":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0012113870381586917}}}}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"_":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"(":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},")":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"docs":{}}}}}}}}}},"h":{"docs":{},"y":{"2":{"docs":{},"v":{"docs":{},"i":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"t":{"docs":{},"e":{"2":{"docs":{},"p":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"(":{"docs":{},"*":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}},"docs":{}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"_":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},"(":{"docs":{},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"d":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.007772020725388601}}}}}},"p":{"docs":{},"u":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"o":{"docs":{},"m":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"v":{"docs":{},"m":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},",":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.010362694300518135}}},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}}}},"q":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{},"在":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"映":{"docs":{},"射":{"docs":{},"和":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"中":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"到":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"项":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"空":{"docs":{},"格":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"没":{"docs":{},"有":{"docs":{},"什":{"docs":{},"么":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"意":{"docs":{},"义":{"docs":{},",":{"docs":{},"请":{"docs":{},"在":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},"说":{"docs":{},"就":{"docs":{},"是":{"docs":{},"对":{"docs":{},"一":{"docs":{},"段":{"docs":{},"或":{"docs":{},"者":{"docs":{},"多":{"docs":{},"段":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"配":{"docs":{},"与":{"docs":{},"释":{"docs":{},"放":{"docs":{},",":{"docs":{},"让":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"去":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},",":{"docs":{},"最":{"docs":{},"后":{"docs":{},"返":{"docs":{},"回":{"docs":{},"栈":{"docs":{},"低":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"前":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"过":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"后":{"docs":{},"又":{"docs":{},"推":{"docs":{},"出":{"docs":{},"了":{"docs":{},"包":{"docs":{},"括":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}}},"中":{"docs":{},"。":{"docs":{},"其":{"docs":{},"他":{"docs":{},"情":{"docs":{},"况":{"docs":{},"(":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"s":{"docs":{},"、":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"、":{"docs":{},"s":{"docs":{},"t":{"docs":{},"y":{"docs":{},"l":{"docs":{},"e":{"docs":{},"、":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"、":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{},"由":{"docs":{},"你":{"docs":{},"决":{"docs":{},"定":{"docs":{},",":{"docs":{},"要":{"docs":{},"不":{"docs":{},"要":{"docs":{},"放":{"docs":{},"入":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"优":{"docs":{},"缺":{"docs":{},"点":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}},"先":{"docs":{},"级":{"docs":{},"最":{"docs":{},"低":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}},"高":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}},"伙":{"docs":{},"伴":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"算":{"docs":{},"法":{"docs":{},"。":{"docs":{},"为":{"docs":{},"了":{"docs":{},"便":{"docs":{},"于":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"维":{"docs":{},"护":{"docs":{},",":{"docs":{},"将":{"docs":{},"多":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"组":{"docs":{},"成":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"都":{"docs":{},"有":{"2":{"docs":{},"的":{"docs":{},"方":{"docs":{},"幂":{"docs":{},"个":{"docs":{},"页":{"docs":{},",":{"docs":{},"方":{"docs":{},"幂":{"docs":{},"的":{"docs":{},"指":{"docs":{},"数":{"docs":{},"被":{"docs":{},"称":{"docs":{},"为":{"docs":{},"阶":{"docs":{},"。":{"docs":{},"在":{"docs":{},"操":{"docs":{},"作":{"docs":{},"内":{"docs":{},"存":{"docs":{},"时":{"docs":{},",":{"docs":{},"经":{"docs":{},"常":{"docs":{},"将":{"docs":{},"这":{"docs":{},"些":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"分":{"docs":{},"成":{"docs":{},"大":{"docs":{},"小":{"docs":{},"相":{"docs":{},"等":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"块":{"docs":{},",":{"docs":{},"分":{"docs":{},"成":{"docs":{},"的":{"docs":{},"两":{"docs":{},"个":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"被":{"docs":{},"称":{"docs":{},"为":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"块":{"docs":{},",":{"docs":{},"采":{"docs":{},"用":{"docs":{},"一":{"docs":{},"位":{"docs":{},"二":{"docs":{},"进":{"docs":{},"制":{"docs":{},"数":{"docs":{},"来":{"docs":{},"表":{"docs":{},"示":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{},"当":{"docs":{},"这":{"docs":{},"个":{"docs":{},"位":{"docs":{},"为":{"1":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"其":{"docs":{},"中":{"docs":{},"一":{"docs":{},"块":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},";":{"docs":{},"当":{"docs":{},"这":{"docs":{},"个":{"docs":{},"位":{"docs":{},"为":{"0":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"两":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"块":{"docs":{},"都":{"docs":{},"空":{"docs":{},"闲":{"docs":{},"或":{"docs":{},"者":{"docs":{},"都":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"系":{"docs":{},"统":{"docs":{},"根":{"docs":{},"据":{"docs":{},"该":{"docs":{},"位":{"docs":{},"为":{"0":{"docs":{},"或":{"docs":{},"位":{"docs":{},"为":{"1":{"docs":{},"来":{"docs":{},"决":{"docs":{},"定":{"docs":{},"是":{"docs":{},"否":{"docs":{},"使":{"docs":{},"用":{"docs":{},"或":{"docs":{},"者":{"docs":{},"分":{"docs":{},"配":{"docs":{},"该":{"docs":{},"页":{"docs":{},"面":{"docs":{},"块":{"docs":{},"。":{"docs":{},"系":{"docs":{},"统":{"docs":{},"每":{"docs":{},"次":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"回":{"docs":{},"收":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"块":{"docs":{},"时":{"docs":{},"都":{"docs":{},"要":{"docs":{},"对":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"位":{"docs":{},"跟":{"1":{"docs":{},"进":{"docs":{},"行":{"docs":{},"异":{"docs":{},"或":{"docs":{},"运":{"docs":{},"算":{"docs":{},"。":{"docs":{},"所":{"docs":{},"谓":{"docs":{},"异":{"docs":{},"或":{"docs":{},"是":{"docs":{},"指":{"docs":{},"刚":{"docs":{},"开":{"docs":{},"始":{"docs":{},"时":{"docs":{},",":{"docs":{},"两":{"docs":{},"个":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"块":{"docs":{},"都":{"docs":{},"空":{"docs":{},"闲":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"的":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"位":{"docs":{},"为":{"0":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"其":{"docs":{},"中":{"docs":{},"一":{"docs":{},"块":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"异":{"docs":{},"或":{"docs":{},"后":{"docs":{},"得":{"1":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"另":{"docs":{},"一":{"docs":{},"块":{"docs":{},"也":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"异":{"docs":{},"或":{"docs":{},"后":{"docs":{},"得":{"0":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"前":{"docs":{},"面":{"docs":{},"一":{"docs":{},"块":{"docs":{},"回":{"docs":{},"收":{"docs":{},"了":{"docs":{},"异":{"docs":{},"或":{"docs":{},"后":{"docs":{},"得":{"1":{"docs":{},";":{"docs":{},"如":{"docs":{},"果":{"docs":{},"另":{"docs":{},"一":{"docs":{},"块":{"docs":{},"也":{"docs":{},"回":{"docs":{},"收":{"docs":{},"了":{"docs":{},"异":{"docs":{},"或":{"docs":{},"后":{"docs":{},"得":{"0":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"原":{"docs":{},"理":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}},"子":{"docs":{},"操":{"docs":{},"作":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458},"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"用":{"docs":{},"于":{"docs":{},"对":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"加":{"docs":{},"减":{"docs":{},"运":{"docs":{},"算":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"打":{"docs":{},"断":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"一":{"docs":{},"些":{"docs":{},"原":{"docs":{},"子":{"docs":{},"级":{"docs":{},"别":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"交":{"docs":{},"换":{"docs":{},"等":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"对":{"docs":{},"数":{"docs":{},"据":{"docs":{},"的":{"docs":{},"原":{"docs":{},"子":{"docs":{},"设":{"docs":{},"置":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},",":{"docs":{},"加":{"docs":{},"法":{"docs":{},",":{"docs":{},"减":{"docs":{},"法":{"docs":{},",":{"docs":{},"数":{"docs":{},"据":{"docs":{},"交":{"docs":{},"换":{"docs":{},"等":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"另":{"docs":{},"外":{"docs":{},"拆":{"docs":{},"分":{"docs":{},"和":{"docs":{},"合":{"docs":{},"并":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"到":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"有":{"docs":{},"使":{"docs":{},"用":{"docs":{},"到":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}},"输":{"docs":{},"出":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{},"自":{"docs":{},"己":{"docs":{},"操":{"docs":{},"作":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"在":{"docs":{},"早":{"docs":{},"期":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"尽":{"docs":{},"管":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"内":{"docs":{},"存":{"docs":{},"算":{"docs":{},"法":{"docs":{},"在":{"docs":{},"内":{"docs":{},"存":{"docs":{},"碎":{"docs":{},"片":{"docs":{},"问":{"docs":{},"题":{"docs":{},"上":{"docs":{},"已":{"docs":{},"经":{"docs":{},"做":{"docs":{},"的":{"docs":{},"相":{"docs":{},"当":{"docs":{},"出":{"docs":{},"色":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"该":{"docs":{},"算":{"docs":{},"法":{"docs":{},"中":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"很":{"docs":{},"小":{"docs":{},"的":{"docs":{},"块":{"docs":{},"往":{"docs":{},"往":{"docs":{},"会":{"docs":{},"阻":{"docs":{},"碍":{"docs":{},"一":{"docs":{},"个":{"docs":{},"大":{"docs":{},"块":{"docs":{},"的":{"docs":{},"合":{"docs":{},"并":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},",":{"docs":{},"对":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"的":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"大":{"docs":{},"小":{"docs":{},"是":{"docs":{},"随":{"docs":{},"机":{"docs":{},"的":{"docs":{},",":{"docs":{},"一":{"docs":{},"片":{"docs":{},"内":{"docs":{},"存":{"docs":{},"中":{"docs":{},"仅":{"docs":{},"一":{"docs":{},"个":{"docs":{},"小":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"没":{"docs":{},"有":{"docs":{},"释":{"docs":{},"放":{"docs":{},",":{"docs":{},"旁":{"docs":{},"边":{"docs":{},"两":{"docs":{},"个":{"docs":{},"大":{"docs":{},"的":{"docs":{},"就":{"docs":{},"不":{"docs":{},"能":{"docs":{},"合":{"docs":{},"并":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"以":{"docs":{},",":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"也":{"docs":{},"就":{"docs":{},"延":{"docs":{},"续":{"docs":{},"到":{"6":{"4":{"docs":{},"位":{"docs":{},"系":{"docs":{},"统":{"docs":{},"了":{"docs":{},"。":{"docs":{},"所":{"docs":{},"以":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"使":{"docs":{},"用":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"作":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}},"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},"的":{"docs":{},"基":{"docs":{},"础":{"docs":{},"单":{"docs":{},"位":{"docs":{},"就":{"docs":{},"是":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"页":{"docs":{},"面":{"docs":{},"大":{"docs":{},"小":{"docs":{},"是":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"更":{"docs":{},"大":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"由":{"docs":{},"于":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"在":{"3":{"2":{"docs":{},"位":{"docs":{},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},"可":{"docs":{},"以":{"docs":{},"很":{"docs":{},"好":{"docs":{},"地":{"docs":{},"对":{"4":{"docs":{},"g":{"docs":{},"b":{"docs":{},"内":{"docs":{},"存":{"docs":{},"进":{"docs":{},"行":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},"实":{"docs":{},"现":{"docs":{},"同":{"docs":{},"样":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"在":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"计":{"docs":{},"算":{"docs":{},"出":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"次":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"间":{"docs":{},"隔":{"docs":{},"多":{"docs":{},"少":{"docs":{},"个":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"需":{"docs":{},"要":{"docs":{},"对":{"docs":{},"接":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"都":{"docs":{},"存":{"docs":{},"放":{"docs":{},"在":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"把":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},"内":{"docs":{},"核":{"docs":{},"加":{"docs":{},"载":{"docs":{},"到":{"docs":{},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"进":{"docs":{},"去":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304},"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266},"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}},"下":{"docs":{},"来":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"给":{"docs":{},"出":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"有":{"docs":{},"必":{"docs":{},"要":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"也":{"docs":{},"会":{"docs":{},"在":{"docs":{},"需":{"docs":{},"要":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"调":{"docs":{},"用":{"docs":{},"该":{"docs":{},"分":{"docs":{},"配":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"当":{"docs":{},"一":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"被":{"docs":{},"多":{"docs":{},"次":{"docs":{},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"去":{"docs":{},"增":{"docs":{},"加":{"docs":{},"其":{"docs":{},"引":{"docs":{},"用":{"docs":{},"计":{"docs":{},"数":{"docs":{},",":{"docs":{},"来":{"docs":{},"避":{"docs":{},"免":{"docs":{},"被":{"docs":{},"释":{"docs":{},"放":{"docs":{},"掉":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"终":{"docs":{},"止":{"docs":{},"某":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},",":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"有":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"工":{"docs":{},"作":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"链":{"docs":{},"表":{"docs":{},"来":{"docs":{},"记":{"docs":{},"录":{"docs":{},"所":{"docs":{},"有":{"docs":{},"等":{"docs":{},"待":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},",":{"docs":{},"值":{"docs":{},"得":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"是":{"docs":{},"通":{"docs":{},"过":{"docs":{},"线":{"docs":{},"性":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"插":{"docs":{},"入":{"docs":{},"到":{"docs":{},"链":{"docs":{},"表":{"docs":{},"中":{"docs":{},"的":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"外":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"如":{"docs":{},"果":{"docs":{},"遇":{"docs":{},"到":{"docs":{},"循":{"docs":{},"环":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"里":{"docs":{},"面":{"docs":{},"不":{"docs":{},"会":{"docs":{},"执":{"docs":{},"行":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},",":{"docs":{},"括":{"docs":{},"号":{"docs":{},"就":{"docs":{},"直":{"docs":{},"接":{"docs":{},"写":{"docs":{},"在":{"docs":{},"右":{"docs":{},"边":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"两":{"docs":{},"个":{"docs":{},"注":{"docs":{},"意":{"docs":{},"点":{"docs":{},":":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{},"一":{"docs":{},"段":{"docs":{},"连":{"docs":{},"续":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"制":{"docs":{},"定":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"动":{"docs":{},"态":{"docs":{},"地":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},",":{"docs":{},"对":{"docs":{},"于":{"docs":{},"内":{"docs":{},"核":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"也":{"docs":{},"需":{"docs":{},"要":{"docs":{},"这":{"docs":{},"样":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"工":{"docs":{},"作":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}},"进":{"docs":{},"行":{"docs":{},"超":{"docs":{},"时":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}},"分":{"docs":{},"配":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"映":{"docs":{},"射":{"docs":{},"一":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"解":{"docs":{},"除":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"映":{"docs":{},"射":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"算":{"docs":{},"法":{"docs":{},"中":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"浪":{"docs":{},"费":{"docs":{},"现":{"docs":{},"象":{"docs":{},",":{"docs":{},"伙":{"docs":{},"伴":{"docs":{},"算":{"docs":{},"法":{"docs":{},"是":{"docs":{},"按":{"2":{"docs":{},"的":{"docs":{},"幂":{"docs":{},"次":{"docs":{},"方":{"docs":{},"大":{"docs":{},"小":{"docs":{},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"这":{"docs":{},"样":{"docs":{},"做":{"docs":{},"是":{"docs":{},"有":{"docs":{},"原":{"docs":{},"因":{"docs":{},"的":{"docs":{},",":{"docs":{},"即":{"docs":{},"为":{"docs":{},"了":{"docs":{},"避":{"docs":{},"免":{"docs":{},"把":{"docs":{},"大":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"块":{"docs":{},"拆":{"docs":{},"的":{"docs":{},"太":{"docs":{},"碎":{"docs":{},",":{"docs":{},"更":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"是":{"docs":{},"使":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},"过":{"docs":{},"程":{"docs":{},"迅":{"docs":{},"速":{"docs":{},"。":{"docs":{},"但":{"docs":{},"是":{"docs":{},"他":{"docs":{},"也":{"docs":{},"带":{"docs":{},"来":{"docs":{},"了":{"docs":{},"不":{"docs":{},"利":{"docs":{},"的":{"docs":{},"一":{"docs":{},"面":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"所":{"docs":{},"需":{"docs":{},"内":{"docs":{},"存":{"docs":{},"大":{"docs":{},"小":{"docs":{},"不":{"docs":{},"是":{"2":{"docs":{},"的":{"docs":{},"幂":{"docs":{},"次":{"docs":{},"方":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"有":{"docs":{},"部":{"docs":{},"分":{"docs":{},"页":{"docs":{},"面":{"docs":{},"浪":{"docs":{},"费":{"docs":{},"。":{"docs":{},"有":{"docs":{},"时":{"docs":{},"还":{"docs":{},"很":{"docs":{},"严":{"docs":{},"重":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"原":{"docs":{},"来":{"docs":{},"是":{"1":{"0":{"2":{"4":{"docs":{},"个":{"docs":{},"块":{"docs":{},",":{"docs":{},"申":{"docs":{},"请":{"docs":{},"了":{"1":{"6":{"docs":{},"个":{"docs":{},"块":{"docs":{},",":{"docs":{},"再":{"docs":{},"申":{"docs":{},"请":{"6":{"0":{"0":{"docs":{},"个":{"docs":{},"块":{"docs":{},"就":{"docs":{},"申":{"docs":{},"请":{"docs":{},"不":{"docs":{},"到":{"docs":{},"了":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"已":{"docs":{},"经":{"docs":{},"被":{"docs":{},"分":{"docs":{},"割":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}},"docs":{}},"docs":{}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"小":{"docs":{},"的":{"docs":{},"对":{"docs":{},"象":{"docs":{},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"链":{"docs":{},"表":{"docs":{},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"先":{"docs":{},"去":{"docs":{},"链":{"docs":{},"表":{"docs":{},"上":{"docs":{},"获":{"docs":{},"取":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"具":{"docs":{},"体":{"docs":{},"实":{"docs":{},"现":{"docs":{},"不":{"docs":{},"进":{"docs":{},"行":{"docs":{},"讲":{"docs":{},"解":{"docs":{},",":{"docs":{},"除":{"docs":{},"非":{"docs":{},"你":{"docs":{},"需":{"docs":{},"要":{"docs":{},"来":{"docs":{},"优":{"docs":{},"化":{"docs":{},"这":{"docs":{},"部":{"docs":{},"分":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"才":{"docs":{},"需":{"docs":{},"要":{"docs":{},"了":{"docs":{},"解":{"docs":{},"到":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"只":{"docs":{},"是":{"docs":{},"去":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"熟":{"docs":{},"悉":{"docs":{},"接":{"docs":{},"口":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"中":{"docs":{},"分":{"docs":{},"配":{"docs":{},"的":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}},"调":{"docs":{},"用":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":10.03125}},"是":{"docs":{},"指":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"程":{"docs":{},"序":{"docs":{},"通":{"docs":{},"过":{"docs":{},"特":{"docs":{},"殊":{"docs":{},"的":{"docs":{},"指":{"docs":{},"令":{"docs":{},"陷":{"docs":{},"入":{"docs":{},"到":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},",":{"docs":{},"执":{"docs":{},"行":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"程":{"docs":{},"序":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"返":{"docs":{},"回":{"docs":{},"到":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"是":{"docs":{},"基":{"docs":{},"于":{"docs":{},"特":{"docs":{},"权":{"docs":{},"级":{"docs":{},"切":{"docs":{},"换":{"docs":{},"指":{"docs":{},"令":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"都":{"docs":{},"是":{"docs":{},"中":{"docs":{},"断":{"docs":{},"或":{"docs":{},"者":{"docs":{},"异":{"docs":{},"常":{"docs":{},"。":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"通":{"docs":{},"过":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"些":{"docs":{},"指":{"docs":{},"令":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"或":{"docs":{},"者":{"docs":{},"异":{"docs":{},"常":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"会":{"docs":{},"去":{"docs":{},"中":{"docs":{},"断":{"docs":{},"表":{"docs":{},"中":{"docs":{},"查":{"docs":{},"找":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"指":{"docs":{},"令":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"根":{"docs":{},"据":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"是":{"docs":{},"在":{"docs":{},"内":{"docs":{},"核":{"docs":{},"固":{"docs":{},"定":{"docs":{},"下":{"docs":{},"来":{"docs":{},"的":{"docs":{},",":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"架":{"docs":{},"构":{"docs":{},"只":{"docs":{},"要":{"docs":{},"根":{"docs":{},"据":{"docs":{},"固":{"docs":{},"定":{"docs":{},"的":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}},"支":{"docs":{},"持":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}},"较":{"docs":{},"多":{"docs":{},"的":{"docs":{},"链":{"docs":{},"表":{"docs":{},"和":{"docs":{},"位":{"docs":{},"图":{"docs":{},"操":{"docs":{},"作":{"docs":{},",":{"docs":{},"开":{"docs":{},"销":{"docs":{},"还":{"docs":{},"是":{"docs":{},"比":{"docs":{},"较":{"docs":{},"大":{"docs":{},"的":{"docs":{},"。":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}},"这":{"3":{"docs":{},"个":{"docs":{},"接":{"docs":{},"口":{"docs":{},"都":{"docs":{},"是":{"docs":{},"对":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"docs":{},"样":{"docs":{},"的":{"docs":{},"话":{"docs":{},",":{"docs":{},"内":{"docs":{},"核":{"docs":{},"也":{"docs":{},"就":{"docs":{},"占":{"docs":{},"用":{"docs":{},"了":{"docs":{},"一":{"docs":{},"部":{"docs":{},"分":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"我":{"docs":{},"们":{"docs":{},"应":{"docs":{},"该":{"docs":{},"去":{"docs":{},"管":{"docs":{},"理":{"docs":{},"哪":{"docs":{},"部":{"docs":{},"分":{"docs":{},"内":{"docs":{},"存":{"docs":{},"呢":{"docs":{},"?":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"通":{"docs":{},"过":{"docs":{},"这":{"docs":{},"种":{"docs":{},"多":{"docs":{},"次":{"docs":{},"转":{"docs":{},"换":{"docs":{},",":{"docs":{},"终":{"docs":{},"于":{"docs":{},"从":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"页":{"docs":{},"号":{"docs":{},"找":{"docs":{},"到":{"docs":{},"了":{"docs":{},"一":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"么":{"docs":{},"做":{"docs":{},"的":{"docs":{},"目":{"docs":{},"的":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"避":{"docs":{},"免":{"docs":{},"用":{"docs":{},"户":{"docs":{},"恶":{"docs":{},"意":{"docs":{},"程":{"docs":{},"序":{"docs":{},"对":{"docs":{},"系":{"docs":{},"统":{"docs":{},"的":{"docs":{},"损":{"docs":{},"坏":{"docs":{},",":{"docs":{},"对":{"docs":{},"设":{"docs":{},"备":{"docs":{},"进":{"docs":{},"行":{"docs":{},"恶":{"docs":{},"意":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{},"于":{"docs":{},"是":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"核":{"docs":{},"与":{"docs":{},"内":{"docs":{},"核":{"docs":{},"态":{"docs":{},"之":{"docs":{},"间":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"就":{"docs":{},"出":{"docs":{},"现":{"docs":{},"了":{"docs":{},",":{"docs":{},"它":{"docs":{},"就":{"docs":{},"是":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"符":{"docs":{},"号":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"就":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"这":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"是":{"docs":{},"没":{"docs":{},"有":{"docs":{},"映":{"docs":{},"射":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"是":{"docs":{},"操":{"docs":{},"作":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"里":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"的":{"docs":{},"快":{"docs":{},"表":{"docs":{},"可":{"docs":{},"以":{"docs":{},"理":{"docs":{},"解":{"docs":{},"为":{"docs":{},"缓":{"docs":{},"存":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"加":{"docs":{},"快":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"到":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"转":{"docs":{},"换":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"里":{"docs":{},"面":{"docs":{},"分":{"docs":{},"配":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}},"释":{"docs":{},"放":{"docs":{},"某":{"docs":{},"个":{"docs":{},"地":{"docs":{},"址":{"docs":{},"指":{"docs":{},"针":{"docs":{},",":{"docs":{},"该":{"docs":{},"指":{"docs":{},"针":{"docs":{},"必":{"docs":{},"须":{"docs":{},"是":{"docs":{},"从":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}}}}}}}},",":{"docs":{},"它":{"docs":{},"们":{"docs":{},"是":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}},"页":{"docs":{},"面":{"docs":{},"分":{"docs":{},"配":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"从":{"docs":{},"一":{"docs":{},"个":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}}}},"释":{"docs":{},"放":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"从":{"docs":{},"一":{"docs":{},"个":{"docs":{"programing-manual/mm/buddy.html":{"ref":"programing-manual/mm/buddy.html","tf":0.010869565217391304}}}}}}}}}},"属":{"docs":{},"性":{"docs":{},"的":{"docs":{},"定":{"docs":{},"义":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"表":{"docs":{},"项":{"docs":{},"映":{"docs":{},"射":{"docs":{},"到":{"docs":{},"内":{"docs":{},"核":{"docs":{},",":{"docs":{},"并":{"docs":{},"设":{"docs":{},"置":{"docs":{},"权":{"docs":{},"限":{"docs":{},"为":{"docs":{},"内":{"docs":{},"核":{"docs":{},"才":{"docs":{},"能":{"docs":{},"访":{"docs":{},"问":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"就":{"docs":{},"能":{"docs":{},"实":{"docs":{},"现":{"docs":{},"切":{"docs":{},"换":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"格":{"docs":{},"式":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"去":{"docs":{},"分":{"docs":{},"配":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}},"释":{"docs":{},"放":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}},"终":{"docs":{},"止":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"线":{"docs":{},"程":{"docs":{},"指":{"docs":{},"针":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},",":{"docs":{},"而":{"docs":{},"获":{"docs":{},"取":{"docs":{},"操":{"docs":{},"作":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"通":{"docs":{},"过":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"遍":{"docs":{},"历":{"3":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"docs":{}}}},"对":{"docs":{},"于":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"中":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"使":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"链":{"docs":{},"表":{"docs":{},"来":{"docs":{},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}},"大":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"就":{"docs":{},"直":{"docs":{},"接":{"docs":{},"从":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},",":{"docs":{},"不":{"docs":{},"使":{"docs":{},"用":{"docs":{},"链":{"docs":{},"表":{"docs":{},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"小":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"会":{"docs":{},"划":{"docs":{},"分":{"docs":{},"得":{"docs":{},"比":{"docs":{},"较":{"docs":{},"细":{"docs":{},",":{"docs":{},"如":{"docs":{},":":{"1":{"6":{"docs":{},",":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"应":{"docs":{},"用":{"docs":{},"程":{"docs":{},"序":{"docs":{},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"者":{"docs":{},"而":{"docs":{},"言":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"已":{"docs":{},"经":{"docs":{},"做":{"docs":{},"好":{"docs":{},"了":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"你":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"知":{"docs":{},"道":{"docs":{},"如":{"docs":{},"何":{"docs":{},"去":{"docs":{},"使":{"docs":{},"用":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"是":{"docs":{},"对":{"docs":{},"它":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{},"由":{"docs":{},"于":{"docs":{},"会":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"所":{"docs":{},"以":{"docs":{},"会":{"docs":{},"对":{"docs":{},"每":{"docs":{},"个":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"象":{"docs":{},"即":{"docs":{},"可":{"docs":{},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"工":{"docs":{},"作":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"多":{"docs":{},"核":{"docs":{},"的":{"docs":{},"启":{"docs":{},"动":{"docs":{},"和":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"应":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"。":{"docs":{},"将":{"docs":{},"结":{"docs":{},"果":{"docs":{},"保":{"docs":{},"存":{"docs":{},"到":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"齐":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},"没":{"docs":{},"有":{"docs":{},"对":{"docs":{},"象":{"docs":{},"才":{"docs":{},"重":{"docs":{},"新":{"docs":{},"从":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"器":{"docs":{},"中":{"docs":{},"分":{"docs":{},"配":{"docs":{},",":{"docs":{},"有":{"docs":{},"的":{"docs":{},"话":{"docs":{},"就":{"docs":{},"直":{"docs":{},"接":{"docs":{},"从":{"docs":{},"链":{"docs":{},"表":{"docs":{},"上":{"docs":{},"面":{"docs":{},"摘":{"docs":{},"取":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"资":{"docs":{},"源":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"通":{"docs":{},"常":{"docs":{},",":{"docs":{},"内":{"docs":{},"核":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.028169014084507043}}}}}}},"都":{"docs":{},"是":{"docs":{},"在":{"docs":{},"启":{"docs":{},"动":{"docs":{},"后":{"docs":{},"尽":{"docs":{},"快":{"docs":{},"地":{"docs":{},"实":{"docs":{},"现":{"docs":{},"串":{"docs":{},"口":{"docs":{},"调":{"docs":{},"试":{"docs":{},",":{"docs":{},"以":{"docs":{},"便":{"docs":{},"能":{"docs":{},"够":{"docs":{},"知":{"docs":{},"道":{"docs":{},"自":{"docs":{},"己":{"docs":{},"跑":{"docs":{},"到":{"docs":{},"什":{"docs":{},"么":{"docs":{},"地":{"docs":{},"方":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"过":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{},"和":{"docs":{},"集":{"docs":{},"成":{"docs":{},"测":{"docs":{},"试":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}},"对":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}},"释":{"docs":{},"放":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"也":{"docs":{},"是":{"docs":{},"先":{"docs":{},"释":{"docs":{},"放":{"docs":{},"到":{"docs":{},"链":{"docs":{},"表":{"docs":{},"上":{"docs":{},"面":{"docs":{},",":{"docs":{},"当":{"docs":{},"链":{"docs":{},"表":{"docs":{},"超":{"docs":{},"出":{"docs":{},"了":{"docs":{},"最":{"docs":{},"大":{"docs":{},"链":{"docs":{},"表":{"docs":{},"长":{"docs":{},"度":{"docs":{},"阈":{"docs":{},"值":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"才":{"docs":{},"会":{"docs":{},"释":{"docs":{},"放":{"docs":{},"到":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"分":{"docs":{},"配":{"docs":{},"器":{"docs":{},"中":{"docs":{},"。":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"t":{"docs":{},"l":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"除":{"docs":{},"此":{"docs":{},"之":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"获":{"docs":{},"取":{"docs":{},"某":{"docs":{},"个":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"大":{"docs":{},"小":{"docs":{},"的":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"获":{"docs":{},"取":{"docs":{},"内":{"docs":{},"存":{"docs":{},"对":{"docs":{},"象":{"docs":{},"所":{"docs":{},"在":{"docs":{},"的":{"docs":{"programing-manual/mm/heap.html":{"ref":"programing-manual/mm/heap.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"对":{"docs":{},"当":{"docs":{},"前":{"docs":{},"中":{"docs":{},"断":{"docs":{},"状":{"docs":{},"态":{"docs":{},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"最":{"docs":{},"近":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"变":{"docs":{},"量":{"docs":{},",":{"docs":{},"来":{"docs":{},"记":{"docs":{},"录":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"即":{"docs":{},"将":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"它":{"docs":{},"来":{"docs":{},"检":{"docs":{},"测":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"去":{"docs":{},"检":{"docs":{},"测":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"链":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"是":{"docs":{},"对":{"docs":{},"某":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"使":{"docs":{},"能":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"值":{"docs":{},"得":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"还":{"docs":{},"会":{"docs":{},"去":{"docs":{},"对":{"docs":{},"内":{"docs":{},"存":{"docs":{},"进":{"docs":{},"行":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"只":{"docs":{},"有":{"docs":{},"映":{"docs":{},"射":{"docs":{},"后":{"docs":{},",":{"docs":{},"进":{"docs":{},"程":{"docs":{},"才":{"docs":{},"能":{"docs":{},"访":{"docs":{},"问":{"docs":{},"该":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"执":{"docs":{},"行":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"期":{"docs":{},"间":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"打":{"docs":{},"开":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"在":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},"出":{"docs":{},"现":{"docs":{},"死":{"docs":{},"循":{"docs":{},"环":{"docs":{},",":{"docs":{},"导":{"docs":{},"致":{"docs":{},"内":{"docs":{},"核":{"docs":{},"卡":{"docs":{},"死":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"就":{"docs":{},"能":{"docs":{},"获":{"docs":{},"取":{"docs":{},"到":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"内":{"docs":{},"核":{"docs":{},"服":{"docs":{},"务":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"以":{"docs":{},"函":{"docs":{},"数":{"docs":{},"指":{"docs":{},"针":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"执":{"docs":{},"行":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"范":{"docs":{},"围":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"删":{"docs":{},"除":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"条":{"docs":{},"件":{"docs":{},"变":{"docs":{},"量":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"目":{"docs":{},"录":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"通":{"docs":{},"过":{"docs":{},"映":{"docs":{},"射":{"docs":{},"和":{"docs":{},"解":{"docs":{},"除":{"docs":{},"映":{"docs":{},"射":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"类":{"docs":{},"似":{"docs":{},"于":{"docs":{},"分":{"docs":{},"配":{"docs":{},"和":{"docs":{},"释":{"docs":{},"放":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"翻":{"docs":{},"译":{"docs":{},"模":{"docs":{},"式":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"转":{"docs":{},"换":{"docs":{},"的":{"docs":{},"全":{"docs":{},"过":{"docs":{},"程":{"docs":{},"图":{"docs":{},"示":{"docs":{},"(":{"docs":{},"来":{"docs":{},"源":{"docs":{},"于":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"指":{"docs":{},"定":{"docs":{},"了":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"需":{"docs":{},"要":{"docs":{},"映":{"docs":{},"射":{"docs":{},"到":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"把":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"映":{"docs":{},"射":{"docs":{},"到":{"docs":{},"该":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"(":{"docs":{},"未":{"docs":{},"来":{"docs":{},"做":{"docs":{},"共":{"docs":{},"享":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"用":{"docs":{},"到":{"docs":{},")":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"就":{"docs":{},"行":{"docs":{},"了":{"docs":{},"。":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"令":{"docs":{},"去":{"docs":{},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{},"内":{"docs":{},"存":{"docs":{},"指":{"docs":{},"令":{"docs":{},"屏":{"docs":{},"障":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"获":{"docs":{},"取":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"集":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"映":{"docs":{},"射":{"docs":{},"某":{"docs":{},"段":{"docs":{},"空":{"docs":{},"间":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"先":{"docs":{},"检":{"docs":{},"测":{"docs":{},"地":{"docs":{},"址":{"docs":{},"是":{"docs":{},"否":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"已":{"docs":{},"经":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},"了":{"docs":{},",":{"docs":{},"就":{"docs":{},"不":{"docs":{},"能":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"这":{"docs":{},"块":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"没":{"docs":{},"有":{"docs":{},"被":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"中":{"docs":{},"添":{"docs":{},"加":{"docs":{},"一":{"docs":{},"个":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}},"表":{"docs":{},",":{"docs":{},"切":{"docs":{},"换":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"需":{"docs":{},"要":{"docs":{},"修":{"docs":{},"改":{"docs":{},"硬":{"docs":{},"件":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"会":{"docs":{},"指":{"docs":{},"定":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"就":{"docs":{},"不":{"docs":{},"用":{"docs":{},"自":{"docs":{},"动":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"格":{"docs":{},"式":{"docs":{},"的":{"docs":{},"可":{"docs":{},"执":{"docs":{},"行":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"映":{"docs":{},"射":{"docs":{},"一":{"docs":{},"段":{"docs":{},"内":{"docs":{},"存":{"docs":{},"来":{"docs":{},"储":{"docs":{},"存":{"docs":{},"代":{"docs":{},"码":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"用":{"docs":{},"到":{"docs":{},"映":{"docs":{},"射":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"不":{"docs":{},"影":{"docs":{},"响":{"docs":{},"代":{"docs":{},"码":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"变":{"docs":{},"动":{"docs":{},")":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}},"解":{"docs":{},"除":{"docs":{},"地":{"docs":{},"址":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"制":{"docs":{},"定":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"内":{"docs":{},"存":{"docs":{},"大":{"docs":{},"小":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"在":{"docs":{},"已":{"docs":{},"经":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"空":{"docs":{},"间":{"docs":{},"中":{"docs":{},"匹":{"docs":{},"配":{"docs":{},"到":{"docs":{},"v":{"docs":{},"m":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"将":{"docs":{},"其":{"docs":{},"解":{"docs":{},"除":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"并":{"docs":{},"释":{"docs":{},"放":{"docs":{},"其":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"解":{"docs":{},"除":{"docs":{},"后":{"docs":{},"就":{"docs":{},"不":{"docs":{},"能":{"docs":{},"访":{"docs":{},"问":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"先":{"docs":{},"判":{"docs":{},"断":{"docs":{},"该":{"docs":{},"地":{"docs":{},"址":{"docs":{},"是":{"docs":{},"否":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"已":{"docs":{},"经":{"docs":{},"映":{"docs":{},"射":{"docs":{},"才":{"docs":{},"能":{"docs":{},"解":{"docs":{},"除":{"docs":{},"。":{"docs":{},"会":{"docs":{},"先":{"docs":{},"解":{"docs":{},"除":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"映":{"docs":{},"射":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"把":{"docs":{"programing-manual/mm/vmspace.html":{"ref":"programing-manual/mm/vmspace.html","tf":0.015384615384615385}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"每":{"docs":{},"一":{"docs":{},"个":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"压":{"docs":{},"到":{"docs":{},"工":{"docs":{},"具":{"docs":{},"目":{"docs":{},"录":{"docs":{},"下":{"docs":{},"面":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}},"路":{"docs":{},"径":{"docs":{},":":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}}}}}}}},"由":{"docs":{},"于":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"任":{"docs":{},"务":{"docs":{},"数":{"docs":{},"量":{"docs":{},"众":{"docs":{},"多":{"docs":{},",":{"docs":{},"如":{"docs":{},"何":{"docs":{},"管":{"docs":{},"理":{"docs":{},"它":{"docs":{},"们":{"docs":{},",":{"docs":{},"是":{"docs":{},"要":{"docs":{},"做":{"docs":{},"到":{"docs":{},"公":{"docs":{},"平":{"docs":{},"运":{"docs":{},"行":{"docs":{},"还":{"docs":{},"是":{"docs":{},"谁":{"docs":{},"先":{"docs":{},"谁":{"docs":{},"后":{"docs":{},",":{"docs":{},"这":{"docs":{},"和":{"docs":{},"应":{"docs":{},"用":{"docs":{},"场":{"docs":{},"景":{"docs":{},"密":{"docs":{},"切":{"docs":{},"相":{"docs":{},"关":{"docs":{},"。":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},"速":{"docs":{},"度":{"docs":{},"非":{"docs":{},"常":{"docs":{},"快":{"docs":{},",":{"docs":{},"一":{"docs":{},"般":{"docs":{},"在":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}},"切":{"docs":{},"换":{"docs":{},"了":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}},"中":{"docs":{},"断":{"docs":{},"数":{"docs":{},"量":{"docs":{},"会":{"docs":{},"比":{"docs":{},"较":{"docs":{},"多":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"都":{"docs":{},"会":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"表":{"docs":{},"来":{"docs":{},"注":{"docs":{},"册":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"由":{"docs":{},"一":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"或":{"docs":{},"者":{"docs":{},"多":{"docs":{},"个":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"来":{"docs":{},"记":{"docs":{},"录":{"docs":{},"该":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"产":{"docs":{},"生":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"去":{"docs":{},"查":{"docs":{},"表":{"docs":{},",":{"docs":{},"根":{"docs":{},"据":{"docs":{},"具":{"docs":{},"体":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"号":{"docs":{},"去":{"docs":{},"找":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"简":{"docs":{},"单":{"docs":{},"来":{"docs":{},"说":{"docs":{},"就":{"docs":{},"是":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"回":{"docs":{},"调":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"具":{"docs":{},"有":{"docs":{},"一":{"docs":{},"定":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"的":{"docs":{},",":{"docs":{},"有":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"而":{"docs":{},"有":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"则":{"docs":{},"可":{"docs":{},"以":{"docs":{},"后":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"就":{"docs":{},"有":{"docs":{},"了":{"docs":{},"多":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{},"每":{"docs":{},"个":{"docs":{},"队":{"docs":{},"列":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"是":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"。":{"docs":{},"至":{"docs":{},"于":{"docs":{},"需":{"docs":{},"要":{"docs":{},"加":{"docs":{},"入":{"docs":{},"哪":{"docs":{},"种":{"docs":{},"队":{"docs":{},"列":{"docs":{},",":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"想":{"docs":{},"实":{"docs":{},"现":{"1":{"docs":{},"秒":{"docs":{},"钟":{"docs":{},"产":{"docs":{},"生":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"docs":{}}}}}},"每":{"docs":{},"个":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"都":{"docs":{},"需":{"docs":{},"要":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"调":{"docs":{},"用":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"面":{"docs":{},"分":{"docs":{},"配":{"docs":{},"函":{"docs":{},"数":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"而":{"docs":{},"在":{"docs":{},"桌":{"docs":{},"面":{"docs":{},"和":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"领":{"docs":{},"域":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"保":{"docs":{},"证":{"docs":{},"任":{"docs":{},"务":{"docs":{},"的":{"docs":{},"公":{"docs":{},"平":{"docs":{},"性":{"docs":{},",":{"docs":{},"即":{"docs":{},"使":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"比":{"docs":{},"较":{"docs":{},"低":{"docs":{},",":{"docs":{},"也":{"docs":{},"要":{"docs":{},"能":{"docs":{},"够":{"docs":{},"得":{"docs":{},"到":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/sched.html":{"ref":"programing-manual/sched/sched.html","tf":0.09090909090909091}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"任":{"docs":{},"务":{"docs":{},"调":{"docs":{},"度":{"docs":{},"属":{"docs":{},"于":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}},"是":{"docs":{},"处":{"docs":{},"理":{"docs":{},"中":{"docs":{},"断":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"直":{"docs":{},"接":{"docs":{},"返":{"docs":{},"回":{"docs":{},"。":{"docs":{},"等":{"docs":{},"到":{"docs":{},"响":{"docs":{},"应":{"docs":{},"了":{"docs":{},"该":{"docs":{},"中":{"docs":{},"断":{"docs":{},"之":{"docs":{},"后":{"docs":{},",":{"docs":{},"再":{"docs":{},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},"中":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"都":{"docs":{},"是":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.00684931506849315}}},"[":{"0":{"docs":{},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"7":{"docs":{},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}},"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"x":{"docs":{},"]":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.14285714285714285},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.20588235294117646},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.1092436974789916}}}}},"{":{"0":{"docs":{},"x":{"1":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},"docs":{}},"4":{"0":{"docs":{},",":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}},"docs":{}},"docs":{}}},"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.02877044215626893},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.022058823529411766},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.07727272727272727}},"n":{"docs":{},"x":{"docs":{},"_":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"}":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.026650514839491216},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.014705882352941176},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.06363636363636363}},";":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575},"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.013636363636363636}}}},"产":{"docs":{},"生":{"docs":{},"时":{"docs":{},"钟":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"去":{"docs":{},"减":{"docs":{},"少":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},"片":{"docs":{},",":{"docs":{},"时":{"docs":{},"间":{"docs":{},"片":{"docs":{},"为":{"0":{"docs":{},"后":{"docs":{},",":{"docs":{},"再":{"docs":{},"去":{"docs":{},"切":{"docs":{},"换":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"这":{"docs":{},"是":{"docs":{},"属":{"docs":{},"于":{"docs":{},"线":{"docs":{},"程":{"docs":{},"被":{"docs":{},"动":{"docs":{},"切":{"docs":{},"换":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"传":{"docs":{},"入":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}},"但":{"docs":{},"是":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"此":{"docs":{},"时":{"docs":{},"只":{"docs":{},"是":{"docs":{},"创":{"docs":{},"建":{"docs":{},"了":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"还":{"docs":{},"没":{"docs":{},"有":{"docs":{},"启":{"docs":{},"动":{"docs":{},"线":{"docs":{},"程":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.02849740932642487}},"即":{"docs":{},"可":{"docs":{},"退":{"docs":{},"出":{"docs":{},"当":{"docs":{},"前":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}},",":{"docs":{},"相":{"docs":{},"反":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"则":{"docs":{},"是":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"来":{"docs":{},"打":{"docs":{},"印":{"docs":{},"消":{"docs":{},"息":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"采":{"docs":{},"用":{"docs":{},"大":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},"命":{"docs":{},"名":{"docs":{},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"即":{"docs":{},"每":{"docs":{},"个":{"docs":{},"单":{"docs":{},"词":{"docs":{},"的":{"docs":{},"首":{"docs":{},"字":{"docs":{},"母":{"docs":{},"都":{"docs":{},"大":{"docs":{},"写":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"单":{"docs":{},"词":{"docs":{},"是":{"docs":{},"用":{"docs":{},"的":{"docs":{},"缩":{"docs":{},"写":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"单":{"docs":{},"词":{"docs":{},"之":{"docs":{},"间":{"docs":{},"需":{"docs":{},"要":{"docs":{},"用":{"docs":{},"\"":{"docs":{},"_":{"docs":{},"\"":{"docs":{},"隔":{"docs":{},"开":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"同":{"docs":{},"时":{"docs":{},"运":{"docs":{},"行":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"你":{"docs":{},"一":{"docs":{},"边":{"docs":{},"听":{"docs":{},"歌":{"docs":{},",":{"docs":{},"一":{"docs":{},"边":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},",":{"docs":{},"其":{"docs":{},"实":{"docs":{},"就":{"docs":{},"是":{"docs":{},"音":{"docs":{},"乐":{"docs":{},"播":{"docs":{},"放":{"docs":{},"器":{"docs":{},"和":{"docs":{},"代":{"docs":{},"码":{"docs":{},"编":{"docs":{},"辑":{"docs":{},"器":{"docs":{},"这":{"docs":{},"两":{"docs":{},"个":{"docs":{},"任":{"docs":{},"务":{"docs":{},"在":{"docs":{},"快":{"docs":{},"速":{"docs":{},"切":{"docs":{},"换":{"docs":{},"而":{"docs":{},"形":{"docs":{},"成":{"docs":{},"的":{"docs":{},"效":{"docs":{},"果":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"会":{"docs":{},"发":{"docs":{},"起":{"docs":{},"一":{"docs":{},"次":{"docs":{},"切":{"docs":{},"换":{"docs":{},"。":{"docs":{},"这":{"docs":{},"样":{"docs":{},",":{"docs":{},"在":{"docs":{},"人":{"docs":{},"看":{"docs":{},"来":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"多":{"docs":{},"个":{"docs":{},"任":{"docs":{},"务":{"docs":{},"在":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}},"将":{"docs":{},"他":{"docs":{},"们":{"docs":{},"全":{"docs":{},"部":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"超":{"docs":{},"时":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"更":{"docs":{},"新":{"docs":{},"最":{"docs":{},"近":{"docs":{},"超":{"docs":{},"时":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"启":{"docs":{},"动":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"开":{"docs":{},"始":{"docs":{},"运":{"docs":{},"行":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}},"让":{"docs":{},"出":{"docs":{},"执":{"docs":{},"行":{"docs":{},"权":{"docs":{},"。":{"docs":{},"值":{"docs":{},"得":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"本":{"docs":{},"线":{"docs":{},"程":{"docs":{},"不":{"docs":{},"会":{"docs":{},"阻":{"docs":{},"塞":{"docs":{},",":{"docs":{},"会":{"docs":{},"在":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"时":{"docs":{},"机":{"docs":{},"再":{"docs":{},"次":{"docs":{},"被":{"docs":{},"调":{"docs":{},"度":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"升":{"docs":{},"级":{"docs":{},"为":{"docs":{},"进":{"docs":{},"程":{"docs":{},"。":{"docs":{},"除":{"docs":{},"此":{"docs":{},"之":{"docs":{},"外":{"docs":{},",":{"docs":{},"还":{"docs":{},"会":{"docs":{},"有":{"docs":{},"一":{"docs":{},"些":{"docs":{},"其":{"docs":{},"它":{"docs":{},"进":{"docs":{},"程":{"docs":{},"独":{"docs":{},"有":{"docs":{},"的":{"docs":{},"资":{"docs":{},"源":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"了":{"docs":{},"串":{"docs":{},"口":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"接":{"docs":{},"受":{"docs":{},"输":{"docs":{},"入":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"属":{"docs":{},"于":{"docs":{},"分":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},",":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}},"实":{"docs":{},"时":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"。":{"docs":{},"在":{"docs":{},"使":{"docs":{},"用":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"通":{"docs":{},"常":{"docs":{},"使":{"docs":{},"用":{"docs":{},"宏":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"直":{"docs":{},"接":{"docs":{},"使":{"docs":{},"用":{"docs":{},"数":{"docs":{},"字":{"docs":{},"。":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"宏":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"当":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"前":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}},"的":{"docs":{},"进":{"docs":{},"程":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}},"线":{"docs":{},"程":{"docs":{},"需":{"docs":{},"要":{"docs":{},"休":{"docs":{},"眠":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"休":{"docs":{},"眠":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{},",":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"启":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"销":{"docs":{},"某":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"中":{"docs":{},"断":{"docs":{},"号":{"docs":{},"以":{"docs":{},"及":{"docs":{},"注":{"docs":{},"册":{"docs":{},"时":{"docs":{},"的":{"docs":{},"数":{"docs":{},"据":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"解":{"docs":{},"除":{"docs":{},"了":{"docs":{},"中":{"docs":{},"断":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"停":{"docs":{},"止":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}},"时":{"docs":{},"钟":{"docs":{},"中":{"docs":{},"断":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"会":{"docs":{},"改":{"docs":{},"变":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"与":{"docs":{},"此":{"docs":{},"同":{"docs":{},"时":{"docs":{},"也":{"docs":{},"会":{"docs":{},"去":{"docs":{},"检":{"docs":{},"测":{"docs":{},"是":{"docs":{},"否":{"docs":{},"有":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"超":{"docs":{},"时":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"超":{"docs":{},"时":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{},"去":{"docs":{},"处":{"docs":{},"理":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"超":{"docs":{},"时":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"到":{"docs":{},"达":{"docs":{},"了":{"docs":{},"最":{"docs":{},"近":{"docs":{},"超":{"docs":{},"时":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"值":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"去":{"docs":{},"检":{"docs":{},"测":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"链":{"docs":{},"表":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"有":{"docs":{},"多":{"docs":{},"个":{"docs":{},"同":{"docs":{},"样":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"超":{"docs":{},"时":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"产":{"docs":{},"生":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"于":{"docs":{},"是":{"docs":{},"就":{"docs":{},"设":{"docs":{},"置":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"产":{"docs":{},"生":{"docs":{},"时":{"docs":{},"的":{"docs":{},"超":{"docs":{},"时":{"docs":{},"值":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"宏":{"docs":{},"条":{"docs":{},"件":{"docs":{},"#":{"docs":{},"i":{"docs":{},"f":{"docs":{},",":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{},"过":{"docs":{},"多":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"一":{"docs":{},"行":{"docs":{},"写":{"docs":{},"不":{"docs":{},"下":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"把":{"docs":{},"每":{"docs":{},"个":{"docs":{},"参":{"docs":{},"数":{"docs":{},"写":{"docs":{},"成":{"docs":{},"一":{"docs":{},"行":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"宏":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"多":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"则":{"docs":{},"使":{"docs":{},"用":{"docs":{},"空":{"docs":{},"格":{"docs":{},"+":{"docs":{},"\"":{"docs":{},"\\":{"docs":{},"\"":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"进":{"docs":{},"行":{"docs":{},"换":{"docs":{},"行":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"我":{"docs":{},"们":{"docs":{},"添":{"docs":{},"加":{"docs":{},"代":{"docs":{},"码":{"docs":{},"要":{"docs":{},"提":{"docs":{},"交":{"docs":{},"到":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"仓":{"docs":{},"库":{"docs":{},"中":{"docs":{},"时":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"需":{"docs":{},"要":{"docs":{},"统":{"docs":{},"一":{"docs":{},"下":{"docs":{},"规":{"docs":{},"范":{"docs":{},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"不":{"docs":{},"会":{"docs":{},"显":{"docs":{},"得":{"docs":{},"整":{"docs":{},"个":{"docs":{},"项":{"docs":{},"目":{"docs":{},"乱":{"docs":{},"糟":{"docs":{},"糟":{"docs":{},"的":{"docs":{},",":{"docs":{},"当":{"docs":{},"然":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"花":{"docs":{},"点":{"docs":{},"时":{"docs":{},"间":{"docs":{},"来":{"docs":{},"学":{"docs":{},"习":{"docs":{},"和":{"docs":{},"改":{"docs":{},"变":{"docs":{},"的":{"docs":{},"。":{"docs":{},"每":{"docs":{},"次":{"docs":{},"提":{"docs":{},"交":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"尽":{"docs":{},"量":{"docs":{},"短":{"docs":{},"小":{"docs":{},",":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"范":{"docs":{},"围":{"docs":{},"不":{"docs":{},"要":{"docs":{},"太":{"docs":{},"广":{"docs":{},",":{"docs":{},"专":{"docs":{},"注":{"docs":{},"于":{"docs":{},"某":{"docs":{},"个":{"docs":{},"领":{"docs":{},"域":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"你":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"某":{"docs":{},"个":{"docs":{},"平":{"docs":{},"台":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"时":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"通":{"docs":{},"过":{"docs":{},"设":{"docs":{},"置":{"docs":{},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{},"来":{"docs":{},"进":{"docs":{},"行":{"docs":{},"选":{"docs":{},"择":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"很":{"docs":{},"多":{"docs":{},"情":{"docs":{},"况":{"docs":{},"下":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"获":{"docs":{},"取":{"docs":{},"当":{"docs":{},"前":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}},"拿":{"docs":{},"到":{"1":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"避":{"docs":{},"免":{"docs":{},"内":{"docs":{},"核":{"docs":{},"跑":{"docs":{},"飞":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}},"docs":{}}},"最":{"docs":{},"开":{"docs":{},"始":{"docs":{},",":{"docs":{},"内":{"docs":{},"核":{"docs":{},"是":{"docs":{},"没":{"docs":{},"有":{"docs":{},"线":{"docs":{},"程":{"docs":{},"概":{"docs":{},"念":{"docs":{},"的":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"只":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"执":{"docs":{},"行":{"docs":{},"流":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"可":{"docs":{},"以":{"docs":{},"不":{"docs":{},"开":{"docs":{},"启":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"后":{"docs":{},",":{"docs":{},"当":{"docs":{},"有":{"docs":{},"中":{"docs":{},"断":{"docs":{},"产":{"docs":{},"生":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"去":{"docs":{},"激":{"docs":{},"活":{"docs":{},"中":{"docs":{},"断":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"果":{"docs":{},"想":{"docs":{},"要":{"docs":{},"保":{"docs":{},"存":{"docs":{},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"到":{"docs":{},"选":{"docs":{},"中":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"执":{"docs":{},"行":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"操":{"docs":{},"作":{"docs":{},"才":{"docs":{},"行":{"docs":{},"。":{"docs":{},"操":{"docs":{},"作":{"docs":{},"完":{"docs":{},"后":{"docs":{},",":{"docs":{},"你":{"docs":{},"所":{"docs":{},"修":{"docs":{},"改":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"就":{"docs":{},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{},",":{"docs":{},"当":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"其":{"docs":{},"它":{"docs":{},"平":{"docs":{},"台":{"docs":{},"后":{"docs":{},",":{"docs":{},"这":{"docs":{},"个":{"docs":{},"配":{"docs":{},"置":{"docs":{},"依":{"docs":{},"然":{"docs":{},"存":{"docs":{},"在":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"重":{"docs":{},"复":{"docs":{},"第":{"docs":{},"一":{"docs":{},"步":{"docs":{},",":{"docs":{},"更":{"docs":{},"新":{"docs":{},"一":{"docs":{},"下":{"docs":{},"配":{"docs":{},"置":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"先":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"会":{"docs":{},"插":{"docs":{},"入":{"docs":{},"到":{"docs":{},"链":{"docs":{},"表":{"docs":{},"头":{"docs":{},",":{"docs":{},"超":{"docs":{},"时":{"docs":{},"时":{"docs":{},"间":{"docs":{},"比":{"docs":{},"较":{"docs":{},"久":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"会":{"docs":{},"被":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"链":{"docs":{},"表":{"docs":{},"的":{"docs":{},"末":{"docs":{},"尾":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"小":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"精":{"docs":{},"简":{"docs":{},"框":{"docs":{},"架":{"docs":{},":":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}},"此":{"docs":{},"时":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"就":{"docs":{},"进":{"docs":{},"入":{"docs":{},"线":{"docs":{},"程":{"docs":{},"环":{"docs":{},"境":{"docs":{},",":{"docs":{},"开":{"docs":{},"启":{"docs":{},"线":{"docs":{},"程":{"docs":{},"调":{"docs":{},"度":{"docs":{},"生":{"docs":{},"涯":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}},"每":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"执":{"docs":{},"行":{"docs":{},"一":{"docs":{},"段":{"docs":{},"时":{"docs":{},"间":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"其":{"docs":{},"它":{"docs":{},"线":{"docs":{},"程":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{},"这":{"docs":{},"个":{"docs":{},"切":{"docs":{},"换":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"主":{"docs":{},"动":{"docs":{},"的":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"能":{"docs":{},"是":{"docs":{},"被":{"docs":{},"动":{"docs":{},"的":{"docs":{},"。":{"docs":{},"线":{"docs":{},"程":{"docs":{},"在":{"docs":{},"阻":{"docs":{},"塞":{"docs":{},"(":{"docs":{},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{},"和":{"docs":{},"让":{"docs":{},"出":{"docs":{},"(":{"docs":{},"y":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},")":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"是":{"docs":{},"属":{"docs":{},"于":{"docs":{},"线":{"docs":{},"程":{"docs":{},"主":{"docs":{},"动":{"docs":{},"发":{"docs":{},"起":{"docs":{},"切":{"docs":{},"换":{"docs":{},"。":{"docs":{},"在":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"其":{"docs":{},"来":{"docs":{},"记":{"docs":{},"录":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"线":{"docs":{},"程":{"docs":{},"链":{"docs":{},"表":{"docs":{},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},"状":{"docs":{},"态":{"docs":{},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},"栈":{"docs":{},"等":{"docs":{},"基":{"docs":{},"础":{"docs":{},"信":{"docs":{},"息":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"页":{"docs":{},"表":{"docs":{},"都":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"次":{"docs":{},"提":{"docs":{},"交":{"docs":{},",":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}},"获":{"docs":{},"取":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"线":{"docs":{},"程":{"docs":{},"指":{"docs":{},"针":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}},"也":{"docs":{},"表":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"读":{"docs":{},"取":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"默":{"docs":{},"认":{"docs":{},"配":{"docs":{},"置":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},"的":{"docs":{},"值":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"当":{"docs":{},"前":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}},"文":{"docs":{},"件":{"docs":{},"偏":{"docs":{},"移":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"系":{"docs":{},"统":{"docs":{},"运":{"docs":{},"行":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"线":{"docs":{},"程":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"进":{"docs":{},"程":{"docs":{},"i":{"docs":{},"d":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"还":{"docs":{},"有":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}},"一":{"docs":{},"个":{"docs":{},"很":{"docs":{},"重":{"docs":{},"要":{"docs":{},"的":{"docs":{},"地":{"docs":{},"方":{"docs":{},"就":{"docs":{},"是":{"docs":{},"对":{"docs":{},"状":{"docs":{},"态":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"值":{"docs":{},"得":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"获":{"docs":{},"取":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"的":{"docs":{},"索":{"docs":{},"引":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"能":{"docs":{},"自":{"docs":{},"动":{"docs":{},"处":{"docs":{},"理":{"docs":{},"依":{"docs":{},"赖":{"docs":{},"关":{"docs":{},"系":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}},"销":{"docs":{},"毁":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"是":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"线":{"docs":{},"程":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{},"注":{"docs":{},"意":{"docs":{},",":{"docs":{},"销":{"docs":{},"毁":{"docs":{},"不":{"docs":{},"代":{"docs":{},"表":{"docs":{},"把":{"docs":{},"线":{"docs":{},"程":{"docs":{},"从":{"docs":{},"运":{"docs":{},"行":{"docs":{},"队":{"docs":{},"列":{"docs":{},"中":{"docs":{},"摘":{"docs":{},"除":{"docs":{},",":{"docs":{},"只":{"docs":{},"是":{"docs":{},"释":{"docs":{},"放":{"docs":{},"线":{"docs":{},"程":{"docs":{},"占":{"docs":{},"用":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"线":{"docs":{},"程":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{"programing-manual/sched/thread.html":{"ref":"programing-manual/sched/thread.html","tf":0.003424657534246575}}}}}}}},"以":{"docs":{},"及":{"docs":{},"进":{"docs":{},"程":{"docs":{},"标":{"docs":{},"志":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}},"中":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"后":{"docs":{},"的":{"docs":{},"应":{"docs":{},"答":{"docs":{},"处":{"docs":{},"理":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"将":{"docs":{},"这":{"docs":{},"些":{"docs":{},"数":{"docs":{},"据":{"docs":{},"构":{"docs":{},"建":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"顶":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"显":{"docs":{},"然":{"docs":{},"超":{"docs":{},"过":{"docs":{},"了":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"空":{"docs":{},"间":{"docs":{},"。":{"docs":{},"每":{"docs":{},"个":{"docs":{},"进":{"docs":{},"程":{"docs":{},"都":{"docs":{},"有":{"docs":{},"一":{"docs":{},"个":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"加":{"docs":{},"载":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"路":{"docs":{},"径":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}},"那":{"docs":{},"么":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"就":{"docs":{},"只":{"docs":{},"能":{"docs":{},"是":{"docs":{},"在":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}},"就":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"线":{"docs":{},"程":{"docs":{},"里":{"docs":{},"面":{"docs":{},"去":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"及":{"docs":{},"时":{"docs":{},"调":{"docs":{},"度":{"docs":{},"的":{"docs":{},"精":{"docs":{},"度":{"docs":{},"低":{"docs":{},"一":{"docs":{},"点":{"docs":{},"也":{"docs":{},"没":{"docs":{},"有":{"docs":{},"太":{"docs":{},"大":{"docs":{},"影":{"docs":{},"响":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}},"这":{"docs":{},"样":{"docs":{},"才":{"docs":{},"能":{"docs":{},"保":{"docs":{},"证":{"docs":{},"时":{"docs":{},"间":{"docs":{},"的":{"docs":{},"精":{"docs":{},"度":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"参":{"docs":{},"数":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"超":{"docs":{},"时":{"docs":{},"后":{"docs":{},"调":{"docs":{},"用":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}},"产":{"docs":{},"生":{"docs":{},"中":{"docs":{},"断":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"去":{"docs":{},"该":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"保":{"docs":{},"存":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"向":{"docs":{},"量":{"docs":{},"表":{"docs":{},"地":{"docs":{},"址":{"docs":{},"找":{"docs":{},"中":{"docs":{},"断":{"docs":{},"号":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"其":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"根":{"docs":{},"据":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"来":{"docs":{},"判":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},"因":{"docs":{},"为":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"并":{"docs":{},"复":{"docs":{},"制":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"地":{"docs":{},"址":{"docs":{},"都":{"docs":{},"变":{"docs":{},"成":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"自":{"docs":{},"从":{"docs":{},"进":{"docs":{},"入":{"2":{"1":{"docs":{},"世":{"docs":{},"纪":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"的":{"docs":{},"性":{"docs":{},"能":{"docs":{},"就":{"docs":{},"有":{"docs":{},"了":{"docs":{},"瓶":{"docs":{},"颈":{"docs":{},",":{"docs":{},"不":{"docs":{},"再":{"docs":{},"迅":{"docs":{},"猛":{"docs":{},"增":{"docs":{},"长":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"就":{"docs":{},"有":{"docs":{},"人":{"docs":{},"提":{"docs":{},"出":{"docs":{},"多":{"docs":{},"个":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"一":{"docs":{},"起":{"docs":{},"工":{"docs":{},"作":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"来":{"docs":{},"弥":{"docs":{},"补":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"性":{"docs":{},"能":{"docs":{},"的":{"docs":{},"问":{"docs":{},"题":{"docs":{},"。":{"docs":{"programing-manual/sched/smp.html":{"ref":"programing-manual/sched/smp.html","tf":0.0625}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"再":{"docs":{},"去":{"docs":{},"对":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"进":{"docs":{},"行":{"docs":{},"存":{"docs":{},"取":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"是":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}},"创":{"docs":{},"建":{"docs":{},"进":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},"上":{"docs":{},"加":{"docs":{},"载":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"和":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"去":{"docs":{},"执":{"docs":{},"行":{"docs":{},"进":{"docs":{},"程":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"个":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"中":{"docs":{},"断":{"docs":{},"工":{"docs":{},"作":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"入":{"docs":{},"口":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"函":{"docs":{},"数":{"docs":{},"执":{"docs":{},"行":{"docs":{},"时":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"创":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"的":{"docs":{},"工":{"docs":{},"作":{"docs":{},"对":{"docs":{},"象":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"了":{"docs":{},"一":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"工":{"docs":{},"作":{"docs":{},"对":{"docs":{},"象":{"docs":{},",":{"docs":{},"就":{"docs":{},"需":{"docs":{},"要":{"docs":{},"将":{"docs":{},"其":{"docs":{},"加":{"docs":{},"入":{"docs":{},"到":{"docs":{},"某":{"docs":{},"个":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},"中":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"队":{"docs":{},"列":{"docs":{},"和":{"docs":{},"工":{"docs":{},"作":{"docs":{},"对":{"docs":{},"象":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}},"需":{"docs":{},"要":{"docs":{},"指":{"docs":{},"定":{"docs":{},"需":{"docs":{},"要":{"docs":{},"超":{"docs":{},"时":{"docs":{},"的":{"docs":{},"时":{"docs":{},"间":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"条":{"docs":{},"件":{"docs":{},"变":{"docs":{},"量":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"目":{"docs":{},"录":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"到":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}},"前":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"都":{"docs":{},"是":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}},"面":{"docs":{},"有":{"docs":{},"讲":{"docs":{},"到":{"docs":{},"关":{"docs":{},"于":{"docs":{},"全":{"docs":{},"局":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"打":{"docs":{},"开":{"docs":{},"和":{"docs":{},"关":{"docs":{},"闭":{"docs":{},",":{"docs":{},"全":{"docs":{},"局":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"打":{"docs":{},"开":{"docs":{},"是":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}},"即":{"docs":{},"直":{"docs":{},"接":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"是":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"内":{"docs":{},"存":{"docs":{},"只":{"docs":{},"有":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"符":{"docs":{},"号":{"docs":{},"两":{"docs":{},"侧":{"docs":{},"采":{"docs":{},"用":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}},"后":{"docs":{},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"会":{"docs":{},"发":{"docs":{},"生":{"docs":{},"变":{"docs":{},"化":{"docs":{},"。":{"docs":{},"因":{"docs":{},"此":{"docs":{},",":{"docs":{},"为":{"docs":{},"了":{"docs":{},"能":{"docs":{},"够":{"docs":{},"保":{"docs":{},"证":{"docs":{},"访":{"docs":{},"问":{"docs":{},"内":{"docs":{},"核":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"是":{"docs":{},"正":{"docs":{},"确":{"docs":{},"的":{"docs":{},",":{"docs":{},"在":{"docs":{},"映":{"docs":{},"射":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"就":{"docs":{},"是":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"了":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"会":{"docs":{},"通":{"docs":{},"过":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"填":{"docs":{},"写":{"docs":{},"也":{"docs":{},"表":{"docs":{},"项":{"docs":{},",":{"docs":{},"其":{"docs":{},"内":{"docs":{},"容":{"docs":{},"是":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"和":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"属":{"docs":{},"性":{"docs":{},"r":{"docs":{},",":{"docs":{},"w":{"docs":{},",":{"docs":{},"x":{"docs":{},"等":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"进":{"docs":{},"行":{"docs":{},"分":{"docs":{},"行":{"docs":{},",":{"docs":{},"并":{"docs":{},"在":{"docs":{},"下":{"docs":{},"一":{"docs":{},"行":{"docs":{},"都":{"docs":{},"采":{"docs":{},"用":{"docs":{},"缩":{"docs":{},"进":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{},"访":{"docs":{},"问":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"都":{"docs":{},"是":{"docs":{},"新":{"docs":{},"的":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}},"并":{"docs":{},"转":{"docs":{},"换":{"docs":{},"出":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"刷":{"docs":{},"新":{"docs":{},"快":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"中":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"保":{"docs":{},"存":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"究":{"docs":{},"竟":{"docs":{},"是":{"docs":{},"何":{"docs":{},"物":{"docs":{},"?":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}},"转":{"docs":{},"换":{"docs":{},"成":{"docs":{},"那":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}},"那":{"docs":{},"么":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}},"(":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"单":{"docs":{},"元":{"docs":{},")":{"docs":{},"为":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"内":{"docs":{},"存":{"docs":{},"的":{"docs":{},"实":{"docs":{},"现":{"docs":{},"奠":{"docs":{},"定":{"docs":{},"基":{"docs":{},"础":{"docs":{},"。":{"docs":{"programing-manual/process/process.html":{"ref":"programing-manual/process/process.html","tf":0.012658227848101266}}}}}}}}}}}}}}}}}}}}}},"一":{"docs":{},"般":{"docs":{},"在":{"1":{"0":{"0":{"docs":{},"~":{"1":{"0":{"0":{"0":{"docs":{},")":{"docs":{},"次":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"效":{"docs":{},"果":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}},"以":{"docs":{},"上":{"docs":{},"摘":{"docs":{},"自":{"docs":{},"百":{"docs":{},"度":{"docs":{},"百":{"docs":{},"科":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"只":{"docs":{},"能":{"docs":{},"通":{"docs":{},"过":{"docs":{},"系":{"docs":{},"统":{"docs":{},"调":{"docs":{},"用":{"docs":{},"执":{"docs":{},"行":{"docs":{},"内":{"docs":{},"核":{"docs":{},"提":{"docs":{},"供":{"docs":{},"好":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{},"在":{"docs":{"programing-manual/process/syscall.html":{"ref":"programing-manual/process/syscall.html","tf":0.03125}}}}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"对":{"docs":{},"象":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}},"实":{"docs":{},"现":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"是":{"docs":{},"现":{"docs":{},"在":{"docs":{},"不":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"分":{"docs":{},"配":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"而":{"docs":{},"已":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"已":{"docs":{},"经":{"docs":{},"指":{"docs":{},"定":{"docs":{},"了":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"编":{"docs":{},"译":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}},"由":{"docs":{},"于":{"docs":{},"有":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"只":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"暂":{"docs":{},"时":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"完":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},",":{"docs":{},"于":{"docs":{},"是":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"使":{"docs":{},"用":{"docs":{},"保":{"docs":{},"存":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"状":{"docs":{},"态":{"docs":{},",":{"docs":{},"即":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"注":{"docs":{},"册":{"docs":{},"了":{"docs":{},"中":{"docs":{},"断":{"docs":{},"后":{"docs":{},",":{"docs":{},"并":{"docs":{},"不":{"docs":{},"能":{"docs":{},"产":{"docs":{},"生":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"解":{"docs":{},"除":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"屏":{"docs":{},"蔽":{"docs":{},"(":{"docs":{},"u":{"docs":{},"n":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},")":{"docs":{},",":{"docs":{},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"打":{"docs":{},"开":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"除":{"docs":{},"此":{"docs":{},"之":{"docs":{},"外":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"不":{"docs":{},"希":{"docs":{},"望":{"docs":{},"产":{"docs":{},"生":{"docs":{},"该":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"则":{"docs":{},"需":{"docs":{},"要":{"docs":{},"屏":{"docs":{},"蔽":{"docs":{},"某":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},")":{"docs":{},",":{"docs":{},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"关":{"docs":{},"闭":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"意":{"docs":{},",":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"/":{"docs":{},"\"":{"docs":{},"注":{"docs":{},"释":{"docs":{},"只":{"docs":{},"能":{"docs":{},"放":{"docs":{},"到":{"docs":{},"右":{"docs":{},"边":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}},"等":{"docs":{},"机":{"docs":{},"制":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}},"于":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"在":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"内":{"docs":{},"核":{"docs":{},"基":{"docs":{},"础":{"docs":{},"功":{"docs":{},"能":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"实":{"docs":{},"现":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}},"待":{"docs":{},"线":{"docs":{},"程":{"docs":{},"退":{"docs":{},"出":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"进":{"docs":{},"程":{"docs":{},"退":{"docs":{},"出":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"册":{"docs":{},"某":{"docs":{},"个":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"传":{"docs":{},"入":{"docs":{},"中":{"docs":{},"断":{"docs":{},"号":{"docs":{},",":{"docs":{},"绑":{"docs":{},"定":{"docs":{},"中":{"docs":{},"断":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"设":{"docs":{},"置":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},"数":{"docs":{},"据":{"docs":{},",":{"docs":{},"设":{"docs":{},"置":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"名":{"docs":{},"字":{"docs":{},"。":{"docs":{"programing-manual/interrupt/irq.html":{"ref":"programing-manual/interrupt/irq.html","tf":0.01694915254237288}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"够":{"docs":{},"访":{"docs":{},"问":{"docs":{},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"的":{"docs":{},"内":{"docs":{},"存":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{},"返":{"docs":{},"回":{"docs":{},"后":{"docs":{},"开":{"docs":{},"启":{"docs":{},"中":{"docs":{},"断":{"docs":{},"以":{"docs":{},"及":{"docs":{},"设":{"docs":{},"置":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"一":{"docs":{},"个":{"docs":{},"最":{"docs":{},"为":{"docs":{},"核":{"docs":{},"心":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"=":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282},"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.04118715929739552},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.031818181818181815}},"=":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.005451241671714113}}}},"工":{"docs":{},"作":{"docs":{},"队":{"docs":{},"列":{"docs":{},"的":{"docs":{},"优":{"docs":{},"先":{"docs":{},"级":{"docs":{},"如":{"docs":{},"下":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}},"具":{"docs":{},"链":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":10.027027027027026}}}}},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":10}}}}}},"然":{"docs":{},"后":{"docs":{},"激":{"docs":{},"活":{"docs":{},"中":{"docs":{},"断":{"docs":{},"队":{"docs":{},"列":{"docs":{},"工":{"docs":{},"作":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"就":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"本":{"docs":{},"次":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{},"等":{"docs":{},"到":{"docs":{},"没":{"docs":{},"有":{"docs":{},"中":{"docs":{},"断":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"再":{"docs":{},"去":{"docs":{},"从":{"docs":{},"延":{"docs":{},"迟":{"docs":{},"队":{"docs":{},"列":{"docs":{},"中":{"docs":{},"获":{"docs":{},"取":{"docs":{},"一":{"docs":{},"个":{"docs":{},"工":{"docs":{},"作":{"docs":{},"来":{"docs":{},"处":{"docs":{},"理":{"docs":{},"其":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"下":{"docs":{},"半":{"docs":{},"部":{"docs":{},"分":{"docs":{},"处":{"docs":{},"理":{"docs":{},"工":{"docs":{},"作":{"docs":{},"。":{"docs":{"programing-manual/interrupt/delay_queue.html":{"ref":"programing-manual/interrupt/delay_queue.html","tf":0.01282051282051282}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"再":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"物":{"docs":{},"理":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":10.010752688172044}},"是":{"docs":{},"基":{"docs":{},"于":{"docs":{},"系":{"docs":{},"统":{"docs":{},"时":{"docs":{},"钟":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},",":{"docs":{},"精":{"docs":{},"度":{"docs":{},"比":{"docs":{},"较":{"docs":{},"低":{"docs":{},"(":{"1":{"docs":{},"m":{"docs":{},"s":{"docs":{},"~":{"1":{"0":{"docs":{},"m":{"docs":{},"s":{"docs":{},")":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"于":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"休":{"docs":{},"眠":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"对":{"docs":{},"于":{"docs":{},"休":{"docs":{},"眠":{"docs":{},"精":{"docs":{},"度":{"docs":{},"不":{"docs":{},"高":{"docs":{},"的":{"docs":{},"场":{"docs":{},"景":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}},"时":{"docs":{},"钟":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"支":{"docs":{},"持":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"义":{"docs":{},"一":{"docs":{},"个":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"并":{"docs":{},"传":{"docs":{},"入":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}},"标":{"docs":{},"志":{"docs":{},"有":{"docs":{},"多":{"docs":{},"重":{"docs":{},",":{"docs":{},"表":{"docs":{},"明":{"docs":{},"不":{"docs":{},"同":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"。":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}}}}}}}}}}},"表":{"docs":{},"示":{"docs":{},"只":{"docs":{},"超":{"docs":{},"时":{"docs":{},"一":{"docs":{},"次":{"docs":{},",":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}},"周":{"docs":{},"期":{"docs":{},"性":{"docs":{},"地":{"docs":{},"按":{"docs":{},"照":{"docs":{"programing-manual/timer/timer.html":{"ref":"programing-manual/timer/timer.html","tf":0.010752688172043012}}}}}}}}}},"!":{"docs":{},"=":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0015142337976983646}}}},"\"":{"docs":{},"=":{"docs":{},"r":{"docs":{},"\"":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"\"":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"\"":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"\"":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"\"":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"_":{"docs":{},"\"":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"{":{"docs":{},"\"":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"!":{"docs":{},"\"":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.00909090909090909}}}},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}},"%":{"0":{"docs":{},"\"":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"p":{"docs":{},"\"":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"x":{"docs":{},"\"":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}},"`":{"docs":{},"p":{"docs":{},"c":{"docs":{},"`":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"r":{"docs":{},"a":{"docs":{},"`":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"s":{"docs":{},"e":{"docs":{},"p":{"docs":{},"c":{"docs":{},"`":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}},"p":{"docs":{},"`":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"`":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"j":{"8":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563}}},"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0018170805572380376}},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"h":{"docs":{},"u":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.003331314354936402},"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.007352941176470588}}}}}}}},"n":{"docs":{},"是":{"docs":{},"多":{"docs":{},"线":{"docs":{},"程":{"docs":{},"编":{"docs":{},"译":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}},",":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563}}}}}}}}}}},"~":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"k":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"s":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}}}}}}}}}}}}}}},"–":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}}},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"切":{"docs":{},"换":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}},"是":{"docs":{},"多":{"docs":{},"线":{"docs":{},"程":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"根":{"docs":{},"基":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},"分":{"docs":{},"为":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"的":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},",":{"docs":{},"从":{"docs":{},"当":{"docs":{},"前":{"docs":{},"线":{"docs":{},"程":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"下":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"图":{"docs":{},"为":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"状":{"docs":{},"态":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"(":{"docs":{},"r":{"docs":{},"v":{"3":{"2":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}},"6":{"4":{"docs":{},")":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"与":{"docs":{},"大":{"docs":{},"多":{"docs":{},"数":{"docs":{},"指":{"docs":{},"令":{"docs":{},"集":{"docs":{},"相":{"docs":{},"比":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"串":{"docs":{},"口":{"docs":{},"可":{"docs":{},"以":{"docs":{},"配":{"docs":{},"置":{"docs":{},"为":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"来":{"docs":{},"输":{"docs":{},"出":{"docs":{},"是":{"docs":{},"非":{"docs":{},"常":{"docs":{},"方":{"docs":{},"便":{"docs":{},"的":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"输":{"docs":{},"入":{"docs":{},"输":{"docs":{},"出":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}},"事":{"docs":{},"实":{"docs":{},"上":{"docs":{},",":{"docs":{},"三":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"每":{"docs":{},"个":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"中":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"号":{"docs":{},"可":{"docs":{},"描":{"docs":{},"述":{"docs":{},"一":{"docs":{},"个":{"docs":{},"二":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"从":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}},"而":{"docs":{},"得":{"docs":{},"出":{"docs":{},"了":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"号":{"docs":{},"和":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"所":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"码":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"角":{"docs":{},"度":{"docs":{},",":{"docs":{},"建":{"docs":{},"议":{"docs":{},"每":{"docs":{},"个":{"docs":{},"大":{"docs":{},"括":{"docs":{},"号":{"docs":{},"单":{"docs":{},"独":{"docs":{},"占":{"docs":{},"用":{"docs":{},"一":{"docs":{},"行":{"docs":{},",":{"docs":{},"而":{"docs":{},"不":{"docs":{},"是":{"docs":{},"跟":{"docs":{},"在":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"后":{"docs":{},"面":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"会":{"docs":{},"先":{"docs":{},"计":{"docs":{},"算":{"docs":{},"需":{"docs":{},"要":{"docs":{},"映":{"docs":{},"射":{"docs":{},"的":{"docs":{},"页":{"docs":{},"面":{"docs":{},"数":{"docs":{},"量":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"循":{"docs":{},"环":{"docs":{},"映":{"docs":{},"射":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}},"减":{"docs":{},"少":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"引":{"docs":{},"用":{"docs":{},"计":{"docs":{},"数":{"docs":{},",":{"docs":{},"为":{"0":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"才":{"docs":{},"真":{"docs":{},"正":{"docs":{},"释":{"docs":{},"放":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"位":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}},"为":{"docs":{},"一":{"docs":{},"级":{"docs":{},"索":{"docs":{},"引":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"三":{"docs":{},"级":{"docs":{},"索":{"docs":{},"引":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}},"二":{"docs":{},"级":{"docs":{},"索":{"docs":{},"引":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}},"保":{"docs":{},"存":{"docs":{},"和":{"docs":{},"恢":{"docs":{},"复":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"做":{"docs":{},"置":{"docs":{},"位":{"docs":{},"和":{"docs":{},"清":{"docs":{},"理":{"docs":{},"的":{"docs":{},"操":{"docs":{},"作":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"的":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"页":{"docs":{},"号":{"docs":{},"分":{"docs":{},"为":{"docs":{},"三":{"docs":{},"个":{"docs":{},"等":{"docs":{},"长":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"扩":{"docs":{},"展":{"docs":{},",":{"docs":{},"实":{"docs":{},"现":{"docs":{},"了":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}}}}},"索":{"docs":{},"引":{"docs":{},"的":{"docs":{},",":{"docs":{},"因":{"docs":{},"此":{"docs":{},"有":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"。":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}},"作":{"docs":{},"为":{"docs":{},"偏":{"docs":{},"移":{"docs":{},"在":{"docs":{},"第":{"docs":{},"一":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"要":{"docs":{},"访":{"docs":{},"问":{"docs":{},"位":{"docs":{},"置":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"号":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}},"三":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"第":{"docs":{},"二":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"号":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}},"二":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"中":{"docs":{},"找":{"docs":{},"到":{"docs":{},"第":{"docs":{},"一":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"号":{"docs":{},";":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"的":{"docs":{},"固":{"docs":{},"件":{"docs":{},",":{"docs":{},"q":{"docs":{},"e":{"docs":{},"m":{"docs":{},"u":{"docs":{},"_":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"v":{"6":{"4":{"docs":{},"平":{"docs":{},"台":{"docs":{},"选":{"docs":{},"择":{"docs":{},"了":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}},"例":{"docs":{},"如":{"docs":{},"在":{"docs":{},"页":{"docs":{},"目":{"docs":{},"录":{"docs":{},"表":{"docs":{},"中":{"docs":{},",":{"docs":{},"会":{"docs":{},"有":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"发":{"docs":{},"现":{"docs":{},"该":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"为":{"docs":{},"空":{"docs":{},",":{"docs":{},"则":{"docs":{},"会":{"docs":{},"分":{"docs":{},"配":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},",":{"docs":{},"作":{"docs":{},"为":{"docs":{},"下":{"docs":{},"一":{"docs":{},"级":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"m":{"docs":{},",":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},",":{"docs":{},"f":{"docs":{},"s":{"docs":{},"等":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}},"采":{"docs":{},"用":{"docs":{},"如":{"docs":{},"上":{"docs":{},"的":{"docs":{},"形":{"docs":{},"式":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294},"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.02702702702702703}}}}},"保":{"docs":{},"存":{"docs":{},"了":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0009085402786190188}}},"的":{"docs":{},",":{"docs":{},"其":{"docs":{},"格":{"docs":{},"式":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"切":{"docs":{},"换":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"会":{"docs":{},"模":{"docs":{},"拟":{"docs":{},"一":{"docs":{},"次":{"docs":{},"异":{"docs":{},"常":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"后":{"docs":{},"就":{"docs":{},"到":{"docs":{},"这":{"docs":{},"个":{"docs":{},"异":{"docs":{},"常":{"docs":{},"地":{"docs":{},"址":{"docs":{},"处":{"docs":{},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"它":{"docs":{},"是":{"docs":{},"返":{"docs":{},"回":{"docs":{},"地":{"docs":{},"址":{"docs":{},"的":{"docs":{},"意":{"docs":{},"思":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"线":{"docs":{},"程":{"docs":{},"返":{"docs":{},"回":{"docs":{},"后":{"docs":{},"就":{"docs":{},"去":{"docs":{},"执":{"docs":{},"行":{"docs":{},"该":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"做":{"docs":{},"了":{"docs":{},"一":{"docs":{},"些":{"docs":{},"兼":{"docs":{},"容":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"起":{"docs":{},"来":{"docs":{},"比":{"docs":{},"较":{"docs":{},"简":{"docs":{},"单":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"入":{"docs":{},"口":{"docs":{},"地":{"docs":{},"址":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"在":{"docs":{},"链":{"docs":{},"接":{"docs":{},"脚":{"docs":{},"本":{"docs":{},"中":{"docs":{},"写":{"docs":{},"的":{"docs":{},"是":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"关":{"docs":{},"闭":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"目":{"docs":{},"录":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"具":{"docs":{},"体":{"docs":{},"字":{"docs":{},"段":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{},"如":{"docs":{},"下":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"来":{"docs":{},"说":{"docs":{},",":{"docs":{},"假":{"docs":{},"设":{"docs":{},"我":{"docs":{},"们":{"docs":{},"有":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}},"刚":{"docs":{},"才":{"docs":{},"我":{"docs":{},"们":{"docs":{},"提":{"docs":{},"到":{"docs":{},"若":{"docs":{},"页":{"docs":{},"表":{"docs":{},"项":{"docs":{},"满":{"docs":{},"足":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"线":{"docs":{},"程":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"是":{"docs":{},"在":{"docs":{},"栈":{"docs":{},"上":{"docs":{},"构":{"docs":{},"建":{"docs":{},"一":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},",":{"docs":{},"当":{"docs":{},"第":{"docs":{},"一":{"docs":{},"次":{"docs":{},"切":{"docs":{},"换":{"docs":{},"到":{"docs":{},"该":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"就":{"docs":{},"会":{"docs":{},"使":{"docs":{},"用":{"docs":{},"栈":{"docs":{},"中":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"环":{"docs":{},"境":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}},"条":{"docs":{},"件":{"docs":{},"变":{"docs":{},"量":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"取":{"docs":{},"出":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"面":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"加":{"docs":{},"上":{"docs":{},"页":{"docs":{},"内":{"docs":{},"偏":{"docs":{},"移":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}},"号":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"唤":{"docs":{},"醒":{"docs":{},"后":{"docs":{},",":{"docs":{},"应":{"docs":{},"用":{"docs":{},"核":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"应":{"docs":{},"用":{"docs":{},"核":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"休":{"docs":{},"眠":{"docs":{},"等":{"docs":{},"待":{"docs":{},"条":{"docs":{},"件":{"docs":{},"的":{"docs":{},"全":{"docs":{},"部":{"docs":{},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"单":{"docs":{},"个":{"docs":{},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}},"因":{"docs":{},"此":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"每":{"docs":{},"个":{"docs":{},"页":{"docs":{},"表":{"docs":{},"大":{"docs":{},"小":{"docs":{},"都":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}},"字":{"docs":{},"节":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"它":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"来":{"docs":{},"做":{"docs":{},"页":{"docs":{},"表":{"docs":{},"遍":{"docs":{},"历":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"应":{"docs":{},"用":{"docs":{},"核":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"设":{"docs":{},"置":{"docs":{},"中":{"docs":{},"断":{"docs":{},"表":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"中":{"docs":{},"断":{"docs":{},"控":{"docs":{},"制":{"docs":{},"器":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"该":{"docs":{},"成":{"docs":{},"立":{"docs":{},",":{"docs":{},"因":{"docs":{},"为":{"docs":{},"它":{"docs":{},"们":{"docs":{},"指":{"docs":{},"向":{"docs":{},"了":{"docs":{},"下":{"docs":{},"一":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"说":{"docs":{},"明":{"docs":{},"代":{"docs":{},"码":{"docs":{},"变":{"docs":{},"动":{"docs":{},"的":{"docs":{},"动":{"docs":{},"机":{"docs":{},",":{"docs":{},"以":{"docs":{},"及":{"docs":{},"与":{"docs":{},"以":{"docs":{},"前":{"docs":{},"行":{"docs":{},"为":{"docs":{},"的":{"docs":{},"对":{"docs":{},"比":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}},"引":{"docs":{},"导":{"docs":{},"核":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"内":{"docs":{},"核":{"docs":{},",":{"docs":{},"在":{"docs":{},"内":{"docs":{},"核":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"会":{"docs":{},"进":{"docs":{},"入":{"docs":{},"启":{"docs":{},"动":{"docs":{},"应":{"docs":{},"用":{"docs":{},"核":{"docs":{},"的":{"docs":{},"阶":{"docs":{},"段":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"截":{"docs":{},"至":{"2":{"0":{"1":{"7":{"docs":{},"年":{"5":{"docs":{},"月":{"docs":{},",":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"执":{"docs":{},"行":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"结":{"docs":{},"束":{"docs":{},"后":{"docs":{},",":{"docs":{},"会":{"docs":{},"从":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"跳":{"docs":{},"转":{"docs":{},"到":{"docs":{},"位":{"docs":{},"于":{"docs":{},"监":{"docs":{},"护":{"docs":{},"者":{"docs":{},"模":{"docs":{},"式":{"docs":{},"的":{"docs":{},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},",":{"docs":{},"并":{"docs":{},"且":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"入":{"docs":{},"口":{"docs":{},"程":{"docs":{},"序":{"docs":{},"的":{"docs":{},"移":{"docs":{},"植":{"docs":{},"就":{"docs":{},"完":{"docs":{},"成":{"docs":{},"了":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},"用":{"docs":{},"户":{"docs":{},"态":{"docs":{},"程":{"docs":{},"序":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}},"控":{"docs":{},"制":{"docs":{},"的":{"docs":{},",":{"docs":{},"置":{"docs":{},"为":{"1":{"docs":{},"则":{"docs":{},"表":{"docs":{},"示":{"docs":{},"使":{"docs":{},"能":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"置":{"docs":{},"为":{"0":{"docs":{},"则":{"docs":{},"表":{"docs":{},"示":{"docs":{},"禁":{"docs":{},"用":{"docs":{},"中":{"docs":{},"断":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"唤":{"docs":{},"醒":{"docs":{},"核":{"docs":{},"心":{"docs":{},"功":{"docs":{},"能":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"交":{"docs":{},"规":{"docs":{},"则":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":10}}}}}},"操":{"docs":{},"作":{"docs":{},"系":{"docs":{},"统":{"docs":{},"更":{"docs":{},"多":{"docs":{},"运":{"docs":{},"行":{"docs":{},"在":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"数":{"docs":{},"组":{"docs":{},"中":{"docs":{},",":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},"[":{"0":{"docs":{},"]":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"docs":{}}}}}}}}}}}}}},"新":{"docs":{},"架":{"docs":{},"构":{"docs":{},"的":{"docs":{},"移":{"docs":{},"植":{"docs":{},",":{"docs":{},"都":{"docs":{},"是":{"docs":{},"按":{"docs":{},"照":{"docs":{},"一":{"docs":{},"套":{"docs":{},"统":{"docs":{},"一":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{},"去":{"docs":{},"实":{"docs":{},"现":{"docs":{},"的":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}},"更":{"docs":{},"贴":{"docs":{},"近":{"docs":{},",":{"docs":{},"也":{"docs":{},"不":{"docs":{},"用":{"docs":{},"管":{"docs":{},"太":{"docs":{},"多":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"需":{"docs":{},"要":{"docs":{},"做":{"docs":{},"的":{"docs":{},"事":{"docs":{},"情":{"docs":{},"。":{"docs":{},"通":{"docs":{},"常":{"docs":{},",":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}},"新":{"docs":{},"配":{"docs":{},"置":{"docs":{},"文":{"docs":{},"件":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"用":{"docs":{},"于":{"docs":{},"固":{"docs":{},"件":{"docs":{},"程":{"docs":{},"序":{"docs":{},"代":{"docs":{},"码":{"docs":{},"执":{"docs":{},"行":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}},"模":{"docs":{},"式":{"docs":{},"中":{"docs":{},"我":{"docs":{},"们":{"docs":{},"采":{"docs":{},"用":{"docs":{},"三":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},",":{"docs":{},"即":{"docs":{},"将":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"去":{"docs":{},"调":{"docs":{},"用":{"docs":{},"内":{"docs":{},"核":{"docs":{},"提":{"docs":{},"供":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"的":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"中":{"docs":{},"断":{"docs":{},",":{"docs":{},"然":{"docs":{},"后":{"docs":{},"再":{"docs":{},"设":{"docs":{},"置":{"docs":{},"超":{"docs":{},"时":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"因":{"docs":{},"为":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},"是":{"docs":{},"在":{"docs":{},"内":{"docs":{},"核":{"docs":{},"中":{"docs":{},"完":{"docs":{},"成":{"docs":{},"的":{"docs":{},")":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"进":{"docs":{},"入":{"docs":{},"内":{"docs":{},"核":{"docs":{},"。":{"docs":{},"内":{"docs":{},"核":{"docs":{},"只":{"docs":{},"需":{"docs":{},"要":{"docs":{},"链":{"docs":{},"接":{"docs":{},"到":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"降":{"docs":{},"低":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"度":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"正":{"docs":{},"好":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"物":{"docs":{},"理":{"docs":{},"页":{"docs":{},"的":{"docs":{},"大":{"docs":{},"小":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}},"特":{"docs":{},"权":{"docs":{},"模":{"docs":{},"式":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}},"级":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"命":{"docs":{},"名":{"docs":{},"规":{"docs":{},"则":{"docs":{},",":{"docs":{},"特":{"docs":{},"权":{"docs":{},"模":{"docs":{},"式":{"docs":{},"+":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"名":{"docs":{},"字":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"只":{"docs":{},"能":{"docs":{},"在":{"docs":{},"该":{"docs":{},"特":{"docs":{},"权":{"docs":{},"级":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"比":{"docs":{},"如":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},",":{"docs":{},"在":{"docs":{},"机":{"docs":{},"器":{"docs":{},"模":{"docs":{},"式":{"docs":{},"有":{"docs":{},"m":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},",":{"docs":{},"监":{"docs":{},"管":{"docs":{},"模":{"docs":{},"式":{"docs":{},"有":{"docs":{},"s":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"监":{"docs":{},"管":{"docs":{},"者":{"docs":{},"模":{"docs":{},"式":{"docs":{},"的":{"docs":{},"页":{"docs":{},"表":{"docs":{},"的":{"docs":{},"地":{"docs":{},"址":{"docs":{},"是":{"docs":{},"由":{"docs":{},"地":{"docs":{},"址":{"docs":{},"转":{"docs":{},"换":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},",":{"docs":{},"这":{"docs":{},"样":{"docs":{},"可":{"docs":{},"以":{"docs":{},"和":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}},"硬":{"docs":{},"件":{"docs":{},"回":{"docs":{},"填":{"docs":{},"根":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"时":{"docs":{},"钟":{"docs":{},"会":{"docs":{},"按":{"docs":{},"照":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"频":{"docs":{},"率":{"docs":{},"去":{"docs":{},"增":{"docs":{},"长":{"docs":{},"当":{"docs":{},"前":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{},"寄":{"docs":{},"存":{"docs":{},"器":{"docs":{},"的":{"docs":{},"值":{"docs":{},",":{"docs":{},"在":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"移":{"docs":{},"植":{"docs":{},"一":{"docs":{},"个":{"docs":{},"新":{"docs":{},"的":{"docs":{},"平":{"docs":{},"台":{"docs":{},"需":{"docs":{},"要":{"docs":{},"实":{"docs":{},"现":{"docs":{},"如":{"docs":{},"下":{"docs":{},"内":{"docs":{},"容":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},"过":{"docs":{},"程":{"docs":{},"是":{"docs":{},"需":{"docs":{},"要":{"docs":{},"慢":{"docs":{},"慢":{"docs":{},"琢":{"docs":{},"磨":{"docs":{},",":{"docs":{},"长":{"docs":{},"期":{"docs":{},"积":{"docs":{},"累":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"实":{"docs":{},"现":{"docs":{},"更":{"docs":{},"好":{"docs":{},"的":{"docs":{},"代":{"docs":{},"码":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}},"动":{"docs":{},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"结":{"docs":{},"束":{"docs":{},"时":{"docs":{},"执":{"docs":{},"行":{"docs":{},"的":{"docs":{},"函":{"docs":{},"数":{"docs":{},"使":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},"构":{"docs":{},"体":{"docs":{},"命":{"docs":{},"名":{"docs":{},"使":{"docs":{},"用":{"docs":{},"大":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"成":{"docs":{},"员":{"docs":{},"使":{"docs":{},"用":{"docs":{},"小":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},"命":{"docs":{},"名":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"成":{"docs":{},"员":{"docs":{},"是":{"docs":{},"函":{"docs":{},"数":{"docs":{},"指":{"docs":{},"针":{"docs":{},",":{"docs":{},"则":{"docs":{},"使":{"docs":{},"用":{"docs":{},"大":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"类":{"docs":{},"型":{"docs":{},"定":{"docs":{},"义":{"docs":{},"是":{"docs":{},"为":{"docs":{},"了":{"docs":{},"消":{"docs":{},"除":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"关":{"docs":{},"键":{"docs":{},"字":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"和":{"docs":{},"结":{"docs":{},"构":{"docs":{},"体":{"docs":{},"名":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"尾":{"docs":{},"不":{"docs":{},"加":{"docs":{},"句":{"docs":{},"号":{"docs":{},"(":{"docs":{},".":{"docs":{},")":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}},"至":{"docs":{},"于":{"docs":{},"在":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}},"计":{"docs":{},"时":{"docs":{},"器":{"docs":{},"时":{"docs":{},"钟":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0006056935190793458}},"用":{"docs":{},"于":{"docs":{},"驱":{"docs":{},"动":{"docs":{},"多":{"docs":{},"线":{"docs":{},"程":{"docs":{},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},"和":{"docs":{},"内":{"docs":{},"核":{"docs":{},"定":{"docs":{},"时":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}},"记":{"docs":{},"录":{"docs":{},"了":{"docs":{},"当":{"docs":{},"前":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"核":{"docs":{},"心":{"docs":{},"的":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}},"该":{"docs":{},"代":{"docs":{},"码":{"docs":{},"简":{"docs":{},"单":{"docs":{},"地":{"docs":{},"设":{"docs":{},"置":{"docs":{},"了":{"docs":{},"栈":{"docs":{},"就":{"docs":{},"进":{"docs":{},"入":{"docs":{},"了":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}},"函":{"docs":{},"数":{"docs":{},"最":{"docs":{},"后":{"docs":{},"返":{"docs":{},"回":{"docs":{},"的":{"docs":{},"是":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}},"操":{"docs":{},"作":{"docs":{},"只":{"docs":{},"是":{"docs":{},"多":{"docs":{},"了":{"docs":{},"对":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"项":{"docs":{},"目":{"2":{"0":{"1":{"0":{"docs":{},"年":{"docs":{},"始":{"docs":{},"于":{"docs":{},"加":{"docs":{},"州":{"docs":{},"大":{"docs":{},"学":{"docs":{},"伯":{"docs":{},"克":{"docs":{},"利":{"docs":{},"分":{"docs":{},"校":{"docs":{},",":{"docs":{},"但":{"docs":{},"许":{"docs":{},"多":{"docs":{},"贡":{"docs":{},"献":{"docs":{},"者":{"docs":{},"是":{"docs":{},"该":{"docs":{},"大":{"docs":{},"学":{"docs":{},"以":{"docs":{},"外":{"docs":{},"的":{"docs":{},"志":{"docs":{},"愿":{"docs":{},"者":{"docs":{},"和":{"docs":{},"行":{"docs":{},"业":{"docs":{},"工":{"docs":{},"作":{"docs":{},"者":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"课":{"docs":{},"程":{"docs":{},")":{"docs":{},"来":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"多":{"docs":{},"级":{"docs":{},"页":{"docs":{},"表":{"docs":{},"原":{"docs":{},"理":{"docs":{},"的":{"docs":{},"介":{"docs":{},"绍":{"docs":{},":":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"后":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"让":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}},"都":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}},"会":{"docs":{},"被":{"docs":{},"映":{"docs":{},"射":{"docs":{},"成":{"docs":{},"索":{"docs":{},"引":{"docs":{},",":{"docs":{},"相":{"docs":{},"当":{"docs":{},"于":{"docs":{},"是":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}},"包":{"docs":{},"括":{"docs":{},"两":{"docs":{},"个":{"docs":{},"部":{"docs":{},"分":{"docs":{},":":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"和":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}},"针":{"docs":{},"对":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}},"函":{"docs":{},"数":{"docs":{},"单":{"docs":{},"元":{"docs":{},"进":{"docs":{},"行":{"docs":{},"测":{"docs":{},"试":{"docs":{},",":{"docs":{},"测":{"docs":{},"试":{"docs":{},"函":{"docs":{},"数":{"docs":{},"的":{"docs":{},"基":{"docs":{},"本":{"docs":{},"功":{"docs":{},"能":{"docs":{},",":{"docs":{},"稳":{"docs":{},"定":{"docs":{},"性":{"docs":{},",":{"docs":{},"健":{"docs":{},"壮":{"docs":{},"性":{"docs":{},",":{"docs":{},"覆":{"docs":{},"盖":{"docs":{},"率":{"docs":{},"。":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"非":{"docs":{},"叶":{"docs":{},"子":{"docs":{},"页":{"docs":{},"面":{"docs":{},",":{"docs":{},"就":{"docs":{},"是":{"docs":{},"页":{"docs":{},"表":{"docs":{},",":{"docs":{},"在":{"docs":{},"释":{"docs":{},"放":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"调":{"docs":{},"用":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}},"预":{"docs":{},"留":{"docs":{},"一":{"docs":{},"个":{"docs":{},"上":{"docs":{},"下":{"docs":{},"文":{"docs":{},"空":{"docs":{},"间":{"docs":{},"后":{"docs":{},",":{"docs":{},"设":{"docs":{},"置":{"docs":{},"参":{"docs":{},"数":{"docs":{},"为":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}},"首":{"docs":{},"先":{"docs":{},"会":{"docs":{},"释":{"docs":{},"放":{"docs":{},"叶":{"docs":{},"子":{"docs":{},"页":{"docs":{},"面":{"docs":{},",":{"docs":{},"也":{"docs":{},"就":{"docs":{},"是":{"docs":{},"虚":{"docs":{},"拟":{"docs":{},"地":{"docs":{},"址":{"docs":{},"最":{"docs":{},"终":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"物":{"docs":{},"理":{"docs":{},"地":{"docs":{},"址":{"docs":{},",":{"docs":{},"而":{"docs":{},"页":{"docs":{},"表":{"docs":{},"是":{"docs":{},"非":{"docs":{},"叶":{"docs":{},"子":{"docs":{},"页":{"docs":{},"面":{"docs":{},"。":{"docs":{"programing-manual/port/riscv/riscv.html":{"ref":"programing-manual/port/riscv/riscv.html","tf":0.0003028467595396729}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"]":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.01680672268907563}}},"z":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176}}},"年":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}},"推":{"docs":{},"出":{"docs":{},"的":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099}}}}}},"运":{"docs":{},"行":{"docs":{},"方":{"docs":{},"法":{"docs":{"programing-manual/platform/i386.html":{"ref":"programing-manual/platform/i386.html","tf":0.01098901098901099},"programing-manual/platform/qemu_riscv64.html":{"ref":"programing-manual/platform/qemu_riscv64.html","tf":0.014705882352941176},"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}},"勘":{"docs":{},"智":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}},"双":{"docs":{},"核":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}},"硬":{"docs":{},"件":{"5":{"1":{"2":{"docs":{},"点":{"1":{"6":{"docs":{},"位":{"docs":{},"复":{"docs":{},"数":{"docs":{},"f":{"docs":{},"f":{"docs":{},"t":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"精":{"docs":{},"度":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}},"片":{"docs":{},"上":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"直":{"docs":{},"接":{"docs":{},"内":{"docs":{},"存":{"docs":{},"存":{"docs":{},"取":{"docs":{},"控":{"docs":{},"制":{"docs":{},"器":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}},"神":{"docs":{},"经":{"docs":{},"网":{"docs":{},"络":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"(":{"docs":{},"k":{"docs":{},"p":{"docs":{},"u":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}}}},"阵":{"docs":{},"列":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}},"音":{"docs":{},"频":{"docs":{},"处":{"docs":{},"理":{"docs":{},"器":{"docs":{},"(":{"docs":{},"a":{"docs":{},"p":{"docs":{},"u":{"docs":{},")":{"docs":{"programing-manual/platform/k210.html":{"ref":"programing-manual/platform/k210.html","tf":0.008403361344537815}}}}}}}}}}}},"休":{"docs":{},"眠":{"docs":{},"等":{"docs":{},"待":{"docs":{},"条":{"docs":{},"件":{"docs":{},"变":{"docs":{},"量":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}},"写":{"docs":{},"入":{"docs":{},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}},"参":{"docs":{},"考":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{},"套":{"docs":{},"接":{"docs":{},"字":{"docs":{},"接":{"docs":{},"口":{"docs":{},"设":{"docs":{},"计":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}},"图":{"docs":{},"形":{"docs":{},"系":{"docs":{},"统":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"填":{"docs":{},"充":{"docs":{},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"复":{"docs":{},"制":{"docs":{},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"安":{"docs":{},"全":{"docs":{},"管":{"docs":{},"理":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"尝":{"docs":{},"试":{"docs":{},"获":{"docs":{},"取":{"docs":{},"互":{"docs":{},"斥":{"docs":{},"体":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}},"恢":{"docs":{},"复":{"docs":{},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"打":{"docs":{},"开":{"docs":{},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"目":{"docs":{},"录":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"挂":{"docs":{},"起":{"docs":{},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"暂":{"docs":{},"不":{"docs":{},"设":{"docs":{},"计":{"docs":{},",":{"docs":{},"等":{"docs":{},"内":{"docs":{},"核":{"docs":{},"基":{"docs":{},"本":{"docs":{},"功":{"docs":{},"能":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"再":{"docs":{},"设":{"docs":{},"计":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"枢":{"docs":{},"纽":{"docs":{},"系":{"docs":{},"统":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"检":{"docs":{},"查":{"docs":{},"文":{"docs":{},"件":{"docs":{},"结":{"docs":{},"束":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0051813471502590676}}}}}}}},"清":{"docs":{},"空":{"docs":{},"内":{"docs":{},"存":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"索":{"docs":{},"引":{"docs":{},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"终":{"docs":{},"止":{"docs":{},"线":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"进":{"docs":{},"程":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"网":{"docs":{},"络":{"docs":{},"系":{"docs":{},"统":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"读":{"docs":{},"取":{"docs":{},"文":{"docs":{},"件":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"目":{"docs":{},"录":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}},"设":{"docs":{},"备":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}},"重":{"docs":{},"置":{"docs":{},"读":{"docs":{},"取":{"docs":{},"位":{"docs":{},"置":{"docs":{"programing-manual/user/api.html":{"ref":"programing-manual/user/api.html","tf":0.0025906735751295338}}}}}}}},"\\":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.011029411764705883}}},"代":{"docs":{},"码":{"docs":{},"风":{"docs":{},"格":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":10}}}},"提":{"docs":{},"交":{"docs":{},"日":{"docs":{},"志":{"docs":{},"规":{"docs":{},"则":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}},"匹":{"docs":{},"配":{"docs":{},"的":{"docs":{},"大":{"docs":{},"括":{"docs":{},"号":{"docs":{},"单":{"docs":{},"独":{"docs":{},"占":{"docs":{},"用":{"docs":{},"一":{"docs":{},"行":{"docs":{},",":{"docs":{},"代":{"docs":{},"码":{"docs":{},"阅":{"docs":{},"读":{"docs":{},"起":{"docs":{},"来":{"docs":{},"就":{"docs":{},"会":{"docs":{},"有":{"docs":{},"相":{"docs":{},"应":{"docs":{},"的":{"docs":{},"层":{"docs":{},"次":{"docs":{},"而":{"docs":{},"不":{"docs":{},"会":{"docs":{},"容":{"docs":{},"易":{"docs":{},"出":{"docs":{},"现":{"docs":{},"混":{"docs":{},"淆":{"docs":{},"的":{"docs":{},"情":{"docs":{},"况":{"docs":{},"。":{"docs":{},"空":{"docs":{},"格":{"docs":{},"建":{"docs":{},"议":{"docs":{},"在":{"docs":{},"非":{"docs":{},"函":{"docs":{},"数":{"docs":{},"方":{"docs":{},"式":{"docs":{},"的":{"docs":{},"括":{"docs":{},"号":{"docs":{},"调":{"docs":{},"用":{"docs":{},"前":{"docs":{},"留":{"docs":{},"一":{"docs":{},"个":{"docs":{},"空":{"docs":{},"格":{"docs":{},"以":{"docs":{},"和":{"docs":{},"前":{"docs":{},"面":{"docs":{},"的":{"docs":{},"进":{"docs":{},"行":{"docs":{},"区":{"docs":{},"分":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"变":{"docs":{},"量":{"docs":{},"采":{"docs":{},"用":{"docs":{},"小":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},"命":{"docs":{},"名":{"docs":{},"风":{"docs":{},"格":{"docs":{},",":{"docs":{},"即":{"docs":{},"首":{"docs":{},"字":{"docs":{},"母":{"docs":{},"小":{"docs":{},"写":{"docs":{},",":{"docs":{},"后":{"docs":{},"续":{"docs":{},"单":{"docs":{},"词":{"docs":{},"首":{"docs":{},"字":{"docs":{},"母":{"docs":{},"大":{"docs":{},"写":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"唯":{"docs":{},"一":{"docs":{},"的":{"docs":{},"例":{"docs":{},"外":{"docs":{},"是":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}},"建":{"docs":{},"议":{"docs":{},"在":{"docs":{},"括":{"docs":{},"号":{"docs":{},"前":{"docs":{},"留":{"docs":{},"出":{"docs":{},"一":{"docs":{},"个":{"docs":{},"空":{"docs":{},"格":{"docs":{},"(":{"docs":{},"涉":{"docs":{},"及":{"docs":{},"的":{"docs":{},"包":{"docs":{},"括":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}},"总":{"docs":{},"结":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},"枚":{"docs":{},"举":{"docs":{},"结":{"docs":{},"构":{"docs":{},"名":{"docs":{},"也":{"docs":{},"是":{"docs":{},"用":{"docs":{},"大":{"docs":{},"驼":{"docs":{},"峰":{"docs":{},",":{"docs":{},"枚":{"docs":{},"举":{"docs":{},"成":{"docs":{},"员":{"docs":{},"使":{"docs":{},"用":{"docs":{},"全":{"docs":{},"大":{"docs":{},"写":{"docs":{},",":{"docs":{},"单":{"docs":{},"词":{"docs":{},"间":{"docs":{},"用":{"docs":{},"\"":{"docs":{},"_":{"docs":{},"\"":{"docs":{},"隔":{"docs":{},"开":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"源":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"不":{"docs":{},"应":{"docs":{},"该":{"docs":{},"过":{"docs":{},"多":{"docs":{},",":{"docs":{},"更":{"docs":{},"多":{"docs":{},"的":{"docs":{},"说":{"docs":{},"明":{"docs":{},"应":{"docs":{},"该":{"docs":{},"是":{"docs":{},"代":{"docs":{},"码":{"docs":{},"做":{"docs":{},"了":{"docs":{},"什":{"docs":{},"么":{"docs":{},",":{"docs":{},"仅":{"docs":{},"当":{"docs":{},"个":{"docs":{},"别":{"docs":{},"关":{"docs":{},"键":{"docs":{},"点":{"docs":{},"才":{"docs":{},"需":{"docs":{},"要":{"docs":{},"一":{"docs":{},"些":{"docs":{},"相":{"docs":{},"应":{"docs":{},"提":{"docs":{},"示":{"docs":{},"性":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"以":{"docs":{},"解":{"docs":{},"释":{"docs":{},"一":{"docs":{},"段":{"docs":{},"复":{"docs":{},"杂":{"docs":{},"的":{"docs":{},"算":{"docs":{},"法":{"docs":{},"它":{"docs":{},"是":{"docs":{},"如":{"docs":{},"何":{"docs":{},"工":{"docs":{},"作":{"docs":{},"的":{"docs":{},"。":{"docs":{},"对":{"docs":{},"语":{"docs":{},"句":{"docs":{},"的":{"docs":{},"注":{"docs":{},"释":{"docs":{},"只":{"docs":{},"能":{"docs":{},"写":{"docs":{},"在":{"docs":{},"它":{"docs":{},"的":{"docs":{},"上":{"docs":{},"方":{"docs":{},"或":{"docs":{},"右":{"docs":{},"方":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"位":{"docs":{},"置":{"docs":{},"都":{"docs":{},"是":{"docs":{},"非":{"docs":{},"法":{"docs":{},"的":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"信":{"docs":{},"看":{"docs":{},"到":{"docs":{},"最":{"docs":{},"后":{"docs":{},",":{"docs":{},"您":{"docs":{},"已":{"docs":{},"经":{"docs":{},"对":{"docs":{},"我":{"docs":{},"们":{"docs":{},"的":{"docs":{},"编":{"docs":{},"程":{"docs":{},"规":{"docs":{},"范":{"docs":{},"有":{"docs":{},"了":{"docs":{},"一":{"docs":{},"定":{"docs":{},"的":{"docs":{},"了":{"docs":{},"解":{"docs":{},",":{"docs":{},"那":{"docs":{},"么":{"docs":{},"就":{"docs":{},"开":{"docs":{},"始":{"docs":{},"您":{"docs":{},"的":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{},"s":{"docs":{},"开":{"docs":{},"发":{"docs":{},"之":{"docs":{},"旅":{"docs":{},"吧":{"docs":{},"!":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"缩":{"docs":{},"进":{"docs":{},"请":{"docs":{},"采":{"docs":{},"用":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}},"语":{"docs":{},"句":{"docs":{},")":{"docs":{},",":{"docs":{},"而":{"docs":{},"运":{"docs":{},"算":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"运":{"docs":{},"算":{"docs":{},"符":{"docs":{},"与":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{},"间":{"docs":{},"留":{"docs":{},"一":{"docs":{},"个":{"docs":{},"空":{"docs":{},"格":{"docs":{},"。":{"docs":{},"另":{"docs":{},"外":{"docs":{},",":{"docs":{},"不":{"docs":{},"要":{"docs":{},"在":{"docs":{},"括":{"docs":{},"号":{"docs":{},"的":{"docs":{},"表":{"docs":{},"达":{"docs":{},"式":{"docs":{},"两":{"docs":{},"侧":{"docs":{},"留":{"docs":{},"空":{"docs":{},"格":{"docs":{},",":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"与":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}},"采":{"docs":{},"用":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}},",":{"docs":{},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}},"请":{"docs":{},"使":{"docs":{},"用":{"docs":{},"英":{"docs":{},"文":{"docs":{},"做":{"docs":{},"为":{"docs":{},"注":{"docs":{},"释":{"docs":{},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"中":{"docs":{},"文":{"docs":{},"注":{"docs":{},"释":{"docs":{},"将":{"docs":{},"意":{"docs":{},"味":{"docs":{},"着":{"docs":{},"在":{"docs":{},"编":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},"时":{"docs":{},"需":{"docs":{},"要":{"docs":{},"来":{"docs":{},"回":{"docs":{},"不":{"docs":{},"停":{"docs":{},"的":{"docs":{},"切":{"docs":{},"换":{"docs":{},"中":{"docs":{},"英":{"docs":{},"文":{"docs":{},"输":{"docs":{},"入":{"docs":{},"法":{"docs":{},"从":{"docs":{},"而":{"docs":{},"打":{"docs":{},"断":{"docs":{},"编":{"docs":{},"写":{"docs":{},"代":{"docs":{},"码":{"docs":{},"的":{"docs":{},"思":{"docs":{},"路":{"docs":{},"。":{"docs":{},"并":{"docs":{},"且":{"docs":{},"使":{"docs":{},"用":{"docs":{},"英":{"docs":{},"文":{"docs":{},"注":{"docs":{},"释":{"docs":{},"也":{"docs":{},"能":{"docs":{},"够":{"docs":{},"比":{"docs":{},"较":{"docs":{},"好":{"docs":{},"的":{"docs":{},"与":{"docs":{},"中":{"docs":{},"国":{"docs":{},"以":{"docs":{},"外":{"docs":{},"的":{"docs":{},"技":{"docs":{},"术":{"docs":{},"者":{"docs":{},"进":{"docs":{},"行":{"docs":{},"交":{"docs":{},"流":{"docs":{},"。":{"docs":{},"除":{"docs":{},"非":{"docs":{},"必":{"docs":{},"须":{"docs":{},"引":{"docs":{},"用":{"docs":{},"原":{"docs":{},"来":{"docs":{},"的":{"docs":{},"文":{"docs":{},"本":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"写":{"docs":{},"中":{"docs":{},"文":{"docs":{},"。":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"连":{"docs":{},"接":{"docs":{},"起":{"docs":{},"来":{"docs":{},"。":{"docs":{},"例":{"docs":{},"如":{"docs":{},":":{"docs":{"tutorial/code-style.html":{"ref":"tutorial/code-style.html","tf":0.003676470588235294}}}}}}}}}},"举":{"docs":{},"例":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}},":":{"docs":{},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{},"自":{"docs":{},"身":{"docs":{},"测":{"docs":{},"试":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}},"将":{"docs":{},"肯":{"docs":{},"定":{"docs":{},"出":{"docs":{},"现":{"docs":{},"在":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}},"影":{"docs":{},"响":{"docs":{},"的":{"docs":{},"范":{"docs":{},"围":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"文":{"docs":{},"件":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"进":{"docs":{},"程":{"docs":{},"管":{"docs":{},"理":{"docs":{},",":{"docs":{},"内":{"docs":{},"存":{"docs":{},"管":{"docs":{},"理":{"docs":{},"等":{"docs":{},"等":{"docs":{},",":{"docs":{},"视":{"docs":{},"项":{"docs":{},"目":{"docs":{},"不":{"docs":{},"同":{"docs":{},"而":{"docs":{},"不":{"docs":{},"同":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"撤":{"docs":{},"销":{"docs":{},"上":{"docs":{},"一":{"docs":{},"次":{"docs":{},"的":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}},"改":{"docs":{},"变":{"docs":{},"了":{"docs":{},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"工":{"docs":{},"具":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}},"构":{"docs":{},"建":{"docs":{},"过":{"docs":{},"程":{"docs":{},"或":{"docs":{},"辅":{"docs":{},"助":{"docs":{},"工":{"docs":{},"具":{"docs":{},"的":{"docs":{},"变":{"docs":{},"动":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"把":{"docs":{},"g":{"docs":{},"r":{"docs":{},"u":{"docs":{},"b":{"docs":{},"改":{"docs":{},"成":{"docs":{},"了":{"docs":{},"u":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"。":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"永":{"docs":{},"远":{"docs":{},"别":{"docs":{},"忘":{"docs":{},"了":{"docs":{},"第":{"2":{"docs":{},"行":{"docs":{},"是":{"docs":{},"空":{"docs":{},"行":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}},"docs":{}}}}}}},"部":{"docs":{},"分":{"docs":{},"是":{"docs":{},"对":{"docs":{},"本":{"docs":{},"次":{"docs":{"tutorial/commit-rule.html":{"ref":"tutorial/commit-rule.html","tf":0.008264462809917356}}}}}}}},"完":{"docs":{},"成":{"docs":{},"配":{"docs":{},"置":{"docs":{},"后":{"docs":{},",":{"docs":{},"就":{"docs":{},"可":{"docs":{},"以":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"了":{"docs":{},",":{"docs":{},"编":{"docs":{},"译":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"就":{"docs":{},"会":{"docs":{},"根":{"docs":{},"据":{"docs":{},"最":{"docs":{},"新":{"docs":{},"的":{"docs":{},"配":{"docs":{},"置":{"docs":{},"进":{"docs":{},"行":{"docs":{},"编":{"docs":{},"译":{"docs":{},"。":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":0.038461538461538464}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"菜":{"docs":{},"单":{"docs":{},"配":{"docs":{},"置":{"docs":{"tutorial/menuconfig.html":{"ref":"tutorial/menuconfig.html","tf":10.038461538461538}}}}}},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"下":{"docs":{},"载":{"docs":{},"(":{"docs":{},"较":{"docs":{},"慢":{"docs":{},")":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}}}}}}}}}}},"百":{"docs":{},"度":{"docs":{},"网":{"docs":{},"盘":{"docs":{},"链":{"docs":{},"接":{"docs":{},",":{"docs":{},"提":{"docs":{},"取":{"docs":{},"码":{"docs":{},":":{"docs":{},"n":{"docs":{},"x":{"docs":{},"o":{"docs":{"tutorial/toolchains.html":{"ref":"tutorial/toolchains.html","tf":0.05405405405405406}}}}}}}}}}}}}}}},"单":{"docs":{},"元":{"docs":{},"测":{"docs":{},"试":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":10.004545454545454}},"表":{"docs":{},",":{"docs":{},"填":{"docs":{},"写":{"docs":{},"要":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}},"带":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"和":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}},"的":{"docs":{},"单":{"docs":{},"元":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}},"着":{"docs":{},"重":{"docs":{},"点":{"docs":{},":":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},",":{"docs":{},"功":{"docs":{},"能":{"docs":{},"。":{"docs":{"tutorial/utest.html":{"ref":"tutorial/utest.html","tf":0.004545454545454545}}}}}}}}}}}}}}}}},"length":3143},"corpusTokens":["!=","\"\"","\"=r\"(ret));","\"_\"","\"clock\"","\"hello!\";","\"hello\");","\"init\"","\"multi","\"syscall\"","\"world!\");","\"world!\";","\"world\");","\"{\"","#","#defin","#els","#else,","#endif","#endif这种时,需要在开头和结尾后面写上注释来帮助开发这快速找到对应的宏。","#ifdef","#ifndef","#includ","%","%0\"","%p\",","%p,","%x\",","%x,","&","&&","&pagetable[get_level_off(0,","&pagetable[get_level_off(level,","(","(!attr)","(!pte_used(*pte))","(\"rdtime","():","(*handler)(struct","(*soundcallbackhandler)(void","(*write)(void","(1","(1);","(a0)","(a1)","(allocpag","(c)","(char","(cmder)","(condition)","(coreid","(data)","(dmac)","(fatfs,","(for","(fpioa)","(git)下载后安装即可。","(irqno","(isviraddrmapped(mmu,","(level","(maponepage(mmu,","(mmu_pd","(nx_addr)&trapentry0)","(nx_addr)&trapentry1)","(nx_addr)&trapentry2)","(nx_addr)&trapentry3)","(nx_addr)get_addr_from_satp(addr);","(nx_addr)nx_virt2phy(pagetablevir);","(nx_addr)phyaddr,","(nx_halcontext","(nx_pagefree(levelpagetable)","(nx_syscallwitharghandler)nx_syscallgethandler((nx_syscallapi)fram","(nx_thread_max_priority_nr","(nx_thread_priority_high","(nx_u8","(nx_uarch)(((nx_uarch)stack)","(nx_uarch)arg;","(nx_uarch)exitentry;","(nx_uarch)startentry;","(page","(pagephi","(paget","(pagetablephi","(phsical","(phyaddr","(pte","(pte)","(pte_used(*pte))","(pte_v","(pte_x","(python)下载后安装即可。","(rv64gc)","(smp初始化)","(tabl","(trapentri","(void","(vpn2,vpn1,vpn0,offset)","(x","(x86,","(内核的主函数)","(初始化调用)","(平台初始化,","(平台初始化二阶段,可以使用内核的功能:","(平台的主函数,什么都可以使用:","(调度第一个线程)",")","*","*)","*)(((nx_addr)pte)","*)(nx_virt2phy((nx_addr)pte)","*)(pagephi","*)addrstart;","*)mmu","*)nx_align_down((nx_uarch)stack,","*)nx_pagealloc(1);","*)nx_phy2virt(pagetable);","*)phypage);","*)pte2paddr(*pte);","*)stack;","*)stacktop;","**outaddr);","*,","*/","*__mappage(nx_mmu","*__mappagewithphy(nx_mmu","*addr","*addr)","*addr,","*arg)","*arg),","*arg,","*args)","*args,","*atomic)","*atomic,","*buf,","*buffer,","*cond)","*context","*cpugetcurrent(void)","*data);","*data,","*deviceptr;","*directoryread(nx_dir","*exitentry,","*frame)","*from","*kernelstack,","*levelpaget","*levelpagetable;","*mem,","*memalloc(us","*mmu,","*mutex)","*name,","*nextsp","*nx_buddyallocpage(nx_buddysystem*","*nx_halcontextinit(void","*nx_halmappage(nx_mmu","*nx_halmappagewithphy(nx_mmu","*nx_halprocessgetkernelpagetable(void)","*nx_halvir2phy(nx_mmu","*nx_heapalloc(nx_s","*nx_irq_delayworkcreate(nx_irq_workhandl","*nx_threadcreate(const","*nx_threadself(void);","*nx_timercreate(nx_uarch","*object)","*object);","*p","*paget","*pagetable,","*pagetablevir)","*pagewalk(mmu_pd","*param,","*path)","*path,","*phyaddr;","*process,","*pte","*pte;","*ptearray[3]","*ptearray[3])","*ptr);","*q","*s","*space,","*stack","*stack;","*stackbase,","*stackbase;","*stacktop)","*startentry,","*tabl","*text,","*thread);","*thread,","*threadarg;","*threadname,","*time)","*timer);","*timer,","*userstack);","*userstack,","*value)","*vmspace)","*work);","*work,","+","+=",",","...","...)",".ack",".add",".align",".barrier",".barrierinstruct",".barrierread",".barrierwrit",".ca",".clearmask",".data.stack",".dec",".disabl",".enabl",".executeus",".extern",".freepaget",".get",".getkernelpaget",".getpaget",".global",".globl",".inc",".init",".inituserspac",".jpg)",".mappag",".mappagewithphi",".mask",".restorelevel",".savelevel",".section",".set",".setmask",".setpaget",".space",".sub",".swap",".switchnext",".switchpaget",".switchprevnext",".text",".text.start",".unmappag",".unmask",".vir2phi",".vscode","/","/*","/**","//","0","0)","0);","0,","0.8tflop","01","0;","0x000","0x001","0x002","0x004","0x008","0x01","0x010","0x02","0x020","0x040","0x080","0x1000;","0x2","0x20,","0x30,};","0x300","0x50,","0x60,};","0x80020000,","0x80200000,","0x82000000","0xf0000000","0~nx_multi_cores_nr","0,表明这个页表项指向下一级页表。","1","1)","1);","1,","1.","1.目录名称","10","10.","10.注释编写","10000000","10mhz","11","11.缩进以及分行","112,","12","12.大括号与空格","128等。","13.函数指针类型定义","14.函数参数太多","15","15.宏条件定义","16","16550a","16;","17","18","1978","1985","1;","1]","1mb)内存对象。","1ms~100m","1。","2","2,","2.","2.0","2.04","2.文件名称","2018","2021","2021,","2022","2022,","26","27","2;","2的9次方=512","3","3);","3.","3.头文件定义","31","32","32);","32,","32mb","32位的pc电脑基本都是x86架构,而最早的一款处理器就是i386。因此,几乎所有的32位电脑都兼容i386。","39","3;","4","4);","4.","4.头文件注释","400mhz(可超频到600mhz)","48","48,","4;","4kib","5);","5.","5.变量命名","512","57","6","6.","6.828","6.函数命名","64","64,","64/i386工具链:","64/i386工具链:apt","64bit","6]","7","7.","7.结构体定义","8","8.","8.枚举定义","80,","80186、80286、80386","80386","80486。","8086","8192","8mib","9","9.","9.宏定义","96,",":",";","=","==",">",">a0",">a0);",">a0,",">a1,",">a2,",">a3,",">a4,",">a5,",">a6);",">a7",">a7);",">a7,",">epc",">mmu.tabl",">mmu.table);",">ra",">sp",">sstatu",">table;",">valu",">value),",">value,",">value;",">vmspace.mmu,","[","[0,","[7,","[x]","\\","]","__assembly__","__driver_keyboard__","__file__","__mappag","__mappage(mmu,","__mappagewithphy(mmu,","__mappagewithphy。","__sync_fetch_and_add(&atom","__sync_fetch_and_and(&atom","__sync_fetch_and_or(&atom","__sync_fetch_and_sub(&atom","__sync_lock_test_and_set(&((atomic)","__sync_synchron","__sync_synchronize();","__sync_val_compare_and_swap(&atom","__unmappag","__unmappage(mmu,","__unmappage(nx_mmu","_entermain","_entermain:","_setsp0","_setsp0:","_setsp1","_setsp1:","_setsp2","_setsp2:","_setsp3","_setsp3:","_start","_start:","_start,当执行到这个地方的时候,内核就开始运行了。","`pc`","`ra`","`ra`,","`sepc`","`sp`","`sret`,","`trap","a.","a0","a0,","a0~a7","access","add","addr","addr)","addr,","addr;","addrend","address","addrstart","addrstart,","aes,","alloc","allocpag","allocpage)","allow","amd64","anyth","ap","apach","api","api);","api:","api应用程序接口","api设计","app","apt","arch","arg","arg0:%x,","arg1:%x,","arg2:%x,","arg3:%x,","arg4:%x,","arg5:%x,","arg6:%x\",","arg,","arm,","arm32","arm64","asid","asid。表示当前程序的","assert_false(...)","assert_true(...)","atom","atomic.c、barrier.c、clock.c、context.c、interrupt.c即可。","atomic.c、barrier.c即可。","attr)","attr);","attr,","attr:%x","attr;","author","avoid","b.","bad!!!","bare","barrier","base","befor","beq","bit","bodi","book","booko","bootcoreid)","bootcoreid);","bootload","break;","bss","buddi","buddy伙伴算法","buf0[32]","buf1,","buf1[32]","buf2,","buf2[32]","buffer","bufsiz","bug","build","bytes)","cach","call","can't","case","chang","char","chore","clean","clear","clearcsr(sie,","clock","cmd,","code","code,","comment","commit","cond,","condit","conditioncreate(int","conditiondelete(condit","conditioninit(condit","conditionsleep(condit","conditionwake(condit","conditionwakeall(condit","config","config_nx_platform_k210","config_nx_uart0_from_sbi","consoleprint(str);","consoleprintcolor(color,","consolerestorecolor()","consolesetcolor(color);","const","contains:","content","context","control","copyright","core","core\"","coreaffinity;","coreid","coreid)","coreid);","coreid;","corestack2:","corestack3:","count","count);","cow","cpu","cpu_inittrap(coreid);","cpu_stack0:","cpu_stack1:","cpu_stacktop0","cpu_stacktop0:","cpu_stacktop1","cpu_stacktop1:","cpu_stacktop2","cpu_stacktop2:","cpu_stacktop3","cpu_stacktop3:","cpu。intel","cpu,而之前的都是","csr","csrc","csrw","ctrl","ctrl+a","ctrl+d","ctx_sp_off","c语言头文件为了避免多次重复包含,需要定义一个符号。这个符号的定义形式请采用如下的风格:","d1","data","data1:","data2:","date","deamon","default:","defconfig","descript","dest,","dev)","dev,","develop","devic","device_name_len","deviceclose(int","devicecontrol(int","devicecreate(char","devicedelete(char","deviceopen(char","deviceread(int","devicewrite(int","differ","dir)","direct","directoryclose(nx_dir","directoryopen(char","directoryrewind(nx_dir","dirti","disabl","do","doc","docs(mm):","docs:文档(documentation)","driver","dynam","ecal","elf","enabl","enough","enter","entri","entry`","enum","env)","epc","err","err:","err;","exampl","except_false(...)","except_true(...)","execut","exfat.","exitcode)","exitcode);","exitentry,","exitlist;","extfs,","fail","failed!\");","failed!\",","fat12,","fat12:","fat16,","fat32,","fat32:","fatfs,","fault!\");","fd)","fd,","feat(mm):","feat:新功能(feature)","fenc","fence.i","field","file","first","five”)是一个基于精简指令集(risc)原则的开源指令集架构(isa)。","fix","fix(mm):","fixedpriority;","fix:修补bug","flags)","flags);","flags,","flags。","floppi","fpu","frame","free","frequenc","fs","function","gcc","gcc\\bin","gdb","gdb调试","genisoimag","get_pf_id(addrend)","get_pf_id(addrstart)","gettimercounter()","git","global","globallist;","goto","grub2","grub2引导","hal","handler","handler(fram","handler,","handler;","hardwar","hash","hat/fedora/centos:","header","header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。","heap","heapcache算法","heapcache虚拟内存管理","here","high","hold","http://byterunner.com/16550.html","hub","hypervisor","hypervisor,supervisor,","i.","i/o驱动框架和中断管理","i2c,","i2s,","i386","i386,","i386平台简介","id","id,","identifier:","idl","id。","ier","ier_rx_en","if(vmspac","if、for、while、switch","includ","increas","info","init","input","instal","instead","instruct","int","intel","interrupt","interupt","io","ipc","irq","irqno)","irqno);","irqno,","is:%d\",","isa)也处在草案版本1.10。","isa),而特权指令集(privileg","isiz","issus","isterminated;","j","j8","jasonhu","jn是多线程编译","jn是多线程编译,","k210","k210,","k210平台简介","k210是嘉楠科技公司推出的基于risc","kdriver","kernel","kill","kservic","la","last","layout:","leaf","len);","len,","level","level)","level;","levelpaget","li","licens","line","line1","line2","linux","linux:","linux下设置i386环境并设置platform=x86","linux下设置riscv64环境platform=riscv64","linux工具链只需要从软件包管理器下载安装即可:","linux环境","list","list;","load","lock","lock;","log","logs:","log,建议是不要。","long","longarch","loop","loop:","low","make","make_satp(addr));","malloc","manag","maponepag","maponepage(nx_mmu","mapped!\",","mappedpag","mappedpages);","mappedpages++;","mask)","mask);","max","mean","memcopy(void","memfill(void","memfree(void","memmap(void","memmove(void","memori","memory!\");","memory,","memroy","memunmap(void","memzero(void","menuconfig","menuconfig是一个可以在终端显示的图形化配置界面,他不仅可以极大的方便我们对于配置文件的修改,","menuconfig简介","messag","mhartid,","microsecond","microseconds);","millisecond","milliseconds,","min","mit","mkf","mm","mmu","mmu_flushtlb()","mmu_flushtlb();","mmu_pd","mmu_pt","mmu内存管理单元","mmu支持","mmu虚拟内存管理","mode","mode,","mtool","multi","mutex","mutex)","mutex,","mutexacquire(mutex","mutexcreate(int","mutexdelete(mutex","mutexinit(mutex","mutexrelease(mutex","mutextryacquire(mutex","mv","mythread,","name","name)","name,","name[nx_thread_name_len];","name[sound_device_name_len];","need","needsched;","netstack)","never","newvalue)","newvalue);","nextsp);","none","normal","note","note:","notice:","nt","number)。","nx_","nx_addr","nx_assert(!page_is_leaf(*pte));","nx_assert((nx_addr)levelpaget","nx_assert(handler);","nx_assert(mmu);","nx_assert(page_is_leaf(*pte));","nx_assert(pagetable);","nx_assert(pagewalkpte(pagetable,","nx_assert(phypage);","nx_assert(pt","nx_assert(pte_used(*pte));","nx_assert(vmspace);","nx_assert_bufeq(buf0,","nx_assert_bufne(buf1,","nx_assert_eq(1,","nx_assert_false(0);","nx_assert_false(nx_false);","nx_assert_ge(3,","nx_assert_gt(4,","nx_assert_in_range(1,","nx_assert_in_range(4,","nx_assert_in_range(5,","nx_assert_le(3,","nx_assert_lt(3,","nx_assert_ne(0,","nx_assert_ni_range(0,","nx_assert_ni_range(1,","nx_assert_ni_range(5,","nx_assert_ni_range(6,","nx_assert_not_null(q);","nx_assert_null(p);","nx_assert_streq(\"hello\",","nx_assert_streq(s,","nx_assert_strne(\"hello\",","nx_assert_strne(s,","nx_assert_true(1);","nx_assert_true(nx_true);","nx_atom","nx_atomicop","nx_atomicopsinterfac","nx_bool","nx_buddycreate(void","nx_buddyfreepage(nx_buddysystem*","nx_buddyincreasepage(nx_buddysystem*","nx_buddysystem*","nx_callsinit","nx_casm","nx_casm(\"fence\":::\"memory\");","nx_casm(\"fence.i\":::\"memory\");","nx_casm(\"sfence.vma\");","nx_clocktickgo();","nx_contextop","nx_contextopsinterfac","nx_createthread(char","nx_dir","nx_directorycreate(char","nx_directorydelete(char","nx_direntri","nx_efault;","nx_einval;","nx_enomem;","nx_enor","nx_eok)","nx_eok);","nx_eok;","nx_error","nx_false)","nx_false);","nx_fd","nx_fileaccess(char","nx_fileclose(nx_fd","nx_filecreate(char","nx_filedelete(char","nx_fileisend(nx_fd","nx_fileopen(char","nx_fileread(nx_fd","nx_fileseek(nx_fd","nx_filetelloffset(nx_fd","nx_filewrite(nx_fd","nx_halatomicadd(nx_atom","nx_halatomicadd,","nx_halatomiccas(nx_atom","nx_halatomiccas,","nx_halatomicclearmask(nx_atom","nx_halatomicclearmask,","nx_halatomicdec(nx_atom","nx_halatomicdec,","nx_halatomicget(nx_atom","nx_halatomicget,","nx_halatomicinc(nx_atom","nx_halatomicinc,","nx_halatomicset(nx_atom","nx_halatomicset,","nx_halatomicsetmask(nx_atom","nx_halatomicsetmask,","nx_halatomicsub(nx_atom","nx_halatomicsub,","nx_halatomicswap(nx_atom","nx_halatomicswap,","nx_halclearbss();","nx_halclockhandler(void)","nx_halconsoleoutchar","nx_halcontext","nx_halcontextinit","nx_halcontextinit,","nx_halcontextswitchnext","nx_halcontextswitchnext(nx_addr","nx_halcontextswitchnext,","nx_halcontextswitchnext:","nx_halcontextswitchprevnext","nx_halcontextswitchprevnext(nx_addr","nx_halcontextswitchprevnext,","nx_halcontextswitchprevnext:","nx_halcorebootapp(nx_uarch","nx_halcorebootapp。","nx_halcoreenterapp,","nx_halcoregetindex(void)","nx_halcoregetindex。该索引是在处理器数组中的索引,不管什么处理器","nx_haldirectuartinit();","nx_haldirectuartstage2","nx_haldirectuartstage2();","nx_halen","nx_halenable(void)","nx_halenable,","nx_halgetkernelpagetable(),","nx_halgetkernelpagetable();","nx_halgetpaget","nx_halgetpagetable(void)","nx_halgetpagetable,","nx_halinitclock(void)","nx_halirqack(nx_irq_numb","nx_halirqack,","nx_halirqack。","nx_halirqdis","nx_halirqdisable(void)","nx_halirqdisable,","nx_halirqen","nx_halirqenable(void)","nx_halirqenable,","nx_halirqmask","nx_halirqmask(nx_irq_numb","nx_halirqmask,","nx_halirqrestorelevel(nx_uarch","nx_halirqrestorelevel,","nx_halirqrestorelevel。","nx_halirqsavelevel","nx_halirqsavelevel(void)","nx_halirqsavelevel,","nx_halirqunmask","nx_halirqunmask(nx_irq_numb","nx_halirqunmask,","nx_halmappag","nx_halmappage,","nx_halmappagewithphi","nx_halmappagewithphy,","nx_halmembarrier(void)","nx_halmembarrier,","nx_halmembarrierinstruction(void)","nx_halmembarrierinstruction,","nx_halmembarrierread(void)","nx_halmembarrierread,","nx_halmembarrierwrite(void)","nx_halmembarrierwrite,","nx_halpagezoneinit();","nx_halplatforminit","nx_halplatforminit(nx_uarch","nx_halplatformmain","nx_halplatformstage2","nx_halplatformstage2(void)","nx_halplatformstage2中,可以使用内核的功能,内存分配,中断注册等。","nx_halprocessenterusermode(args,","nx_halprocessenterusermode(void","nx_halprocessexecuteus","nx_halprocessexecuteuser(const","nx_halprocessexecuteuser,","nx_halprocessfreepaget","nx_halprocessfreepagetable(nx_vmspac","nx_halprocessfreepagetable,","nx_halprocessgetkernelpaget","nx_halprocessgetkernelpagetable,","nx_halprocessinituserspac","nx_halprocessinituserspace(nx_process","nx_halprocessinituserspace,","nx_halprocessswitchpaget","nx_halprocessswitchpagetable(void","nx_halprocessswitchpagetable,","nx_halprocesssyscalldispatch","nx_halprocesssyscalldispatch(nx_haltrapfram","nx_halsetpaget","nx_halsetpagetable(nx_addr","nx_halsetpagetable,","nx_halunmappag","nx_halunmappage(nx_mmu","nx_halunmappage,","nx_halvir2phi","nx_halvir2phy,","nx_has_onecor","nx_has_smp","nx_heapalloc","nx_heapalloc(size)","nx_heapfree(ptr)","nx_heapfree(void","nx_heapgetobjectsize(void","nx_i32","nx_import","nx_inlin","nx_interfac","nx_irq_bind(nx_irq_numb","nx_irq_control","nx_irq_controllerinterfac","nx_irq_controllerinterface.disable()","nx_irq_controllerinterface.enable()","nx_irq_controllerinterface.restorelevel(level)","nx_irq_controllerinterface.savelevel()","nx_irq_delayqueu","nx_irq_delayqueueenter(nx_irq_delayqueu","nx_irq_delayqueueleave(nx_irq_delayqueu","nx_irq_delaywork","nx_irq_delayworkdestroy(nx_irq_delaywork","nx_irq_delayworkhandl","nx_irq_delayworkhandle(nx_irq_delaywork","nx_irq_delayworkinit(nx_irq_delaywork","nx_irq_dis","nx_irq_disable()","nx_irq_en","nx_irq_enable()","nx_irq_fast_queu","nx_irq_handl","nx_irq_mask(nx_irq_numb","nx_irq_normal_queue,","nx_irq_period_queue,","nx_irq_queue_nr,","nx_irq_restorelevel","nx_irq_restorelevel(level)","nx_irq_restorelevel(level);","nx_irq_savelevel","nx_irq_savelevel()","nx_irq_savelevel();","nx_irq_sched_queu","nx_irq_sched_queue,","nx_irq_slow_queu","nx_irq_slow_queue,","nx_irq_unbind(nx_irq_numb","nx_irq_unmask(nx_irq_numb","nx_irq_workhandl","nx_list","nx_log_*","nx_log_d(\"riscv64","nx_log_e(\"map","nx_log_e(\"riscv64","nx_log_i(\"boot","nx_log_i(\"hello,","nx_log_i(\"stage2!\");","nx_log_info","nx_log_level","nx_log_nam","nx_main","nx_memalloc","nx_memalloc(nx_page_size);","nx_memalloc(size)","nx_membarrierop","nx_membarrieropsinterfac","nx_memcopy(table,","nx_memfre","nx_memfree(ptr)","nx_memfree(vmspac","nx_memfree。","nx_memzero(context,","nx_memzero(nx_phy2virt(pagetable),","nx_memzero(table,","nx_mmugetpagetable())","nx_mmuinit(&process","nx_mmuop","nx_mmuopsinterfac","nx_mmusetpagetable(pagetablephy);","nx_nr_irqs)","nx_null)","nx_null);","nx_null,","nx_null;","nx_null};","nx_page*","nx_page_addr_mask);","nx_page_addr_mask;","nx_page_alignup(size);","nx_page_attr_kernel","nx_page_attr_rwx","nx_page_attr_us","nx_page_size);","nx_page_size;","nx_pagealloc","nx_pagealloc(1);","nx_pagefre","nx_pagefree((void","nx_pagefree(phyaddr);","nx_pagefromptr(nx_buddysystem*","nx_pageincrease(levelpagetable);","nx_panic(\"map","nx_panic(\"should","nx_panic(\"vir2phi","nx_printf","nx_privat","nx_processexit(int","nx_processlaunch(char","nx_processop","nx_processopsinterfac","nx_schedtofirstthread","nx_size","nx_smp_main","nx_smp_preload","nx_spin","nx_ssize","nx_syscallgethandler(nx_syscallapi","nx_syscallhandl","nx_syscallwitharghandl","nx_test(test)","nx_test(test1)","nx_test(test2)","nx_test(test3)","nx_test(testunitname)","nx_test(yyy)","nx_test_case(testcasename);","nx_test_case(utest);","nx_test_case(xxx);","nx_test_case_clean(testcasename)","nx_test_case_clean(utest)","nx_test_case_setup(testcasename)","nx_test_case_setup(utest)","nx_test_clean(test)","nx_test_clean(testunitname)","nx_test_setup(test)","nx_test_setup(testunitname)","nx_test_table(testcasename)","nx_test_table(utest)","nx_test_table(xxx)","nx_test_unit(test),","nx_test_unit(test1),","nx_test_unit(test2),","nx_test_unit(test3),","nx_test_unit(testunitname),","nx_test_unit(yyy),","nx_test_unit_clean(testunitname),","nx_test_unit_setup(testunitname),","nx_test_unit_setup_clean(test),","nx_test_unit_setup_clean(testunitname),","nx_thread","nx_thread;","nx_thread_priority_high","nx_thread_priority_idl","nx_thread_priority_low","nx_thread_priority_norm","nx_thread_priority_rt_max","nx_thread_priority_rt_min","nx_threadcreat","nx_threaddestroy(nx_thread","nx_threadexit","nx_threadexit(void);","nx_threadhandl","nx_threadresourc","nx_threadself","nx_threadsetaffinity(nx_thread","nx_threadsleep(nx_uarch","nx_threadstart","nx_threadstart(nx_thread","nx_threadstat","nx_threadtermin","nx_threadterminate(nx_thread","nx_threadyield","nx_threadyield(void);","nx_ticks_per_second","nx_ticks_per_second;","nx_timer","nx_timer_clk_freq","nx_timer_oneshot","nx_timer_period","nx_timerdestroy(nx_tim","nx_timerdestroy,","nx_timerinit","nx_timerinit(nx_tim","nx_timerstart","nx_timerstart(nx_tim","nx_timerstop","nx_timerstop(nx_tim","nx_true)","nx_true);","nx_u32","nx_u64","nx_u8","nx_uarch","nx_vmspacemap(nx_vmspac","nx_vmspacemapwithphy(nx_vmspac","nx_vmspaceunmap(nx_vmspac","nxbase","nxo","nxos使用了一个python开发的menuconfig,它的跨平台性以及易用性成为了我们的首选。","nxos是next","nxos的api接口分为几个大类。进程,线程,内存管理,时间管理,枢纽系统,文件系统,设备管理,网络管理,图形管理,安全管理,用户态驱动框架。","nxos采用","nxos采用混合内核架构,即宏内核和微内核相结合。优势是减小内核代码,增加功能可扩展性,功能模块是独立的进程,添加和删除模块就是进程的创建和关闭。","offset","offset)","offset,","old","old,","on","oncore;","oneshot","opensbi","opensbi,","opensbi固件","oper","output","paddr,","paddr2pte(pagetable)","paddr2pte(phyaddr)","page","page*/","page:","pageoffset","pageoffset);","pageoffset)。","pageoffset;","pagephi","pagephy;","pages)","pages);","paget","pagetablephi","pagewalk","pagewalk(pagetable,","pagewalkpt","pagewalkpte(mmu_pd","pagewalk。","path","path,","pc","period","phy:%p","phyaddr","phyaddr,","phypag","phypage;","physic","pid)","pid,","platform","platfrom","plic","plic_complete(nx_smp_getbootcore(),","plic_disableirq(nx_smp_getbootcore(),","plic_enableirq(nx_smp_getbootcore(),","plic_init(nx_true);","ppn","ppn。第一级硬件回填使用的","pr","prefix","prepar","prevsp,","prioriti","priority)","priority);","priority,","priority;","priority,即可创建一个线程,返回线程的地址。","process","processcreate(char","processexit(int","processgetid(void)","processlist;","processor)。","processor)启动后,进入内核,完成初始化,再由引导处理器去唤醒其它处理器,通常称为应用处理器(appl","processterminate(int","processwait(int","protect","pte","pte2paddr(*pte)","pte2paddr(*pte));","pte2paddr(*pte);","pte:","pte;","pte_","pte_a","pte_d","pte_g","pte_g)","pte_r","pte_r)","pte_soft","pte_u","pte_v","pte_v;","pte_w","pte_x","ptearray)","ptearray[0]","ptearray[0];","ptearray[1];","ptearray[2];","ptearray[]","ptearray[level]","pwm,","python","qemu","qemu_riscv64","qemu_riscv64平台简介","qemu平台支持gdb调试,并搭配了vscode图形化调试","qemu是一种通用的开源计算机仿真器和虚拟器。本平台就是qemu对riscv64架构的仿真支持。","queue,","r,w,x","ra","rdtime","read","readcsr(satp);","readcsr(sstatus)","readcsr(sstatus);","readcsr(stvec);","real","receiv","red","refactor(mm):","refactor:重构(即不是新增功能,也不是修改bug的代码变动)","refer","reference;","regbytes(sp)","regist","registers.","reserv","resourc","resource;","restor","restore_context","ret;","return","return,","return:","revert","revert:","rhr","ring1,","ring2,","ring3),在","risc","riscv","riscv(rv32)具有32个整数寄存器组(取名为:x0~x31),其中31个是通用寄存器(x1~x31),它们存储整数数值,寄存器x0是硬件连线的常数0。当你设计的riscv架构处理器实现了浮点扩展时,还必须有32个浮点寄存器f0~f31。对于rv32,其x寄存器是32位宽度的,xlen=32,对于rv64,它们是64位宽度的,xlen=64。","riscv,","riscv64","riscv64!\");","riscv64,","riscv64等","riscv架构移植","routin","rt","rtc,","rto","run","rustsbi","rustsbi固件","rustsbi,其内核的入口地址为","rv64imafdc","s","same","satp","save","save_context","saveconfig","sbi","sbi,","sbi_entry.","sbi_init();","sbi_print_version();","sbi_set_timer(gettimercounter()","sched","schedul","scope","scope用于说明","script","sdcard/harddisk","sdk","seciton,","see","seekmethod)","sepc,","set","setcsr(sie,","setup.bat","setup.sh","sfencevma()","sha256","share","shot","showlogvers","sie","sie_stie);","simpl","singl","size","size)","size);","size,","sizeof(nx_halcontext));","sizeof(nx_halcontext);","sizeof(nx_uarch));","skip","smart。","smp","smp多核","smp多核启动流程","smp多核调度","smp负载均衡","sndhandler;","softwar","sound_ac97,","sound_hd,","sound_pc,","soundcallbackhandl","sounddevic","sounddevice;","soundtyp","soundtype;","sourc","sp","sp,","space","spdx","spi,","sram(6mib通用sram+2mib的ai专用sram)","src","src,","src/arch/riscv64/port","sret","sscrach","sscratch","sscratch,","ssize","sstatu","sstatus,","sstatus_si","sstatus_sie));","sstatus_sie);","sstatus_sie;","sstatus_spi","sstatus_spie;","sstatus_spp","sstatus_sum","stack","stack,","stacksize,","stacksize;","stacktop","startentri","state;","statu","store","str)","struct","stvec","style","style(*):","style:","subject","subject是","sudo","supervisor","supervisor,","supervisor模式的中断的打开与关闭是由状态寄存器","suport","support","sure","sv39","sv39:","sv39,3级页表,页表和物理页都是4kb大小。","sv48","sv57","sv64","switch","syscal","system","system,","system的意思,是一个跨平台的简洁、高性能、高稳定性的支持多核的混合内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。","system设计好了再设计接口,目前还没有概念","t0,","t1","t1,","tabl","table,","tc=i","tc是testcase的缩写,表示启用测试案例。","team","test","test(mm):","test:增加测试","text,","thr","thread","thread,","threadcreate(threadhandl","threadexit(int","threadfindbynam","threadgetid(void)","threadhandl","threadhandler,","threadresume(int","threadsuspend(int","threadterminate(int","threadwait(int","tickdelta","tickdelta);","ticks;","tid)","tid,","tid;","time","timegetclock(void)","timegetcurrent(timesytem","timeout,","timer","timesetcurrent(timesytem","timeslice;","tlsalloc(void)","tlsfree(int","tlsgetvalue(int","tlsindex)","tlsindex,","tlssetvalue(int","tmpfilebuff","todo","toolchains\\x86_64","tools/","tools/genisoimag","tools/grub","tools/mkf","tools/mtool","tools服务器下载(速度较慢,请耐心等待)","top","translat","transmit","trap","trapentri","trapentry0;","trapentry1;","trapentry2;","trapentry3;","tri","truncat","type","typedef","u8","uart","uart,","uart.","uart=/dev/ttyusb0","uart=com3","uart是串口设备,需要在设备列表查看是哪个设备,默认是/dev/ttyusb0,可以不写。","uart是串口设备,需要在设备管理器查看,k210的设备是哪个串口。","ubuntu/kali","udriv","unknown","unmaponepag","unmaponepage(mmu,","unmaponepage(nx_mmu","updat","us","used!\");","used!\",","user","user\");","user:","userstack);","userverc","user)。","usiz","utest","util","v","v0.1","v64/32工具链:","v64工具链:","vaddr,","valid","valu","value)","value);","value;","vf","vfs_createfil","vir:%p","viraddr","viraddr)","viraddr);","viraddr)];","viraddr,","viraddr;","viraddr,转换为物理地址。","virstart,","virt","virtual","vmm","vmnode","vmnode,节点记录了地址的信息以及这段地址的属性。","vmspace虚拟地址空间","void","vpn0","vpn0。","vpn1","vpn1,第","vpn2","vpn2,第","vs","vscode的一些配置文件,有gdb调试配置","v中c语言函数参数是","v中断分为两种类型,一种是同步中断,即ecall、ebreak等指令所产生的中断,另一种是异步中断,即gpio、uart等外设产生的中断。","v已经确立了版本2.22的用户空间的指令集(userspac","v指令集可以自由地用于任何目的,允许任何人设计、制造和销售risc","v指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。","v架构的64位双核soc。","v架构移植","v的mmu支持多种模式,有sv32/sv39/sv48/sv57/sv64等。不同的模式映射的页面等级,页面大小是有差异的。在64位处理器种最常用的是sv39,它是3级4kb页面大小映射。","v的中断管理由处理器核局部中断clint(corelocalinterrupt)和平台级中断控制器plic(platformlevelinterruptcontroller)组成。clint分为软件中断核计时器中断,负责响应处理器的异常核和计时器中断。plic负责处理外设的中断。","v目前有4种特权模式(machine,","v芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。","v被设计成可扩展的,可以配置的,根据不同的应用场景可以生产带有不同功能扩展的处理器。","v(发音为“risk","walk","weel.","window","windows:","windowsnt","windows下设置i386环境并设置platform=x86","windows下设置riscv64环境platform=riscv64","windows环境","within","work","write","write.","writecsr(satp,","writecsr(sstatus,","x","x86","x86_64","x:","xbook","xbuild改成了xmak","xnu","xxx","yum","yyi","z","{","{0x10,","{0x40,","{nx_null,","|","|内容","|描述","}","};","~mask);","~sstatus_sie);","–","。","。__mappag","。由于有的时候只是为了暂时关闭中断,处理完后需要恢复中断的状态,于是则需要使用保存中断的状态和恢复中断的状态,即","一.","一、nxo","一、windows环境工具","一、开发环境搭建","一、描述","一、混合内核框架","一级页表中的页表项内容则和我们刚才提到的页表项一样,其内容包含物理页号,即描述一个要映射到的物理页。","一般情况下,第一个引导处理器(boot","三.","三、代码移植","三、内核功能","三、框架图","上下文切换","上下文切换是多线程实现的根基","上下文的切换分为上下文的初始化,从当前线程切换到下一个线程,直接切换到下一个线程。","上图为机器模式状态寄存器(rv32)","上图为机器模式状态寄存器(rv64)","下载到本地后,需要手动解压到一个目录下面,然后对工具链的bin路径配置环境变量。","下载后需要解压出来,然后将每一个目录配置到path系统环境变量中(最好是配置到环境变量的最前面,避免和其它系统已经存在的工具冲突),解压后您将会有:","下载工具链","下载链接:https://qemu.weilnetz.de/w64/","不同用法的地址。","不同的架构内核入口代码有差异,需要根据架构来实现","不带setup和clean的单元","不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。","不能使用内核的功能:","与大多数指令集相比,risc","个空格的方式。如果没有什么特殊意义,请在","个页表项,","个页面。在mmu映射和虚拟内存管理器中会使用到。","中使用","中断只需要对","中断延迟队列","中断延迟队列在某个驱动或者内核组件中会进行初始化。当产生中断的时候,在中断处理函数中,只对中断产生时的数据进行保存,不对中断产生时的数据进行处理,","中断延迟队列是一种延迟处理中断的机制,类似于","中断是可以全局打开和关闭的,打开后才会响应中断。除此之外,对于每一个具体的中断,都可以打开和关闭,在禁止了网卡中断后,即使打开了全局中断,也收不到网络数据包了。但是,异常是不可以屏蔽的,异常是来告诉内核出现一些问题了,需要根据具体的异常做处理。有的异常是不可以修复的,会导致系统死机,有的异常时可以修复的,比如页故障,可以拿来实现页面延迟映射,","中断是由处理器支持的一个临时打断当前执行流的功能,可分为设备中断和处理器异常。设备中断就是当网卡设备收到数据后会产生一个中断,打断处理器当前在处理的事情,去处理网络数据包。异常中断就是当处理器执行了一个不存在的指令或者访问了一个没有权限的内存地址,处理器就会中断当前的执行流,去对异常做一个处理,一般都是","中断机制中的中断下半部分,用来进行具体的中断处理。","中断的要求是快速地响应中断,并且是关闭了全局中断的,然后回到之前的工作。而延迟队列就是来完成这个工作的,产生了中断后,只进行最少的工作,","中断管理","中断管理接口对内核以及驱动都是至关重要的","中断管理框架,以及延迟中断队列机制","中断管理的实现是基于处理器的中断管理机制的,不同的架构具体实现机制可能有差别,但是在大体逻辑上都是一致的,因此可以抽象出一套统一的接口来供上层使用。","中断系统","中断表地址需要写入管理者模式的向量基址寄存器","中的","中调用了","中这个频率是","中,allocpag","中,会先检测该地址是否已经映射,没有映射才能映射。","中,会调用","中,会通过","中,使用了","中,内存对象被划分成3类,小(16byte","中,分为实时优先级和分时优先级。实时优先级是,只要有高的优先级,就不能运行低的优先级。而分时优先级是高低优先级线程都能得到运行,只是低优先级线程运行的时间更少而已。优先级","中,多了对当前线程的上下文的保存的工作,然后切换到下一个线程。","中,根据虚拟地址","中,获取了栈的值后,就从栈中恢复寄存器上下文,然后调用","中,进行初始化,初始化完串口后,就能使用打印功能了。","中,需要构建的上下文参数是线程的入口","串口可以配置为调用","串口来输出是非常方便的。","串口输入输出","为","为了方便,我们将其他比较小的工具已经打包在一个工具包里面了,下载解压后,手动添加对应的工具到系统环境变量即可。","为假,那么在遍历过程中,不存在就会出错,存在就会返回页表项,里面存放了物理页的地址。","为假,那么在遍历过程中,某个等级的页表不存在就会返回空。","为真,那么就会在遍历过程中分配不存在的页表。","为真,那就意味着如果虚拟地址没有映射物理地址,就会一级一级地分配页表。","为选中的平台做初始化(仅仅第一次编译的时候需要),会为每一个平台下载平台特别需要的工具到平台中。","举例","举例:单元测试自身测试","之下,最后返回栈低。","之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入","之前介绍过","之后又推出了包括","之间的这部分内存。简单的说就是对一段或者多段空闲的内存地址进行管理,可以进行分配与释放,让操作系统去使用。","事实上,三级页表的每个页表项中的物理页号可描述一个二级页表;","二.","二、linux环境工具","二、nxo","二、原理","二、架构简述","二、目录框架","二、编译和运行","二级页表的每个页表项中的物理页号可描述一个一级页表;","五、许可协议","产生时钟中断的时候,会去减少线程的时间片,时间片为0后,再去切换线程,这是属于线程被动切换。","仅仅编译源码","从","从代码阅读角度,建议每个大括号单独占用一行,而不是跟在语句的后面,例如:","从而得出了物理页号和虚拟地址所对应的物理地址。","代码提交日志规则commitrul","代码风格","以上描述摘自rcore","以内进行数据存取。","以动词开头,使用第一人称现在时,比如change,而不是changed或chang","以及","以及参数","以及在做进程的堆分配和栈扩展的时候,都会使用到。","以及定时器的标志","以及线程运行时的参数","以及这个地址对应的内存大小,内存节点的属性,已经一些扩展的标志。","以线程为最小调度单元","以线程为最小调度单元的好处是可以很方便支持内核态以及用户态的多线程,并且层次框架也比较好,容易实现。","以避免重名,另外也可以根据文件名中是否包含多个词语而采用","休眠等待条件变量","优先级最低。","优先级最高,","优缺点","伙伴内存管理算法。为了便于页面的维护,将多个页面组成内存块,每个内存块都有2的方幂个页,方幂的指数被称为阶。在操作内存时,经常将这些内存块分成大小相等的两个块,分成的两个内存块被称为伙伴块,采用一位二进制数来表示它们的伙伴关系。当这个位为1,表示其中一块在使用;当这个位为0,表示两个页面块都空闲或者都在使用。系统根据该位为0或位为1来决定是否使用或者分配该页面块。系统每次分配和回收伙伴块时都要对它们的伙伴位跟1进行异或运算。所谓异或是指刚开始时,两个伙伴块都空闲,它们的伙伴位为0,如果其中一块被使用,异或后得1;如果另一块也被使用,异或后得0;如果前面一块回收了异或后得1;如果另一块也回收了异或后得0。","会先计算需要映射的页面数量,然后循环映射页面。","会减少页面的引用计数,为0的时候才真正释放。","传入线程的名字","但是注意,此时只是创建了线程,还没有启动线程。","位","位。","位为一级索引","位为三级索引","位为二级索引","位保存和恢复。","位做置位和清理的操作即可。","位的扩展,实现了","位的虚拟页号分为三个等长的部分,","位索引的,因此有","作为偏移在第一级页表的物理页中找到要访问位置的物理页号;","作为偏移在第三级页表的物理页中找到第二级页表的物理页号;","作为偏移在第二级页表的物理页中找到第一级页表的物理页号;","作为机器模式的固件,qemu_riscv64平台选择了","使用大写作为名字,单词间使用\"_\"隔开,例如:","使用方法","使用的时候需要注意,必须是通过","使用第一人称现在时,比如使用change而不是changed或changes。","使用菜单配置进行个性化剪裁。可以选择打开或者关闭某些功能,设置一些变量等。配置完成后需要按esc键退出,退出后会生成新的配置头文件。","使用这种方式的话,就非常方便移植到其它架构上。","例如在mm,thread,fs等。","例如在页目录表中,会有页表项,如果发现该页表项为空,则会分配一个物理页,作为下一级的页表。","例如采用如上的形式。","例如:","保存了","保存的,其格式如下:","保存,因为上下文切换的时候会模拟一次异常返回,返回后就到这个异常地址处执行。","保存,它是返回地址的意思,表示线程返回后就去执行该函数。","值得注意的是,在执行系统调用期间,需要打开中断,避免在系统调用时出现死循环,导致内核卡死。","值得注意的是,映射的时候,还会去对内存进行物理内存映射,只有映射后,进程才能访问该地址。","值,","值,其返回值范围为","值,就能获取到对应的内核服务功能,然后以函数指针的方式去调用执行即可。","做了一些兼容,使用起来比较简单。","入口地址使用","入口地址在链接脚本中写的是","关闭。","关闭文件","关闭目录","关闭设备","其中\"{\"和\"}\"需要单独使用一行。","其中,header","其他功能正在开发中,敬请期待!","其他工具","其他注意事项:","其他涉及到的工具:python","具体字段的解析如下:","具体来说,假设我们有虚拟地址","内存屏障","内存屏障前的所有读写操作完成后才能执行屏障后的读写操作","内存是操作系统运行的根基,处理器从内存中取出指令来执行,在进入操作系统之前,一般会有引导器","内存管理","内存管理分为物理内存管理、虚拟内存管理、进程虚拟内存管理这三个大模块。","内存管理是操作系统中最为核心和重要的部分,这是由于很多其它模块的运行都需要内存的分配和释放。","内存管理最基本的接口就是分配和释放。为了能够支持分页机制,为页表映射提供内存的支持,将内存分为页面大小进行管理会比较合适。","内存管理模块","内存读/写屏障使用","内存释放堆内存的时候,需要传入内存对象地址,并返回释放的状态。","内核、苹果","内核一些功能的文档说明","内核中,休眠的单位是毫秒,休眠","内核入口","内核其余模块","内核分配堆内存的接口,需要传入待分配内存的大小,即可获取一个内存地址,如果为空,那么就是分配失败了。","内核初始化以及main核心","内核功能初始化","内核就只负责基础功能的支持,平台移植和驱动的移植,具体如何使用,可以根据用户态的","内核崩溃。","内核执行路径","内核是同一个数量级的。","内核源码目录","内核的定时器属于","内核的最小调度单位是线程,每个线程都有自己独立的栈,寄存器组,以及一些运行信息等。","内核的源码","内核虚拟内存管理之堆内存","内核虚拟堆内存管理,使用基于缓存的链表实现","内核,","内核,还有国产开源系统","内的物理地址,","内的物理地址,就能正确地进行数据存取,不然,则会产生页面故障。","内置了原子操作的函数,","内置函数","内置的原子操作即可。","再去对物理地址进行存取。比如虚拟地址是","写入文件","写入设备","函数","函数即可退出当前线程的运行。","函数后,就可以使用","函数来打印消息。","函数采用大驼峰命名风格,即每个单词的首字母都大写,如果单词是用的缩写,那么单词之间需要用\"_\"隔开,例如:","函数,相反关闭则是","分支","分配一个tl","分配内存","分配的内存对象。","刚才我们提到若页表项满足","创建一个延迟的中断工作,需要传入中断工作处理函数入口,以及函数执行时的参数,就可以创建一个延迟的工作对象。","创建了一个中断工作对象,就需要将其加入到某个延迟队列中,只需要传入队列和工作对象的地址即可。","创建互斥体","创建定时器后需要调用","创建定时器需要指定需要超时的时间","创建文件","创建条件变量","创建目录","创建线程","创建设备","创建进程","创建进程的时候,需要从文件系统上加载程序的代码和数据,然后再去执行进程的代码。","初始化互斥体","初始化完成后,会跳转到","初始化条件变量","初始化环境","初始化线程上下文是在栈上构建一个线程的上下文,当第一次切换到该线程的时候,寄存器就会使用栈中的值。","删除。","删除互斥体","删除文件","删除条件变量","删除目录","删除设备","到","前面有讲到关于全局中断的打开和关闭,全局中断的打开是","前,访问的地址都是物理地址,","功能","功能支持","加载平台的默认配置,会读取选中的平台的默认menuconfig配置到工作区中。","加速器","勘智kendryt","匹配的大括号单独占用一行,代码阅读起来就会有相应的层次而不会容易出现混淆的情况。空格建议在非函数方式的括号调用前留一个空格以和前面的进行区分,例如:","单元测试","单元测试表,填写要测试的单元","即可。","即定义的符号两侧采用","即直接访问的是内存的地址。比如内存只有","原子操作","原子操作用于对数据的加减运算不会被打断,以及一些原子级别的数据交换等","原子操作需要实现对数据的原子设置,获取,加法,减法,数据交换等。由于","原理","去分配内存。","去实现,而获取操作可以直接通过","去终止线程,传入线程指针即可。","去遍历3级页表,获取虚拟地址","去释放内存。","参考socket套接字接口设计","双核","双硬件512点16位复数fft","双精度","取出物理页面的地址,返回的时候加上页内偏移","变量采用小驼峰命名风格,即首字母小写,后续单词首字母大写,例如:","另外拆分和合并涉及到","只是现在不需要在分配物理地址而已,因为已经指定了物理地址了。","只编译","只能通过系统调用执行内核提供好的服务。在","只需要传入定时器对象地址即可。","只需要实现","可以直接在终端中输入命令安装:","可以省略。","可以获取页表的地址。","可以运行用户态的程序","可以通过串口输出调试,也可以通过串口输入按键","可以通过虚拟地址找到其映射的物理地址。","可编程","号。","同时运行。比如你一边听歌,一边写代码,其实就是音乐播放器和代码编辑器这两个任务在快速切换而形成的效果。","后进行分行,并在下一行都采用缩进的方式,例如:","后,访问的地址会发生变化。因此,为了能够保证访问内核的时候是正确的,在映射","后,访问的地址就是虚拟地址了。此时访问的地址,会通过","后,需要填写也表项,其内容是物理地址和页面的属性r,w,x等。","启动后,会进行一些初始化,然后参加到调度工作中。而调度队列的实现就需要依赖于原子操作来保证对公共队列访问的正确性。","启动它,才可以在超时后调用回调函数。","启动流程","启动进程的时候,需要传入进程的名字","和","和加入延迟队列相反,有离开延迟队列,那么和加入的参数一样,只是意思相反而已。","和服务,应用程序去构建应用。","和禁用","和线程结束时执行的函数","和裸机开发种,很多时候都是直接使用机器模式。","唤醒休眠等待条件的全部线程","唤醒休眠等待条件的单个线程","唤醒后,应用核会进入","唤醒应用核只需要调用","唯一的例外是","四.","四、平台支持","四、接口","四、移植总结","因此","因此每个页表大小都为","图形系统","在","在menuconfig中,打开单元测试功能,选取需要测试的单元,退出保存。","在mmu的基础上对内核和进程进行隔离","在nxos中使用menuconfig","在上下文切换的时候,需要注意的是,传入的是线程的栈的地址,可以从地址中取出线程当前栈的值。","在中断中,使能","在使用函数指针类型定义的时候,需要使用handler后缀,来表示是一个处理函数。","在使用页面的过程中,可能会需要把一个地砖转换成其对应的页面结构,来访问该结构里面的成员,这在虚拟内存管理器","在做时钟定时器初始化的时候,需要先关闭","在内核中,涉及到多任务的是线程管理,调度算法,多核调度。","在函数","在创建一个线程后,可以运行该线程,可以让线程去完成一些独立的工作。内核中的","在初始化的时候,会创建一个","在命令行中输入命令即可开始测试:","在完成内核的初始化后,会创建","在定时器还没开始运行的时候,可以销毁一个定时器,调用","在嵌入式领域,rtos的实时性是非常重要的。简单来说,就是一个优先级最高的任务在执行的时候,低优先级的任务得不到执行,如果有更高","在平台初始化","在根目录中,打开一个终端,在配置了环境变量之后,就可以使用配置了。","在每个源文件文件头上,应该包括相应的版权信息,文件描述,chang","在现代操作系统中,分为了内核态和用户态。内核态是内核程序本身,可以对设备资源进行管理核控制。而用户态只能够去调用内核提供的服务,不能够直接对资源进行访问。","在现代操作系统中,多任务已成为标配,也就是一个处理器可以“同时”执行多个任务,这样可以最大化利用处理器,并且支持更多的功能。","在线程创建后,如果需要把线程绑定到某个处理器,则可以设置处理器亲和性,使得该线程被绑定在指定的线程上运行。","在线程结构体中,有链表,基础信息,栈信息,调度信息,以及内核的资源。","在获取nxos的系统源码后,您需要下载编译nxos的工具链(点我跳转),下载好后,进行环境变量的配置。","在解析","在解除页面映射的时候,循环调用","在设备开机后,处理器会跳到一个地址去执行代码,一般都是固定的,然后再从这些固定代码跳转到程序员自己编写的程序。程序员自己写的程序就是裸机,rtos或者操作系统。在nxos中,不同的平台会有不同的执行地址,所以我们需要指定内核程序的入口地址,在链接的时候指定一个标签","在调试过程中会遇到很多问题,需要耐心地调试。","在这里三级和二级页表项的","在进程的运行过程中也会涉及到堆的分配,栈的扩展等。","在释放页面的时候,需要引用计数为0的时候,才会去正在释放这个页面。","地址空间通过映射和解除映射来进行管理,类似于分配和释放的操作。","地址翻译模式","地址转换的全过程图示(来源于","基于","基于ticks实现的定时器,基于线性链表实现","填充内存","复制内存","多核中很重要的一个机制就是自旋锁,当需要访问公共资源的时候,就需要自旋锁来上锁,才能保证多个核同时访问数据的正确性。自旋锁依赖于原子操作,而原子操作又需要硬件做支持。","多核的实现是需要硬件支持的,操作系统内核只是根据硬件做一定的抽象,做好多核间的同步与互斥。","多核调度","多核,多架构,多平台。","头文件","如","如果","如果type为feat和fix,则该","如果你的修改影响了不止一个scope,你可以使用*代替。","如果函数参数为空,必须使用void作为入口函数,例如:","如果只是需要运行起来,不需要线程环境,那么就只需要","如果当前定时器的值超过了超时定时器寄存器的值的时候,就会触发一个中断。注意:前提是打开了定时器中断。","如果您在文档中发现了问题或者想参与文档的编写,可以在文档仓库提出","如果支持多核,就可以在这个时候去唤醒其他核。不支持的话返回","如果是一个静态对象,不需要创建,那么可以直接调用初始化,并传入该对象的地址即可,参数同上。","如果是对静态的定时器进行初始化,只需要调用","如果需要在类型定义中使用指针,则需要使用ptr后缀或者其他可以表达意思的单词指明。","字节,","它会根据虚拟地址来做页表遍历,如果","安全管理","完成配置后,就可以进行编译了,编译的时候就会根据最新的配置进行编译。","定义一个单元测试","定时器","定时器支持","定时器时钟","定时器是基于系统时钟实现的,精度比较低(1ms~10ms),可以用于线程的休眠,以及对于休眠精度不高的场景。","实现","实现的时候有使用到。","实现输出,也可以通过自己操作寄存器实现。在早期,调用","实现,","寄存器","寄存器。然后刷新快表。","寄存器中;","寄存器保存。","寄存器的","寄存器,并转换出页表的地址。","寄存器,访问的地址都是新的","对于","对于中内存对象,就是使用一个链表来管理。","对于大内存对象,就直接从物理内存管理器分配和释放,不使用链表管理。","对于小内存对象,会划分得比较细,如:16,","对于应用程序来说,可以使用","对于开发者而言,我们已经做好了配置,你只需要知道如何去使用即可。","对处理器多核的启动和初始化","对应的页表项。将结果保存到","对象即可,传入工作对象的地址即可。","对进程的内存管理,是对它的虚拟地址进行管理。由于会有多个进程的存在,所以会对每个进程的虚拟地址","对齐的方式,","将肯定出现在","尝试获取互斥体","就会发起一次切换。这样,在人看来,就是多个任务在","就会将他们全部处理,调用定时器超时处理函数,然后更新最近超时定时器的ticks。","就可以升级为进程。除此之外,还会有一些其它进程独有的资源。","就可以启动线程,线程就可以开始运行了。","就可以让出执行权。值得注意的是,本线程不会阻塞,会在下一个时机再次被调度。","就是虚拟地址对应的物理地址。","就注册了串口中断,可以接受输入。","尽管伙伴内存算法在内存碎片问题上已经做的相当出色,但是该算法中,一个很小的块往往会阻碍一个大块的合并,一个系统中,对内存块的分配,大小是随机的,一片内存中仅一个小的内存块没有释放,旁边两个大的就不能合并。","属于分时优先级,优先级","属于实时优先级。在使用过程中,通常使用宏,而不是直接使用数字。优先级宏如下:","工作队列的优先级如下,其中","工具链","带clean的单元","带setup和clean的单元","带setup的单元","常用的功能组件,小工具,log显示以及字符串操作等","平台","平台初始化","平台开发者实现)","平台支持,存放具体的平台,比如pc平台或者一个开发板","平台框架","平台配置文件,配置了支持的平台","年","年推出的","并传入定时器的地址即可。","应用核只需要设置中断表地址,初始化自己的中断控制器即可。","应该成立,因为它们指向了下一级页表。","应该说明代码变动的动机,以及与以前行为的对比。","延迟队列","建议在括号前留出一个空格(涉及的包括","开始,intel","开源协议,可以自由的复制和修改代码,只需要保留版权说明即可,无潜在的商业风险。","引导核初始化完成后,会初始化内核,在内核初始化完成后,就会进入启动应用核的阶段","当","当你要使用某个平台的配置时,需要通过设置默认配置来进行选择。","当使用宏条件#if,","当函数参数过多的时候,一行写不下,那么就需要把每个参数写成一行。","当前","当前实现的线程结构体如下:","当前的进程。","当处理器调用","当宏需要使用多行的时候,则使用空格+\"\\\"的形式进行换行,例如:","当开启","当我们添加代码要提交到git仓库中时,我们需要统一下规范,这样不会显得整个项目乱糟糟的,当然是需要花点时间来学习和改变的。每次提交的代码尽量短小,涉及范围不要太广,专注于某个领域。","当时钟中断产生的时候,会改变ticks的值,与此同时也会去检测是否有定时器超时,如果有定时器超时,则会去处理定时器超时函数。","当有一个定时器的ticks到达了最近超时定时器的ticks值的时候,就去检测定时器链表,如果有多个同样超时的定时器,","当线程需要休眠的时候,就需要传入休眠的时间,","当超时后,就会产生一个中断,于是就设置下一个中断产生时的超时值。","当需要停止定时器的时候,调用","当需要注销某个中断的时候,只需要传入中断号以及注册时的数据即可。相当于解除了中断函数的绑定。","彩色日志输出","影响的范围,比如文件系统,进程管理,内存管理等等,视项目不同而不同。","很多情况下,需要获取当前线程,可以使用","快速体验","快速入门","总结","恢复线程","我们也将页表分为三级页表,二级页表,一级页表。","我们以简洁、高效、稳定为核心,用比较简洁且高效的方式去实现一些功能,去掉一些复杂,冗杂的功能,化繁为简。","我们可以把一个页表放到一个物理页中,并用一个物理页号来描述它。","我们是使用基于缓存的链表来管理堆,这种方式的原理是,在释放一个页面后,会放到一个链表上面,下次分配的时候,直接从链表获取内存对象即可。","我们采用的是世界上最流行的qemu虚拟机,各种平台都有支持,刚好有我们需要的版本。","我们需要管理的内存就是","我们需要管理的物理内存是除了保留地址和操作系统占用以外的空闲的内存,这部分内存就是需要在操作系统运行的过程中进行静态/动态分配的内存。","我们首先会记录装载「当前所用的三级页表的物理页」的页号到","或者提交","截至2017年5月,risc","所以需要计算出产生一次中断,需要间隔多少个tick即可。","所以,4kb也就延续到64位系统了。所以,我们使用4kb作为一个页面的大小。","所以,分配和释放的基础单位就是页面。通常来说,页面大小是4kb,也可以更大,但是由于4kb在32位操作系统中可以很好地对4gb内存进行映射,","所以,需要在内核中实现同样的功能,在","所有需要对接的接口都存放在","打开文件","打开目录","打开设备","执行。","执行用户态程序","执行结束后,会从机器模式跳转到位于监护者模式的内核中,并且寄存器","执行,那么入口程序的移植就完成了。","把","把内核加载到内核中,然后跳转进去执行。","拿到1个线程执行,避免内核跑飞。","挂起线程","指令去实现。内存指令屏障使用","指令实现。","指令获取。","指令集","指定了虚拟地址需要映射到的物理地址,映射的时候,就把虚拟地址映射到该物理地址(未来做共享内存的时候会用到)","指定的地址就行了。使用","接下来,我们给出","接口","控制的,置为1则表示使能中断,置为0则表示禁用中断。","推荐的一个不错的终端(非必须)下载后安装即可。","描述","提交规则","提供的唤醒核心功能即可。","撤销上一次的","操作系统更多运行在","支持","支持gdb调试内核","支持vf","支持中断管理","支持串口输入输出","支持定时器","支持特权保护的处理器架构中,都提供了模式切换的指令。至少需要有两个特权级,一个用于内核态,特权更高,可以直接访问硬件。另外一个用于用户态,","支持线程绑定核,处理器均衡负载","支持虚拟地址","支持进程","支持配置日志输出时间,格式,名称,颜色,消息等级等","改变了build工具","数组中,ptearray[0]","整体框架","文件名称也是使用首字母大写,如果有缩写,可以全部都大写。文件命名尽量不要使用通用化、使用频率高的名称。例如:mutexlock.c","文件系统","文件系统框架以及各种文件系统支持","文件:src/arch/riscv64/include/arch/mmu.h","文件:src/arch/riscv64/kernel/context.","文件:src/arch/riscv64/kernel/sbi_entry.","文件:src/arch/riscv64/port/atomic.c","文件:src/arch/riscv64/port/barrier.c","文件:src/arch/riscv64/port/clock.c","文件:src/arch/riscv64/port/context.c","文件:src/arch/riscv64/port/interrupt.c","文件:src/arch/riscv64/port/mmu.c","文件:src/arch/riscv64/port/process.c","文件:src/arch/riscv64/port/smp.c","文件:src/platform/qemu_riscv64/drivers/direct_uart.c","文件:src/platform/qemu_riscv64/hal/init.c","文档版本","新架构的移植,都是按照一套统一的接口去实现的。","时间模块,时钟和定时器","时间管理","时间长度后,就会被唤醒,继续往后执行。","时,mmu","映射内存","映射某段空间的时候,会先检测地址是否被使用,如果已经被使用了,就不能直接使用这块地址。没有被使用,就可以在地址空间中添加一个","映射的物理内存。","映射的虚拟地址。","映射虚拟地址,但是会指定物理地址,就不用自动分配物理地址了。","映射表,切换进程的时候需要修改硬件","是一个分时多进程/多线程(也支持实时优先级),支持","是使能","是在该延迟中断工作初始化的时候设定的。","是必需的,bodi","是映射虚拟地址,会自动分配物理地址并映射页面。","是虚拟地址转换成为物理地址的硬件机制。在开启","暂不设计,等内核基本功能完成后再设计","暂不需要","更新配置文件","更贴近,也不用管太多机器模式需要做的事情。通常,","最先超时的定时器会插入到链表头,超时时间比较久的定时器会被加入到链表的末尾。","最后,如果想要保存当前的配置到选中的平台,则需要在执行save操作才行。操作完后,你所修改的配置就保存了,当切换到其它平台后,这个配置依然存在,只需要重复第一步,更新一下配置即可。","最后,当有中断产生的时候,就可以去激活中断工作,那么则需要调用","最小的单元测试","最开始是可以不开启","最开始,内核是没有线程概念的,处理器只有一个执行流。","最精简框架:","有一个例外,就是如果遇到循环函数,里面不会执行代码的情况,括号就直接写在右边。","有一个定时器链表来记录所有等待超时的定时器,值得注意的是,它们是通过线性的方式插入到链表中的。","有两个注意点:","有创建工作,那么就有销毁工作,只需要传入工作对象的地址即可。","有必要的时候,也会在需要物理内存的时候,直接调用该分配。","有时候需要终止某个线程的运行,就需要使用","有的情况下,当一个页面被多次使用的时候,需要去增加其引用计数,来避免被释放掉。","服务器下载(较慢)","本文档存放了工具链的下载地址,搭建编译环境的时候需要下载工具链后再进行编译。","本文档存放的是用户程序的编程接口的设计说明。","本文档将带您从入门到劝退。","本文档是关于nxos的代码编程风格的描述。开发者必须遵守本文档规范进行开发。nxos系统内核使用c语言作为主要开发语言,因此以下规则仅仅适用于c语言代码。","机器模式用于固件程序代码执行,例如","来分配页面。然后调用","来动态地分配内存,那么,对于内核来说,也需要这样的功能。","来处理工作","来映射一个页面。","来管理一段连续的物理内存。需要制定物理内存地址和物理内存大小。","来解除页面的映射。","来进行超时。","构建过程或辅助工具的变动,比如把grub改成了uefi。","枚举结构名也是用大驼峰,枚举成员使用全大写,单词间用\"_\"隔开。","枢纽系统","架构","架构中,内存全(读和写)屏障使用","架构中,有3个特权级(machine,","架构中,有4个特权级(ring0,","架构相关代码,x86,","架构进行","架构首度出现在","标志有多重,表明不同类型的定时器。","格式的可执行程序的时候,需要映射一段内存来储存代码和数据,就会用到映射功能。","格式(不影响代码运行的变动)","框架","检查文件结束","模式中我们采用三级页表,即将","模式去调用内核提供的服务。","模式的定时器中断,然后再设置超时定时器的值。","模式(因为线程的切换是在内核中完成的)。","模式,进入内核。内核只需要链接到","模式,降低开发的复杂度。","欢迎来到nxos内核!nxos是一个跨平台的简洁的高性能,高稳定性的操作系统内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。","正好是一个物理页的大小。","此时,处理器就进入线程环境,开启线程调度生涯。","步骤拆解","每个线程执行一段时间后,就会切换到其它线程执行。这个切换可能是主动的,也可能是被动的。线程在阻塞(block)和让出(yield)的时候是属于线程主动发起切换。在","每个线程都有一个其对应的线程结构体,使用其来记录线程的信息,比如线程链表,线程状态,线程栈等基础信息。","每个页表都用","每次提交,commit","永远别忘了第2行是空行","没有对象才重新从物理内存管理器中分配,有的话就直接从链表上面摘取。","没有资源即可。","注册了中断后,并不能产生中断,还需要解除中断的屏蔽(unmask),相当于打开中断。除此之外,如果不希望产生该中断,则需要屏蔽某个中断(mask),相当于关闭中断。","注意,\"//\"注释只能放到右边。","测试","测试模块,测试框架和测试代码","清空内存","源代码的注释不应该过多,更多的说明应该是代码做了什么,仅当个别关键点才需要一些相应提示性的注释以解释一段复杂的算法它是如何工作的。对语句的注释只能写在它的上方或右方,其他位置都是非法的。","然后再初始化中断,初始化物理内存管理。","然后激活中断队列工作,然后就返回,完成了本次中断。等到没有中断的时候,再去从延迟队列中获取一个工作来处理其对应的中断下半部分处理工作。","片上","物理内存分配/释放管理之伙伴算法(buddy)","物理内存管理","物理内存管理,使用伙伴算法实现。","物理页号对应的物理页基址(即物理页号左移12位)加上","物理页的属性如下:","特权模式","特权级寄存器的命名规则,特权模式+寄存器名字,表示只能在该特权级使用。比如status寄存器,在机器模式有mstatus,监管模式有sstatus。","用于分发系统调用,不同的架构传参数的方式会有区别,因此需要特殊处理。","用于在进程切换的时候切换页表。","用于在进程创建的时候,创建进程的页表","用于在进程退出的时候释放页表。","用于获取内核的页表。","用于说明","用于进程从内核跳到用户态执行。","用到的xbuild脚本和kconfig脚本等","用户态驱动框架","用户模式就是应用程序执行的模式,需要通过系统调用进入到","由于","由于中断数量会比较多,因此,都会有一个中断表来注册中断。然后由一个寄存器或者多个寄存器来记录该表的地址。产生中断的时候会去查表,根据具体的中断号去找对应的中断处理函数,简单来说就是去调用中断的回调函数。","由于中断是具有一定优先级的,有的中断需要先处理,而有的中断则可以后处理,因此就有了多个中断队列,每个队列的优先级是不同的。至于需要加入哪种队列,","由于任务数量众多,如何管理它们,是要做到公平运行还是谁先谁后,这和应用场景密切相关。","由于切换了","由于我们想实现1秒钟产生","由于每个虚拟地址都需要有一个对应的物理地址,因此调用物理页面分配函数","由于线程的切换速度非常快,一般在","百度网盘链接,提取码:nxo","的","的任务被唤醒,就得立即切换过去执行。","的内存范围,但是,只要在访问前映射","的初期目标是运行在一些高性能的嵌入式设备上,比如手机终端,游戏掌机等。后期目标是能够作为服务器使用,甚至是桌面操作系统使用。","的大小。","的好处是,可以直接使用串口的输入输出,很方便调试,不用自己从机器模式跳转到","的封装。","的时候,内核也能够正常运行,新进程的地址访问也不会出错。","的时候,就去获取一个线程来运行。","的时候,每个进程都会把部分","的现代操作系统,它和","的类别,只允许使用下面7个标识。","的设置,","的详细描述,可以分成多行。下面是一个范例。","的页表项。","的页表项,ptearray[1]","的页表项,ptearray[2]","的页表项,页表项存放了物理页的地址。","的,最开始不需要跑进程,","监管者模式的页表的地址是由地址转换寄存器","监管者模式,这样可以和","目前支持的是mmu","目录","目录下面,新的平台只需要支持这些接口的功能即可。","目录名称采用首字母大写的形式,子目录应该是属于父目录的内容,需要有相关性。例如:drivers/disk/","目标","目的的简短描述,不超过50个字符。","直接内存存取控制器","相信看到最后,您已经对我们的编程规范有了一定的了解,那么就开始您的nxos开发之旅吧!","着重点:参数,返回值,功能。","硬件回填根","硬件时钟会按照一定的频率去增长当前定时器寄存器的值,在","神经网络处理器(kpu)","移动内存","移植一个新的平台需要实现如下内容:","移植过程是需要慢慢琢磨,长期积累,才能实现更好的代码。","究竟是何物?mmu","第","第一个字母小写","第一次执行时,为平台做初始化","第一次编译一个新的平台的时候需要clean一下","等hub","等于","等内核基础功能完成后实现","等待线程退出","等待进程退出","等机制。","等,但是在","简介","算法中有一定的浪费现象,伙伴算法是按2的幂次方大小进行分配内存块,当然这样做是有原因的,即为了避免把大的内存块拆的太碎,更重要的是使分配和释放过程迅速。但是他也带来了不利的一面,如果所需内存大小不是2的幂次方,就会有部分页面浪费。有时还很严重。比如原来是1024个块,申请了16个块,再申请600个块就申请不到了,因为已经被分割了。","算法中,每个小的对象都有一个对应的链表来管理内存对象,分配的时候先去链表上获取对象,","算法的具体实现不进行讲解,除非你需要来优化这部分代码,才需要了解到,如果只是去使用,那么就只需要熟悉接口即可。","系统中分配的页面。","系统调用","系统调用支持","系统调用是指用户态程序通过特殊的指令陷入到内核态,执行内核态提供的服务程序,然后再返回到用户态。","系统调用的实现,是基于特权级切换指令实现的,一般都是中断或者异常。用户态通过调用这些指令,就会产生一个中断或者异常,处理器会去中断表中查找系统调用指令对应的处理函数,然后就根据系统调用的","系统调用表是在内核固定下来的,不同的架构只要根据固定的","索引文件","线程","线程上下文","线程创建好后,需要启动线程,调用","线程完成了自己的工作后,可以主动退出运行,调用","线程是具有优先级的,优先级高的线程先运行,优先级低的线程后运行。在","线程有一个让出当前执行的操作,就是暂时不允许,希望把运行机会让给其它线程,做一个\"好人\",此时调用","线程栈使用","线程的创建是","线程等都有自己独立的工作任务。","线程管理","线程,","线程,来保证处理器至少能够","终止线程","终止进程","结尾不加句号(.)","结束时执行的函数使用","结构体命名使用大驼峰风格,结构体成员使用小驼峰命名,如果成员是函数指针,则使用大驼峰。","结构体的类型定义是为了消除struct关键字,可以和结构体名一致。","编程风格","编译器工具链","编译并运行","编译源码并运行","编译源码并运行,默认使用qemu虚拟机模拟运行,按下小写的ctrl+x后再按下a则可以退出qemu运行。","编译运行","缩进请采用","网络系统","而内核的任务调度属于","而在桌面和服务器领域,需要保证任务的公平性,即使优先级比较低,也要能够得到运行。","而是处理中断延迟工作,然后就直接返回。等到响应了该中断之后,再去调用延迟队列中的工作。","而每个页表项都是","自从进入21世纪,处理器的性能就有了瓶颈,不再迅猛增长。此时就有人提出多个处理器一起工作的方式,来弥补处理器性能的问题。","至于在","获取tls的值","获取也表的时候,需要读取","获取互斥体","获取当前的时间","获取文件偏移","获取系统运行的时间","获取线程id","获取自己的线程指针。","获取进程id","获取默认配置","菜单配置","虚拟内存管理","虚拟化模式用于使用虚拟化的场景,目前还在开发阶段。","虚拟地址在映射的时候,需要指定对应的地址空间,然后就是传入一个想要映射的地址,如果为0,那么就会自动分配一个地址。","虚拟地址的实现和访问,mmu的切换,映射和解除页面映射","虚拟平台中,内存布局如下:","虚拟平台运行","虚拟文件系统,目前支持cpio只读文件系统实现","虚拟机","表示只超时一次,","表示周期性地按照","解压到工具目录下面","解压到路径:nxo","解除地址映射的时候,需要制定虚拟地址和内存大小,如果在已经映射的内存空间中匹配到vmnode,就可以将其解除映射,并释放其","解除地址映射,解除后就不能访问了。","解除映射内存","解除映射的时候,会先判断该地址是否映射,已经映射才能解除。会先解除物理内存映射,然后再把","解除每一个页面。","计时器时钟","计时器时钟用于驱动多线程的切换和内核定时器","记录了当前处理器核心的","记录:","设备管理","设置tls的值","设置临时环境变量,在目录中有脚本来设置,直接运行即可。windows使用bat,linux使用sh。","设置了线程的入口地址,那么","设置当前的时间","设置环境变量","设置页表的地址到硬件寄存器中,当访问虚拟地址的时候,会根据设置的页表进行地址转换。","设置页表的时候,需要将页表基地址写入","该代码简单地设置了栈就进入了","该函数最后返回的是","该操作只是多了对","该项目2010年始于加州大学伯克利分校,但许多贡献者是该大学以外的志愿者和行业工作者。","语句),而运算表达式中,运算符与字符串间留一个空格。另外,不要在括号的表达式两侧留空格,例如:","语句与","语句采用","语句,switch","请使用英文做为注释,使用中文注释将意味着在编写代码时需要来回不停的切换中英文输入法从而打断编写代码的思路。并且使用英文注释也能够比较好的与中国以外的技术者进行交流。除非必须引用原来的文本的时候,就可以写中文。","读取文件","读取目录","读取设备","课程)来介绍多级页表原理的介绍:","调度模块,线程和smp的内容,以及同步机制","调度管理","调用平台的初始化代码","调试完成后,需要将配置信息和文件保存到对应平台中,使得配置永久生效。","转换成那","较多的链表和位图操作,开销还是比较大的。","输入","运行方法","返回","返回。","返回后就可以让","还有一个很重要的地方就是对状态寄存器","还有值得注意的是,获取处理器的索引","还有重要的优先级","还能自动处理依赖关系。","这3个接口都是对","这个函数,如果","这个符号,因此会进入","这么做的目的是为了避免用户恶意程序对系统的损坏,对设备进行恶意操作。于是用户态核与内核态之间的接口就出现了,它就是系统调用。","这就意味着这个地址是没有映射。","这是操作需要通过","这样处理器通过这种多次转换,终于从虚拟页号找到了一级页表项,","这样的话,内核也就占用了一部分的内存,那么我们应该去管理哪部分内存呢?","这里只需要调用","这里的快表可以理解为缓存,可以加快虚拟地址到物理地址的转换。","进入nxos源码,打开终端。","进入一个单元测试时执行","进入到nxos目录中,在目录中打开一个终端。","进入单元时执行","进程在启动前,需要加载对应的代码、数据到内存中,然后才开始执行。","进程地址空间(vmspace)就是用来管理进程的虚拟地址的。由于不同地址会有不同的用途,于是会有虚拟地址节点(vmnode)来管理","进程地址空间的管理使用链表来维护每一个节点,节点是根据虚拟地址的值来进行线性排序,低地址在链表的开头,高地址在链表的结尾。","进程执行独立的程序,程序运行出故障也不会导致系统出现故障。因此可以把一些服务程序放到用户态作为进程执行,当服务出错的时候不会导致","进程执行结束的时候,需要退出,并传入退出时候的状态码。","进程是具有独立的线性地址空间的线程集合,是线程的容器。在现代操作系统中,硬件的","进程的实现依赖于","进程管理","进程管理相关操作是实现进程的必要条件","进程管理,系统调用相关内容","进程虚拟内存管理之虚拟空间","进程虚拟内存管理,基于线性链表实现","进程间通信","进行内核服务的分发,去调用对应的内核函数。","进行独立的管理,于是进程地址空间就出现了。","进行菜单配置,就可以选择你想要的功能或者进行某些功能的配置。配置完后,可以根据菜单的提示进行退出或者保存。","连接起来。例如:","退出","退出k210的运行","退出qemu","退出一个单元测试时执行","退出单元时执行","退出线程","退出进程","选择了","选择最新版本下载即可。下载后,安装到一个路径,再把路径配置到path系统环境变量中即可。","通常,内核会使用","通常,都是在启动后尽快地实现串口调试,以便能够知道自己跑到什么地方了。","通过","通过单元测试和集成测试","通过对","那么","部分是对本次","都为","都会被映射成索引,相当于是处理器","都包括两个部分:header和body。","配置环境变量时的路径:nxo","配置环境并运行","采取架构和平台分离的措施,其原因在于,一个架构可能有多个平台,分离后可以服用架构的代码。","采用混合内核框架,也就是结合宏内核和微内核。这样的系统有","释放一个tl","释放互斥体","释放内存","释放的时候,也是先释放到链表上面,当链表超出了最大链表长度阈值的时候,才会释放到物理内存分配器中。","里面分配","里面释放某个地址指针,该指针必须是从","里面,它们是","重置读取位置","针对","针对函数单元进行测试,测试函数的基本功能,稳定性,健壮性,覆盖率。","销毁一个线程是只需要传入线程地址即可。注意,销毁不代表把线程从运行队列中摘除,只是释放线程占用的内存。","阵列","除此之外就是对某个中断的使能","除此之外,还提供了一个获取某个内存对象大小的功能,传入地址即可获取内存对象所在的","除此之外,还提供了对当前中断状态保存和恢复的操作","除此之外,还有一个最近超时的时间变量,来记录下一个即将超时的定时器,可以用它来检测是否需要去检测定时器链表。","需要注册某个中断的时候,需要传入中断号,绑定中断处理函数,设置中断的参数数据,设置中断的名字。","需要能够访问用户态的内存,需要在返回后开启中断以及设置为","需要调用一个最为核心的函数,就是","非叶子页面,就是页表,在释放的时候调用","音频处理器(apu)","页表项映射到内核,并设置权限为内核才能访问,这样就能实现切换","页表项格式如下:","页面分配函数,可以从一个","页面属性的定义如下:","页面释放函数,从一个","项目目录","预留一个上下文空间后,设置参数为","首先会释放叶子页面,也就是虚拟地址最终对应的物理地址,而页表是非叶子页面。","驱动程序,磁盘,输入输出设备等","(一般在100~1000)次定时器中断的效果,","(以上摘自百度百科)","(内存管理单元)为虚拟内存的实现奠定基础。",",产生中断后,就去该寄存器保存的中断向量表地址找中断号对应的中断服务。",",以及中断处理完后的应答处理",",以及将这些数据构建在栈顶",",以及进程标志",",其内核的入口地址为",",及时调度的精度低一点也没有太大影响。",",可以根据寄存器的值来判断处理器",",因为risc",",处理函数参数",",并复制内核的页表项。",",所有地址都变成虚拟地址了。",",显然超过了",",来实现进程的虚拟地址空间。每个进程都有一个",",线程处理函数",",要加载程序的路径",",超时后调用的处理函数",",这样才能保证时间的精度。",",那么就切换到线程里面去了。",",那么访问的地址就只能是在"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"NXOS 简介","keywords":"","body":"文档版本 v0.1 基于 NXOS develop 分支\n如果您在文档中发现了问题或者想参与文档的编写,可以在文档仓库提出 issuse 或者提交 pr :\nnxos-doc\n一、NXOS 简介\nNXOS是Next XBook Operating System的意思,是一个跨平台的简洁、高性能、高稳定性的支持多核的混合内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。\n我们以简洁、高效、稳定为核心,用比较简洁且高效的方式去实现一些功能,去掉一些复杂,冗杂的功能,化繁为简。\nNXOS 是一个分时多进程/多线程(也支持实时优先级),支持 MMU 的现代操作系统,它和 Linux 内核, WindowsNT 内核是同一个数量级的。\nNXOS采用混合内核架构,即宏内核和微内核相结合。优势是减小内核代码,增加功能可扩展性,功能模块是独立的进程,添加和删除模块就是进程的创建和关闭。\n二、NXOS 目标\nNXOS 的初期目标是运行在一些高性能的嵌入式设备上,比如手机终端,游戏掌机等。后期目标是能够作为服务器使用,甚至是桌面操作系统使用。\n内核就只负责基础功能的支持,平台移植和驱动的移植,具体如何使用,可以根据用户态的 sdk 和服务,应用程序去构建应用。\n三、内核功能\nNXOS 支持 SMP 多核,多架构,多平台。\n\n\n\n功能\n描述\n\n\n\n\n物理内存管理\nbuddy伙伴算法\n\n\n虚拟内存管理\nheapCache算法\n\n\n线程管理\n以线程为最小调度单元\n\n\nSMP多核调度\n支持线程绑定核,处理器均衡负载\n\n\n支持中断管理\n中断管理框架,以及延迟中断队列机制\n\n\n支持定时器\n基于ticks实现的定时器,基于线性链表实现\n\n\n支持虚拟地址\n在MMU的基础上对内核和进程进行隔离\n\n\n支持进程\n可以运行用户态的程序\n\n\n支持串口输入输出\n可以通过串口输出调试,也可以通过串口输入按键\n\n\n支持vfs\n虚拟文件系统,目前支持cpio只读文件系统实现\n\n\n支持gdb调试内核\nqemu平台支持gdb调试,并搭配了vscode图形化调试\n\n\n彩色日志输出\n支持配置日志输出时间,格式,名称,颜色,消息等级等\n\n\n其他功能正在开发中,敬请期待!\n...\n\n\n\n四、平台支持\n\n\n\nARCH\nPLATFORM\nSTATUS\n\n\n\n\nx86\ni386\nDOING\n\n\nriscv64\nqemu\nDOING\n\n\nriscv64\nk210\nDOING\n\n\nx86_64\namd64\nTODO\n\n\narm64\nqemu\nTODO\n\n\narm32\nqemu\nTODO\n\n\nlongarch\nqemu\nTODO\n\n\n\n五、许可协议\nNXOS采用 Apache-2.0 开源协议,可以自由的复制和修改代码,只需要保留版权说明即可,无潜在的商业风险。\n"},"tutorial/quick-start.html":{"url":"tutorial/quick-start.html","title":"虚拟平台运行","keywords":"","body":"快速入门\n欢迎来到NXOS内核!NXOS是一个跨平台的简洁的高性能,高稳定性的操作系统内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。\n本文档将带您从入门到劝退。\n一、开发环境搭建\n1. 编译器工具链\n在获取NXOS的系统源码后,您需要下载编译NXOS的工具链(点我跳转),下载好后,进行环境变量的配置。\n2. 虚拟机\n我们采用的是世界上最流行的QEMU虚拟机,各种平台都有支持,刚好有我们需要的版本。\na. Windows环境\n下载链接:https://qemu.weilnetz.de/w64/ \n选择最新版本下载即可。下载后,安装到一个路径,再把路径配置到Path系统环境变量中即可。\nb. Linux环境\n可以直接在终端中输入命令安装:\n# Ubuntu/Kali Linux: \nsudo apt-get install qemu-system-i386\nsudo apt-get install qemu-system-riscv64\n# Red hat/Fedora/Centos: \nsudo yum install qemu-system-i386\nsudo yum install qemu-system-riscv64\n\n3. 其他工具\n其他涉及到的工具:python mtools make git genisoimage mkfs grub2\na. Windows环境\n(cmder) 推荐的一个不错的终端(非必须)下载后安装即可。\n(python)下载后安装即可。\n(git)下载后安装即可。\n为了方便,我们将其他比较小的工具已经打包在一个工具包里面了,下载解压后,手动添加对应的工具到系统环境变量即可。\nnxos-windows-tools服务器下载(速度较慢,请耐心等待)\n下载后需要解压出来,然后将每一个目录配置到Path系统环境变量中(最好是配置到环境变量的最前面,避免和其它系统已经存在的工具冲突),解压后您将会有:\nnxos-windows-tools/\nnxos-windows-tools/genisoimage\nnxos-windows-tools/grub-2.04\nnxos-windows-tools/mkfs\nnxos-windows-tools/mtools\nb. Linux环境\n可以直接在终端中输入命令安装:\n# Ubuntu/Kali Linux: \nsudo apt-get install python mtools make git genisoimage mkfs grub2 truncate\n# Red hat/Fedora/Centos: \nsudo yum install python mtools make git genisoimage mkfs grub2 truncate\n\n二、编译和运行\n进入到NXOS目录中,在目录中打开一个终端。\n1. 快速体验\n# 1. 设置环境变量\nsetup.bat # Windows环境\nsource setup.sh # linux环境\n\n# 2. 配置环境并运行\nmake prepare && make defconfig && make run\n\n\n输入 Ctrl+a x 退出 QEMU\n输入 Ctrl+d 退出 GDB\n\n2. 步骤拆解\n\n设置临时环境变量,在目录中有脚本来设置,直接运行即可。windows使用bat,linux使用sh。\n\n# Windows下设置i386环境并设置PLATFORM=x86-i386\nsetup.bat\n# Windows下设置riscv64环境PLATFORM=riscv64-qemu_riscv64\nsetup.bat riscv64-qemu_riscv64\n\n# Linux下设置i386环境并设置PLATFORM=x86-i386\nsource setup.sh\n# Linux下设置riscv64环境PLATFORM=riscv64-qemu_riscv64\nsource setup.sh riscv64-qemu_riscv64\n\n\n为选中的平台做初始化(仅仅第一次编译的时候需要),会为每一个平台下载平台特别需要的工具到平台中。\n\n# 第一次执行时,为平台做初始化\nmake prepare\n\n\n加载平台的默认配置,会读取选中的平台的默认menuconfig配置到工作区中。\n\nmake defconfig\n\n\n使用菜单配置进行个性化剪裁。可以选择打开或者关闭某些功能,设置一些变量等。配置完成后需要按ESC键退出,退出后会生成新的配置头文件。\n\nmake menuconfig\n\n\n编译源码并运行,默认使用QEMU虚拟机模拟运行,按下小写的ctrl+x后再按下a则可以退出QEMU运行。\n\n# 第一次编译一个新的平台的时候需要clean一下\nmake clean\n# 编译源码并运行\nmake run\n# 仅仅编译源码\nmake\n\n\n调试完成后,需要将配置信息和文件保存到对应平台中,使得配置永久生效。\n\nmake saveconfig\n\n"},"programing-manual/base/framework.html":{"url":"programing-manual/base/framework.html","title":"整体框架","keywords":"","body":"NXOS 框架\n一、混合内核框架\nNXOS 采用混合内核框架,也就是结合宏内核和微内核。这样的系统有 Windows NT 内核、苹果 XNU 内核,还有国产开源系统 RT-Thread Smart。 \n+-----------------------------------+\n| app |\n+-----------------------------------+\n| (fatfs, extfs, netstack) |\n+-----------------------------------+\n| nxbase | udrivers | userverce |\n+-----------------------------------+\n/ syscall /\n+-----------------------------------+\n| vfs | hub system |\n+-----------------------------------+\n| kdrivers | kservice |\n+-----------------------------------+\n| thread | vmm | irq | timer |\n+-----------------------------------+\n| arch (x86, arm, riscv, ...) | \n+-----------------------------------+\n| hardware |\n+-----------------------------------+\n二、目录框架\n1. 项目目录\n\n\n\n目录\n描述\n\n\n\n\n.vscode\nvscode的一些配置文件,有gdb调试配置\n\n\nconfigs\n平台配置文件,配置了支持的平台\n\n\ndocs\n内核一些功能的文档说明\n\n\nscripts\n用到的xbuild脚本和kconfig脚本等\n\n\nsrc\nnxos 内核的源码\n\n\n\n2. 内核源码目录\n\n\n\n目录\n描述\n\n\n\n\narch\n架构相关代码,x86, riscv64等\n\n\ndrivers\n驱动程序,磁盘,输入输出设备等\n\n\nfs\n文件系统框架以及各种文件系统支持\n\n\ninclude\n头文件\n\n\ninit\n内核初始化以及main核心\n\n\nio\nI/O驱动框架和中断管理\n\n\nipc\n进程间通信\n\n\nkernel\n内核其余模块\n\n\nmm\n内存管理模块\n\n\nplatform\n平台支持,存放具体的平台,比如pc平台或者一个开发板\n\n\nprocess\n进程管理,系统调用相关内容\n\n\nsched\n调度模块,线程和SMP的内容,以及同步机制\n\n\ntest\n测试模块,测试框架和测试代码\n\n\ntime\n时间模块,时钟和定时器\n\n\nutils\n常用的功能组件,小工具,log显示以及字符串操作等\n\n\n\n3. 平台框架\nNXOS 采取架构和平台分离的措施,其原因在于,一个架构可能有多个平台,分离后可以服用架构的代码。\n\n\n\n架构\n平台\n\n\n\n\nx86\ni386, pc\n\n\nriscv64\nvirt riscv64, k210, d1\n\n\n\n"},"programing-manual/base/start.html":{"url":"programing-manual/base/start.html","title":"启动流程","keywords":"","body":"NXOS 启动流程\n在设备开机后,处理器会跳到一个地址去执行代码,一般都是固定的,然后再从这些固定代码跳转到程序员自己编写的程序。程序员自己写的程序就是裸机,rtos或者操作系统。在nxos中,不同的平台会有不同的执行地址,所以我们需要指定内核程序的入口地址,在链接的时候指定一个标签 _Start,当执行到这个地方的时候,内核就开始运行了。\n内核执行路径\n-> _Start\n -> NX_Main (内核的主函数)\n -> NX_SMP_Preload\n -> NX_HalPlatformInit (平台初始化, 不能使用内核的功能: 平台开发者实现)\n -> ShowLogVersion\n -> ... 内核功能初始化 ...\n -> NX_CallsInit (初始化调用)\n -> NX_HalPlatformStage2 (平台初始化二阶段,可以使用内核的功能: 平台开发者实现) \n\n -> NX_SMP_Main (SMP初始化)\n -> NX_SchedToFirstThread (调度第一个线程)\n -> NX_HalPlatformMain (平台的主函数,什么都可以使用: 平台开发者实现)\n"},"programing-manual/mm/mm.html":{"url":"programing-manual/mm/mm.html","title":"内存管理","keywords":"","body":"内存管理\n内存管理是操作系统中最为核心和重要的部分,这是由于很多其它模块的运行都需要内存的分配和释放。\n内存管理分为物理内存管理、虚拟内存管理、进程虚拟内存管理这三个大模块。\n一. 物理内存管理,使用伙伴算法实现。\n二. 内核虚拟堆内存管理,使用基于缓存的链表实现\n三. 进程虚拟内存管理,基于线性链表实现\n"},"programing-manual/mm/buddy.html":{"url":"programing-manual/mm/buddy.html","title":"buddy伙伴算法","keywords":"","body":"物理内存分配/释放管理之伙伴算法(buddy)\n一. 描述\n内存是操作系统运行的根基,处理器从内存中取出指令来执行,在进入操作系统之前,一般会有引导器 bootloader 把内核加载到内核中,然后跳转进去执行。\n这样的话,内核也就占用了一部分的内存,那么我们应该去管理哪部分内存呢?\n我们需要管理的物理内存是除了保留地址和操作系统占用以外的空闲的内存,这部分内存就是需要在操作系统运行的过程中进行静态/动态分配的内存。\nnxos 在 qemu 的 riscv64 虚拟平台中,内存布局如下:\n/**\n * Physical memory layout:\n *\n * +------------------------+ \n我们需要管理的内存就是 0x82000000-TOP 之间的这部分内存。简单的说就是对一段或者多段空闲的内存地址进行管理,可以进行分配与释放,让操作系统去使用。\n二. 原理\n在 nxos 中使用 buddy 伙伴内存管理算法。为了便于页面的维护,将多个页面组成内存块,每个内存块都有2的方幂个页,方幂的指数被称为阶。在操作内存时,经常将这些内存块分成大小相等的两个块,分成的两个内存块被称为伙伴块,采用一位二进制数来表示它们的伙伴关系。当这个位为1,表示其中一块在使用;当这个位为0,表示两个页面块都空闲或者都在使用。系统根据该位为0或位为1来决定是否使用或者分配该页面块。系统每次分配和回收伙伴块时都要对它们的伙伴位跟1进行异或运算。所谓异或是指刚开始时,两个伙伴块都空闲,它们的伙伴位为0,如果其中一块被使用,异或后得1;如果另一块也被使用,异或后得0;如果前面一块回收了异或后得1;如果另一块也回收了异或后得0。\n算法的具体实现不进行讲解,除非你需要来优化这部分代码,才需要了解到,如果只是去使用,那么就只需要熟悉接口即可。\n\n优缺点\n\n尽管伙伴内存算法在内存碎片问题上已经做的相当出色,但是该算法中,一个很小的块往往会阻碍一个大块的合并,一个系统中,对内存块的分配,大小是随机的,一片内存中仅一个小的内存块没有释放,旁边两个大的就不能合并。\n\n算法中有一定的浪费现象,伙伴算法是按2的幂次方大小进行分配内存块,当然这样做是有原因的,即为了避免把大的内存块拆的太碎,更重要的是使分配和释放过程迅速。但是他也带来了不利的一面,如果所需内存大小不是2的幂次方,就会有部分页面浪费。有时还很严重。比如原来是1024个块,申请了16个块,再申请600个块就申请不到了,因为已经被分割了。\n\n另外拆分和合并涉及到 较多的链表和位图操作,开销还是比较大的。\n\n\n三、框架图\n\n四. 接口\n内存管理最基本的接口就是分配和释放。为了能够支持分页机制,为页表映射提供内存的支持,将内存分为页面大小进行管理会比较合适。\n所以,分配和释放的基础单位就是页面。通常来说,页面大小是4kb,也可以更大,但是由于4kb在32位操作系统中可以很好地对4GB内存进行映射,\n所以,4kb也就延续到64位系统了。所以,我们使用4kb作为一个页面的大小。\n在初始化的时候,会创建一个 buddy system 来管理一段连续的物理内存。需要制定物理内存地址和物理内存大小。\nNX_BuddySystem* NX_BuddyCreate(void *mem, NX_Size size);\n\n页面分配函数,可以从一个 buddy system 里面分配 count 个页面。在MMU映射和虚拟内存管理器中会使用到。\n有必要的时候,也会在需要物理内存的时候,直接调用该分配。\nvoid *NX_BuddyAllocPage(NX_BuddySystem* system, NX_Size count);\n\n页面释放函数,从一个 buddy system 里面释放某个地址指针,该指针必须是从 buddy 系统中分配的页面。\n在释放页面的时候,需要引用计数为0的时候,才会去正在释放这个页面。\nNX_Error NX_BuddyFreePage(NX_BuddySystem* system, void *ptr);\n\n有的情况下,当一个页面被多次使用的时候,需要去增加其引用计数,来避免被释放掉。\nNX_Error NX_BuddyIncreasePage(NX_BuddySystem* system, void *ptr);\n\n在使用页面的过程中,可能会需要把一个地砖转换成其对应的页面结构,来访问该结构里面的成员,这在虚拟内存管理器\n实现的时候有使用到。\nNX_Page* NX_PageFromPtr(NX_BuddySystem* system, void *ptr);\n\n"},"programing-manual/mm/heap.html":{"url":"programing-manual/mm/heap.html","title":"heapCache虚拟内存管理","keywords":"","body":"内核虚拟内存管理之堆内存\n一、描述\n对于应用程序来说,可以使用 malloc 和 free 来动态地分配内存,那么,对于内核来说,也需要这样的功能。\n所以,需要在内核中实现同样的功能,在 nxos 里面,它们是 NX_MemAlloc 和 NX_MemFree。\n我们是使用基于缓存的链表来管理堆,这种方式的原理是,在释放一个页面后,会放到一个链表上面,下次分配的时候,直接从链表获取内存对象即可。\n二、原理\n在 heap cache 算法中,每个小的对象都有一个对应的链表来管理内存对象,分配的时候先去链表上获取对象,\n没有对象才重新从物理内存管理器中分配,有的话就直接从链表上面摘取。\n释放的时候,也是先释放到链表上面,当链表超出了最大链表长度阈值的时候,才会释放到物理内存分配器中。\n在 heap cache 中,内存对象被划分成3类,小(16byte size size size > 1mb)内存对象。\n对于小内存对象,会划分得比较细,如:16, 32, 48, 64, 80, 96, 112, 128等。\n对于中内存对象,就是使用一个链表来管理。\n对于大内存对象,就直接从物理内存管理器分配和释放,不使用链表管理。\n三、框架图\n\n四、接口\n内核分配堆内存的接口,需要传入待分配内存的大小,即可获取一个内存地址,如果为空,那么就是分配失败了。\n通常,内核会使用 NX_MemAlloc 去分配内存。\nvoid *NX_HeapAlloc(NX_Size size);\n#define NX_MemAlloc(size) NX_HeapAlloc(size)\n\n内存释放堆内存的时候,需要传入内存对象地址,并返回释放的状态。\n通常,内核会使用 NX_MemFree 去释放内存。\nNX_Error NX_HeapFree(void *object);\n#define NX_MemFree(ptr) NX_HeapFree(ptr)\n\n除此之外,还提供了一个获取某个内存对象大小的功能,传入地址即可获取内存对象所在的 cache 的大小。\n使用的时候需要注意,必须是通过 NX_HeapAlloc 分配的内存对象。\nNX_Size NX_HeapGetObjectSize(void *object);\n\n"},"programing-manual/mm/vmspace.html":{"url":"programing-manual/mm/vmspace.html","title":"vmspace虚拟地址空间","keywords":"","body":"进程虚拟内存管理之虚拟空间\n一、描述\n进程在启动前,需要加载对应的代码、数据到内存中,然后才开始执行。\n在进程的运行过程中也会涉及到堆的分配,栈的扩展等。\n对进程的内存管理,是对它的虚拟地址进行管理。由于会有多个进程的存在,所以会对每个进程的虚拟地址\n进行独立的管理,于是进程地址空间就出现了。\n进程地址空间(vmspace)就是用来管理进程的虚拟地址的。由于不同地址会有不同的用途,于是会有虚拟地址节点(vmnode)来管理\n不同用法的地址。\n二、原理\n进程地址空间的管理使用链表来维护每一个节点,节点是根据虚拟地址的值来进行线性排序,低地址在链表的开头,高地址在链表的结尾。\n地址空间通过映射和解除映射来进行管理,类似于分配和释放的操作。\n映射某段空间的时候,会先检测地址是否被使用,如果已经被使用了,就不能直接使用这块地址。没有被使用,就可以在地址空间中添加一个\nvmnode,节点记录了地址的信息以及这段地址的属性。\n值得注意的是,映射的时候,还会去对内存进行物理内存映射,只有映射后,进程才能访问该地址。\n解除映射的时候,会先判断该地址是否映射,已经映射才能解除。会先解除物理内存映射,然后再把 vmnode 删除。\n三、框架图\n\n四、接口\n虚拟地址在映射的时候,需要指定对应的地址空间,然后就是传入一个想要映射的地址,如果为0,那么就会自动分配一个地址。\n以及这个地址对应的内存大小,内存节点的属性,已经一些扩展的标志。\n在解析 elf 格式的可执行程序的时候,需要映射一段内存来储存代码和数据,就会用到映射功能。\n以及在做进程的堆分配和栈扩展的时候,都会使用到。\nNX_Error NX_VmspaceMap(NX_Vmspace *space,\n NX_Addr addr,\n NX_Size size,\n NX_U32 attr,\n NX_U32 flags,\n void **outAddr);\n\n/* 指定了虚拟地址需要映射到的物理地址,映射的时候,就把虚拟地址映射到该物理地址(未来做共享内存的时候会用到) */\nNX_Error NX_VmspaceMapWithPhy(NX_Vmspace *space,\n NX_Addr vaddr,\n NX_Addr paddr,\n NX_Size size,\n NX_U32 attr,\n NX_U32 flags,\n void **outAddr);\n\n解除地址映射的时候,需要制定虚拟地址和内存大小,如果在已经映射的内存空间中匹配到vmnode,就可以将其解除映射,并释放其\n映射的物理内存。\nNX_Error NX_VmspaceUnmap(NX_Vmspace *space, NX_Addr addr, NX_Size size);\n\n"},"programing-manual/sched/sched.html":{"url":"programing-manual/sched/sched.html","title":"调度管理","keywords":"","body":"调度管理\n在现代操作系统中,多任务已成为标配,也就是一个处理器可以“同时”执行多个任务,这样可以最大化利用处理器,并且支持更多的功能。\n由于任务数量众多,如何管理它们,是要做到公平运行还是谁先谁后,这和应用场景密切相关。\n在嵌入式领域,rtos的实时性是非常重要的。简单来说,就是一个优先级最高的任务在执行的时候,低优先级的任务得不到执行,如果有更高\n的任务被唤醒,就得立即切换过去执行。\n而在桌面和服务器领域,需要保证任务的公平性,即使优先级比较低,也要能够得到运行。\n在内核中,涉及到多任务的是线程管理,调度算法,多核调度。\n一. 线程管理\n二. 多核调度\n"},"programing-manual/sched/thread.html":{"url":"programing-manual/sched/thread.html","title":"线程管理","keywords":"","body":"线程管理\n一. 描述\n内核的最小调度单位是线程,每个线程都有自己独立的栈,寄存器组,以及一些运行信息等。\n以线程为最小调度单元的好处是可以很方便支持内核态以及用户态的多线程,并且层次框架也比较好,容易实现。\n每个线程都有一个其对应的线程结构体,使用其来记录线程的信息,比如线程链表,线程状态,线程栈等基础信息。\n在创建一个线程后,可以运行该线程,可以让线程去完成一些独立的工作。内核中的 idle 线程, deamon 线程等都有自己独立的工作任务。\n二. 原理\n当前实现的线程结构体如下:\nstruct NX_Thread\n{\n /* thread list */\n NX_List list;\n NX_List globalList;\n NX_List exitList;\n NX_List processList; /* list for process */\n\n NX_Spin lock; /* lock for thread */\n\n /* thread info */\n NX_ThreadState state;\n NX_I32 tid; /* thread id, -1 means no alloc failed */\n NX_ThreadHandler handler;\n void *threadArg;\n char name[NX_THREAD_NAME_LEN];\n\n /* thread stack */\n NX_U8 *stackBase; /* stack base */\n NX_Size stackSize; \n NX_U8 *stack; /* stack top */\n\n /* thread sched */\n NX_U32 timeslice;\n NX_U32 ticks;\n NX_U32 fixedPriority; /* fixed priority, does not change dynamically */\n NX_U32 priority; /* dynamic priority, or in the case of time-sharing scheduling priority will change dynamically */\n NX_U32 needSched;\n NX_U32 isTerminated;\n NX_UArch onCore; /* thread on which core */\n NX_UArch coreAffinity; /* thread would like to run on the core */\n\n /* thread resource */\n NX_ThreadResource resource;\n};\ntypedef struct NX_Thread NX_Thread;\n\n在线程结构体中,有链表,基础信息,栈信息,调度信息,以及内核的资源。\n最开始,内核是没有线程概念的,处理器只有一个执行流。\n在完成内核的初始化后,会创建 idle 线程,来保证处理器至少能够\n拿到1个线程执行,避免内核跑飞。\n当处理器调用 NX_SchedToFirstThread 的时候,就去获取一个线程来运行。\n此时,处理器就进入线程环境,开启线程调度生涯。\n每个线程执行一段时间后,就会切换到其它线程执行。这个切换可能是主动的,也可能是被动的。线程在阻塞(block)和让出(yield)的时候是属于线程主动发起切换。在\n产生时钟中断的时候,会去减少线程的时间片,时间片为0后,再去切换线程,这是属于线程被动切换。\n由于线程的切换速度非常快,一般在 1ms~100ms 就会发起一次切换。这样,在人看来,就是多个任务在\n同时运行。比如你一边听歌,一边写代码,其实就是音乐播放器和代码编辑器这两个任务在快速切换而形成的效果。\n\n线程是具有优先级的,优先级高的线程先运行,优先级低的线程后运行。在 nxos 中,分为实时优先级和分时优先级。实时优先级是,只要有高的优先级,就不能运行低的优先级。而分时优先级是高低优先级线程都能得到运行,只是低优先级线程运行的时间更少而已。优先级 [0, 6] 属于分时优先级,优先级 [7, MAX - 1] 属于实时优先级。在使用过程中,通常使用宏,而不是直接使用数字。优先级宏如下:\n\n/* time-sharing priority */\n#define NX_THREAD_PRIORITY_IDLE 0 /* idle thread priority */\n#define NX_THREAD_PRIORITY_LOW 1 /* low level priority */\n#define NX_THREAD_PRIORITY_NORMAL 3 /* normal level priority */\n#define NX_THREAD_PRIORITY_HIGH 6 /* high level priority */\n\n#define NX_THREAD_PRIORITY_RT_MIN (NX_THREAD_PRIORITY_HIGH + 1) /* real time min priority */\n#define NX_THREAD_PRIORITY_RT_MAX (NX_THREAD_MAX_PRIORITY_NR - 1) /* real time max priority */\n\n三、框架图\n\n四. 接口\n线程的创建是 NX_ThreadCreate , 传入线程的名字 name ,线程处理函数 handler 以及参数 arg , 还有重要的优先级 priority,即可创建一个线程,返回线程的地址。\n但是注意,此时只是创建了线程,还没有启动线程。\nNX_Thread *NX_ThreadCreate(const char *name, NX_ThreadHandler handler, void *arg, NX_U32 priority);\n\n销毁一个线程是只需要传入线程地址即可。注意,销毁不代表把线程从运行队列中摘除,只是释放线程占用的内存。\nNX_Error NX_ThreadDestroy(NX_Thread *thread);\n\n在线程创建后,如果需要把线程绑定到某个处理器,则可以设置处理器亲和性,使得该线程被绑定在指定的线程上运行。\nNX_Error NX_ThreadSetAffinity(NX_Thread *thread, NX_UArch coreId);\n\n线程创建好后,需要启动线程,调用 NX_ThreadStart 就可以启动线程,线程就可以开始运行了。\nNX_Error NX_ThreadStart(NX_Thread *thread);\n\n有时候需要终止某个线程的运行,就需要使用 NX_ThreadTerminate 去终止线程,传入线程指针即可。\nNX_Error NX_ThreadTerminate(NX_Thread *thread);\n\n线程完成了自己的工作后,可以主动退出运行,调用 NX_ThreadExit 函数即可退出当前线程的运行。\nvoid NX_ThreadExit(void);\n\n很多情况下,需要获取当前线程,可以使用 NX_ThreadSelf 获取自己的线程指针。\nNX_Thread *NX_ThreadSelf(void);\n\n线程有一个让出当前执行的操作,就是暂时不允许,希望把运行机会让给其它线程,做一个\"好人\",此时调用 NX_ThreadYield 就可以让出执行权。值得注意的是,本线程不会阻塞,会在下一个时机再次被调度。\nvoid NX_ThreadYield(void);\n\n当线程需要休眠的时候,就需要传入休眠的时间, 在 nxos 内核中,休眠的单位是毫秒,休眠 microseconds 时间长度后,就会被唤醒,继续往后执行。\nNX_Error NX_ThreadSleep(NX_UArch microseconds);\n\n"},"programing-manual/sched/smp.html":{"url":"programing-manual/sched/smp.html","title":"SMP多核调度","keywords":"","body":"多核调度\n一. 描述\n自从进入21世纪,处理器的性能就有了瓶颈,不再迅猛增长。此时就有人提出多个处理器一起工作的方式,来弥补处理器性能的问题。\n二. 原理\n多核的实现是需要硬件支持的,操作系统内核只是根据硬件做一定的抽象,做好多核间的同步与互斥。\n多核中很重要的一个机制就是自旋锁,当需要访问公共资源的时候,就需要自旋锁来上锁,才能保证多个核同时访问数据的正确性。自旋锁依赖于原子操作,而原子操作又需要硬件做支持。\n一般情况下,第一个引导处理器(Boot Processor)启动后,进入内核,完成初始化,再由引导处理器去唤醒其它处理器,通常称为应用处理器(Application Processor)。 AP 启动后,会进行一些初始化,然后参加到调度工作中。而调度队列的实现就需要依赖于原子操作来保证对公共队列访问的正确性。\n三、框架图\n \n \n \n \n SMP多核启动流程 \n \n\n\n \n \n \n \n SMP负载均衡 \n \n\n"},"programing-manual/process/process.html":{"url":"programing-manual/process/process.html","title":"进程管理","keywords":"","body":"进程管理\n一. 描述\n进程是具有独立的线性地址空间的线程集合,是线程的容器。在现代操作系统中,硬件的 MMU (内存管理单元)为虚拟内存的实现奠定基础。\n线程 + MMU 就可以升级为进程。除此之外,还会有一些其它进程独有的资源。\n进程执行独立的程序,程序运行出故障也不会导致系统出现故障。因此可以把一些服务程序放到用户态作为进程执行,当服务出错的时候不会导致\n内核崩溃。\n二. 原理\n进程的实现依赖于 MMU ,来实现进程的虚拟地址空间。每个进程都有一个 MMU 映射表,切换进程的时候需要修改硬件 MMU 寄存器,访问的地址都是新的 MMU 映射的虚拟地址。\n由于切换了 MMU 后,访问的地址会发生变化。因此,为了能够保证访问内核的时候是正确的,在映射 MMU 的时候,每个进程都会把部分\n页表项映射到内核,并设置权限为内核才能访问,这样就能实现切换 MMU 的时候,内核也能够正常运行,新进程的地址访问也不会出错。\n那么 MMU 究竟是何物?MMU 是虚拟地址转换成为物理地址的硬件机制。在开启 MMU 前,访问的地址都是物理地址,\n即直接访问的是内存的地址。比如内存只有 32MB ,那么访问的地址就只能是在 32MB 以内进行数据存取。\n当开启 MMU 后,访问的地址就是虚拟地址了。此时访问的地址,会通过 MMU 转换成那 32MB 内的物理地址,\n再去对物理地址进行存取。比如虚拟地址是 0xF0000000 ,显然超过了 32MB 的内存范围,但是,只要在访问前映射 0xF0000000 到\n 32MB 内的物理地址,就能正确地进行数据存取,不然,则会产生页面故障。\n三、框架图\n\n四. 接口\n创建进程的时候,需要从文件系统上加载程序的代码和数据,然后再去执行进程的代码。\n启动进程的时候,需要传入进程的名字 name ,要加载程序的路径 path ,以及进程标志 flags。\nNX_Error NX_ProcessLaunch(char *name, char *path, NX_U32 flags);\n\n进程执行结束的时候,需要退出,并传入退出时候的状态码。\nvoid NX_ProcessExit(int exitCode);\n\n"},"programing-manual/process/syscall.html":{"url":"programing-manual/process/syscall.html","title":"系统调用","keywords":"","body":"系统调用\n一. 描述\n在现代操作系统中,分为了内核态和用户态。内核态是内核程序本身,可以对设备资源进行管理核控制。而用户态只能够去调用内核提供的服务,不能够直接对资源进行访问。\n这么做的目的是为了避免用户恶意程序对系统的损坏,对设备进行恶意操作。于是用户态核与内核态之间的接口就出现了,它就是系统调用。\n系统调用是指用户态程序通过特殊的指令陷入到内核态,执行内核态提供的服务程序,然后再返回到用户态。\n支持特权保护的处理器架构中,都提供了模式切换的指令。至少需要有两个特权级,一个用于内核态,特权更高,可以直接访问硬件。另外一个用于用户态,\n只能通过系统调用执行内核提供好的服务。在 x86 架构中,有4个特权级(ring0, ring1, ring2, ring3),在 riscv 架构中,有3个特权级(Machine, Supervisor, User)。\n二. 原理\n系统调用的实现,是基于特权级切换指令实现的,一般都是中断或者异常。用户态通过调用这些指令,就会产生一个中断或者异常,处理器会去中断表中查找系统调用指令对应的处理函数,然后就根据系统调用的 API 进行内核服务的分发,去调用对应的内核函数。\n值得注意的是,在执行系统调用期间,需要打开中断,避免在系统调用时出现死循环,导致内核卡死。\n三、框架图\n\n四. 接口\n系统调用表是在内核固定下来的,不同的架构只要根据固定的 API 值,就能获取到对应的内核服务功能,然后以函数指针的方式去调用执行即可。\nNX_SyscallHandler NX_SyscallGetHandler(NX_SyscallApi api);\n\n"},"programing-manual/interrupt/irq.html":{"url":"programing-manual/interrupt/irq.html","title":"中断系统","keywords":"","body":"中断管理\n一、描述\n中断是由处理器支持的一个临时打断当前执行流的功能,可分为设备中断和处理器异常。设备中断就是当网卡设备收到数据后会产生一个中断,打断处理器当前在处理的事情,去处理网络数据包。异常中断就是当处理器执行了一个不存在的指令或者访问了一个没有权限的内存地址,处理器就会中断当前的执行流,去对异常做一个处理,一般都是 kill 当前的进程。\n二、原理\n中断管理的实现是基于处理器的中断管理机制的,不同的架构具体实现机制可能有差别,但是在大体逻辑上都是一致的,因此可以抽象出一套统一的接口来供上层使用。\n由于中断数量会比较多,因此,都会有一个中断表来注册中断。然后由一个寄存器或者多个寄存器来记录该表的地址。产生中断的时候会去查表,根据具体的中断号去找对应的中断处理函数,简单来说就是去调用中断的回调函数。\n中断是可以全局打开和关闭的,打开后才会响应中断。除此之外,对于每一个具体的中断,都可以打开和关闭,在禁止了网卡中断后,即使打开了全局中断,也收不到网络数据包了。但是,异常是不可以屏蔽的,异常是来告诉内核出现一些问题了,需要根据具体的异常做处理。有的异常是不可以修复的,会导致系统死机,有的异常时可以修复的,比如页故障,可以拿来实现页面延迟映射, COW 等机制。\n三、框架图\n\n四、接口\n需要注册某个中断的时候,需要传入中断号,绑定中断处理函数,设置中断的参数数据,设置中断的名字。\nNX_Error NX_IRQ_Bind(NX_IRQ_Number irqno,\n NX_IRQ_Handler handler,\n void *data,\n char *name,\n NX_U32 flags);\n\n当需要注销某个中断的时候,只需要传入中断号以及注册时的数据即可。相当于解除了中断函数的绑定。\nNX_Error NX_IRQ_Unbind(NX_IRQ_Number irqno, void *data);\n\n注册了中断后,并不能产生中断,还需要解除中断的屏蔽(unmask),相当于打开中断。除此之外,如果不希望产生该中断,则需要屏蔽某个中断(mask),相当于关闭中断。\nNX_Error NX_IRQ_Unmask(NX_IRQ_Number irqno);\nNX_Error NX_IRQ_Mask(NX_IRQ_Number irqno);\n\n前面有讲到关于全局中断的打开和关闭,全局中断的打开是 NX_IRQ_Enable 函数,相反关闭则是\n NX_IRQ_Disable 。由于有的时候只是为了暂时关闭中断,处理完后需要恢复中断的状态,于是则需要使用保存中断的状态和恢复中断的状态,即 NX_IRQ_SaveLevel 和 NX_IRQ_RestoreLevel 。\n#define NX_IRQ_Enable() NX_IRQ_ControllerInterface.enable()\n#define NX_IRQ_Disable() NX_IRQ_ControllerInterface.disable()\n#define NX_IRQ_SaveLevel() NX_IRQ_ControllerInterface.saveLevel()\n#define NX_IRQ_RestoreLevel(level) NX_IRQ_ControllerInterface.restoreLevel(level)\n\n"},"programing-manual/interrupt/delay_queue.html":{"url":"programing-manual/interrupt/delay_queue.html","title":"延迟队列","keywords":"","body":"中断延迟队列\n一、描述\n中断延迟队列是一种延迟处理中断的机制,类似于 linux 中断机制中的中断下半部分,用来进行具体的中断处理。\n中断的要求是快速地响应中断,并且是关闭了全局中断的,然后回到之前的工作。而延迟队列就是来完成这个工作的,产生了中断后,只进行最少的工作,\n然后激活中断队列工作,然后就返回,完成了本次中断。等到没有中断的时候,再去从延迟队列中获取一个工作来处理其对应的中断下半部分处理工作。\n二、原理\n中断延迟队列在某个驱动或者内核组件中会进行初始化。当产生中断的时候,在中断处理函数中,只对中断产生时的数据进行保存,不对中断产生时的数据进行处理,\n而是处理中断延迟工作,然后就直接返回。等到响应了该中断之后,再去调用延迟队列中的工作。\n由于中断是具有一定优先级的,有的中断需要先处理,而有的中断则可以后处理,因此就有了多个中断队列,每个队列的优先级是不同的。至于需要加入哪种队列,\n是在该延迟中断工作初始化的时候设定的。\n工作队列的优先级如下,其中 NX_IRQ_FAST_QUEUE 优先级最高, NX_IRQ_SLOW_QUEUE 优先级最低。\nenum NX_IRQ_DelayQueue \n{\n NX_IRQ_FAST_QUEUE = 0,\n NX_IRQ_NORMAL_QUEUE,\n NX_IRQ_PERIOD_QUEUE,\n NX_IRQ_SCHED_QUEUE,\n NX_IRQ_SLOW_QUEUE,\n NX_IRQ_QUEUE_NR,\n};\n\n内核的定时器属于 NX_IRQ_FAST_QUEUE ,这样才能保证时间的精度。\n而内核的任务调度属于 NX_IRQ_SCHED_QUEUE ,及时调度的精度低一点也没有太大影响。\n三、框架图\n\n四、接口\n创建一个延迟的中断工作,需要传入中断工作处理函数入口,以及函数执行时的参数,就可以创建一个延迟的工作对象。\nNX_IRQ_DelayWork *NX_IRQ_DelayWorkCreate(NX_IRQ_WorkHandler handler, void *arg, NX_U32 flags);\n\n如果是一个静态对象,不需要创建,那么可以直接调用初始化,并传入该对象的地址即可,参数同上。\nNX_Error NX_IRQ_DelayWorkInit(NX_IRQ_DelayWork *work, NX_IRQ_WorkHandler handler, void *arg, NX_U32 flags);\n\n有创建工作,那么就有销毁工作,只需要传入工作对象的地址即可。\nNX_Error NX_IRQ_DelayWorkDestroy(NX_IRQ_DelayWork *work);\n\n创建了一个中断工作对象,就需要将其加入到某个延迟队列中,只需要传入队列和工作对象的地址即可。\nNX_Error NX_IRQ_DelayQueueEnter(NX_IRQ_DelayQueue queue, NX_IRQ_DelayWork *work);\n\n和加入延迟队列相反,有离开延迟队列,那么和加入的参数一样,只是意思相反而已。\nNX_Error NX_IRQ_DelayQueueLeave(NX_IRQ_DelayQueue queue, NX_IRQ_DelayWork *work);\n\n最后,当有中断产生的时候,就可以去激活中断工作,那么则需要调用 NX_IRQ_DelayWorkHandle 来处理工作\n对象即可,传入工作对象的地址即可。\nNX_Error NX_IRQ_DelayWorkHandle(NX_IRQ_DelayWork *work);\n\n"},"programing-manual/timer/timer.html":{"url":"programing-manual/timer/timer.html","title":"定时器","keywords":"","body":"定时器\n一、描述\n定时器是基于系统时钟实现的,精度比较低(1ms~10ms),可以用于线程的休眠,以及对于休眠精度不高的场景。\n二、原理\n当时钟中断产生的时候,会改变ticks的值,与此同时也会去检测是否有定时器超时,如果有定时器超时,则会去处理定时器超时函数。\n有一个定时器链表来记录所有等待超时的定时器,值得注意的是,它们是通过线性的方式插入到链表中的。\n最先超时的定时器会插入到链表头,超时时间比较久的定时器会被加入到链表的末尾。\n除此之外,还有一个最近超时的时间变量,来记录下一个即将超时的定时器,可以用它来检测是否需要去检测定时器链表。\n当有一个定时器的ticks到达了最近超时定时器的ticks值的时候,就去检测定时器链表,如果有多个同样超时的定时器,\n就会将他们全部处理,调用定时器超时处理函数,然后更新最近超时定时器的ticks。\n三、框架图\n\n四、接口\n创建定时器需要指定需要超时的时间 milliseconds ,超时后调用的处理函数 handler ,处理函数参数 arg,\n以及定时器的标志 flags。\n标志有多重,表明不同类型的定时器。 ONESHOT 表示只超时一次, PERIOD 表示周期性地按照 milliseconds 来进行超时。\n#define NX_TIMER_ONESHOT 0x01 /* timer type is one shot */\n#define NX_TIMER_PERIOD 0x02 /* timer type is period */\n\nNX_Timer *NX_TimerCreate(NX_UArch milliseconds, \n NX_Bool (*handler)(struct NX_Timer *, void *arg), void *arg, \n int flags);\n\n如果是对静态的定时器进行初始化,只需要调用 NX_TimerInit 并传入定时器的地址即可。\nNX_Error NX_TimerInit(NX_Timer *timer, NX_UArch milliseconds, \n NX_Bool (*handler)(struct NX_Timer *, void *arg), void *arg, \n int flags);\n\n在定时器还没开始运行的时候,可以销毁一个定时器,调用 NX_TimerDestroy, 只需要传入定时器对象地址即可。\nNX_Error NX_TimerDestroy(NX_Timer *timer);\n\n创建定时器后需要调用 NX_TimerStart 启动它,才可以在超时后调用回调函数。\nNX_Error NX_TimerStart(NX_Timer *timer);\n\n当需要停止定时器的时候,调用 NX_TimerStop 即可。\nNX_Error NX_TimerStop(NX_Timer *timer);\n\n"},"programing-manual/port/riscv/riscv.html":{"url":"programing-manual/port/riscv/riscv.html","title":"riscv架构移植","keywords":"","body":"RISC-V架构移植\n一、描述\nRISC-V(发音为“risk-five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。\n与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。\n该项目2010年始于加州大学伯克利分校,但许多贡献者是该大学以外的志愿者和行业工作者。\nRISC-V指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。\n截至2017年5月,RISC-V已经确立了版本2.22的用户空间的指令集(userspace ISA),而特权指令集(privileged ISA)也处在草案版本1.10。\n(以上摘自百度百科)\n二、架构简述\n1. 指令集\nRISC-V被设计成可扩展的,可以配置的,根据不同的应用场景可以生产带有不同功能扩展的处理器。\n\n2. 特权模式\nRISC-V目前有4种特权模式(Machine, Hypervisor,Supervisor, User)。\n机器模式用于固件程序代码执行,例如 OpenSBI, RustSBI 等,但是在 rtos 和裸机开发种,很多时候都是直接使用机器模式。\nHypervisor 虚拟化模式用于使用虚拟化的场景,目前还在开发阶段。\n操作系统更多运行在 Supervisor 监管者模式,这样可以和 User 更贴近,也不用管太多机器模式需要做的事情。通常, OpenSBI 和 RustSBI 初始化完成后,会跳转到 Supervisor 模式,进入内核。内核只需要链接到 SBI 指定的地址就行了。使用 SBI 的好处是,可以直接使用串口的输入输出,很方便调试,不用自己从机器模式跳转到 Supervisor 模式,降低开发的复杂度。\nUser 用户模式就是应用程序执行的模式,需要通过系统调用进入到 Supervisor 模式去调用内核提供的服务。\n\n3. 寄存器\nRISCV(RV32)具有32个整数寄存器组(取名为:x0~x31),其中31个是通用寄存器(x1~x31),它们存储整数数值,寄存器x0是硬件连线的常数0。当你设计的RISCV架构处理器实现了浮点扩展时,还必须有32个浮点寄存器f0~f31。对于RV32,其x寄存器是32位宽度的,XLEN=32,对于RV64,它们是64位宽度的,XLEN=64。\n\n\n特权级寄存器的命名规则,特权模式+寄存器名字,表示只能在该特权级使用。比如status寄存器,在机器模式有mstatus,监管模式有sstatus。\n.jpg)\n上图为机器模式状态寄存器(rv64)\n.jpg)\n上图为机器模式状态寄存器(rv32)\n3. 中断管理\nRISC-V中断分为两种类型,一种是同步中断,即ECALL、EBREAK等指令所产生的中断,另一种是异步中断,即GPIO、UART等外设产生的中断。\nRISC-V的中断管理由处理器核局部中断CLINT(CoreLocalInterrupt)和平台级中断控制器PLIC(PlatformLevelInterruptController)组成。CLINT分为软件中断核计时器中断,负责响应处理器的异常核和计时器中断。PLIC负责处理外设的中断。\n\n中断表地址需要写入管理者模式的向量基址寄存器 STVEC ,产生中断后,就去该寄存器保存的中断向量表地址找中断号对应的中断服务。\nSupervisor模式的中断的打开与关闭是由状态寄存器 SSTATUS 中的 SIE 控制的,置为1则表示使能中断,置为0则表示禁用中断。\n4. MMU内存管理单元\nRISC-V的MMU支持多种模式,有Sv32/Sv39/Sv48/Sv57/Sv64等。不同的模式映射的页面等级,页面大小是有差异的。在64位处理器种最常用的是Sv39,它是3级4KB页面大小映射。\n三、代码移植\n移植一个新的平台需要实现如下内容:\n|内容 |描述 |\n| ------- | ---------- |\n| 内核入口 | 不同的架构内核入口代码有差异,需要根据架构来实现 |\n| 平台初始化 | 调用平台的初始化代码 |\n| 原子操作 | 原子操作用于对数据的加减运算不会被打断,以及一些原子级别的数据交换等 |\n| 内存屏障 | 内存屏障前的所有读写操作完成后才能执行屏障后的读写操作 |\n| 计时器时钟 | 计时器时钟用于驱动多线程的切换和内核定时器 |\n| 线程上下文 | 上下文切换是多线程实现的根基 |\n| 中断管理 | 中断管理接口对内核以及驱动都是至关重要的 |\n| MMU虚拟内存管理 | 虚拟地址的实现和访问,MMU的切换,映射和解除页面映射 |\n| 进程管理 | 进程管理相关操作是实现进程的必要条件 |\n| SMP多核 | 对处理器多核的启动和初始化 |\n所有需要对接的接口都存放在 src/arch/riscv64/port 目录下面,新的平台只需要支持这些接口的功能即可。\n1. 内核入口\n在 nxos 中,使用了 OpenSBI 和 RustSBI 作为机器模式的固件,qemu_riscv64平台选择了 OpenSBI ,其内核的入口地址为 0x80200000,\nk210 选择了 RustSBI,其内核的入口地址为 0x80020000, RustSBI 针对 k210 做了一些兼容,使用起来比较简单。\n在 SBI 执行结束后,会从机器模式跳转到位于监护者模式的内核中,并且寄存器 a0 记录了当前处理器核心的 id ,可以根据寄存器的值来判断处理器 id。\n入口地址在链接脚本中写的是 _Start 这个符号,因此会进入 sbi_entry.S 的 _Start 执行。\n\n文件:src/arch/riscv64/kernel/sbi_entry.S\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: Riscv64 entry \n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-1 JasonHu Init\n */\n\n .section .text.start\n .extern NX_Main\n\n .globl CPU_StackTop0\n .globl CPU_StackTop1\n .globl CPU_StackTop2\n .globl CPU_StackTop3\n\n .global _Start\n_Start:\n li t0, 0\n beq a0, t0, _SetSP0\n li t0, 1\n beq a0, t0, _SetSP1\n li t0, 2\n beq a0, t0, _SetSP2\n li t0, 3\n beq a0, t0, _SetSP3\n\n j _EnterMain\n\n_SetSP0:\n la sp, CPU_StackTop0\n j _EnterMain\n\n_SetSP1:\n la sp, CPU_StackTop1\n j _EnterMain\n\n_SetSP2:\n la sp, CPU_StackTop2\n j _EnterMain\n\n_SetSP3:\n la sp, CPU_StackTop3\n j _EnterMain\n\n_EnterMain:\n csrw sscratch, sp /* first set sscrach as cpu stack here */\n csrc sstatus, 0x2 /* disable interrupt */\n call NX_Main\n\nloop:\n j loop\n\n /* set in data seciton, avoid clear bss to clean stack */\n .section .data.stack\n .align 12\n\nCPU_Stack0:\n .space 8192\nCPU_StackTop0:\n\nCPU_Stack1:\n .space 8192\nCPU_StackTop1:\n\nCoreStack2:\n .space 8192\nCPU_StackTop2:\n\nCoreStack3:\n .space 8192\nCPU_StackTop3:\n\n该代码简单地设置了栈就进入了 NX_Main 执行,那么入口程序的移植就完成了。\n2. 平台初始化\n在平台初始化 NX_HalPlatformInit 中,进行初始化,初始化完串口后,就能使用打印功能了。\n然后再初始化中断,初始化物理内存管理。\n在 NX_HalPlatformStage2中,可以使用内核的功能,内存分配,中断注册等。\n因此 NX_HalDirectUartStage2 就注册了串口中断,可以接受输入。\n\n文件:src/platform/qemu_riscv64/hal/init.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: Init Riscv64 Qemu platfrom \n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-1 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#define NX_LOG_LEVEL NX_LOG_INFO\n#define NX_LOG_NAME \"INIT\"\n#include \n\nNX_INTERFACE NX_Error NX_HalPlatformInit(NX_UArch coreId)\n{\n NX_HalClearBSS();\n\n /* NOTE: init trap first before do anything */\n CPU_InitTrap(coreId);\n\n NX_HalDirectUartInit();\n\n sbi_init();\n sbi_print_version();\n\n NX_LOG_I(\"Hello, QEMU Riscv64!\");\n\n PLIC_Init(NX_True);\n\n NX_HalPageZoneInit();\n\n return NX_EOK;\n}\n\nNX_INTERFACE NX_Error NX_HalPlatformStage2(void)\n{\n NX_LOG_I(\"stage2!\");\n\n NX_HalDirectUartStage2();\n\n return NX_EOK;\n}\n\n串口可以配置为调用 SBI 实现输出,也可以通过自己操作寄存器实现。在早期,调用 SBI 串口来输出是非常方便的。\n实现 NX_HalConsoleOutChar 函数后,就可以使用 NX_Printf 和 NX_LOG_* 函数来打印消息。\n\n文件:src/platform/qemu_riscv64/drivers/direct_uart.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: Direct uart driver \n * low-level driver routines for 16550a UART.\n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-1 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#include \n\n#ifdef CONFIG_NX_UART0_FROM_SBI\n#include \n#endif\n\n#include \n\n// the UART control registers.\n// some have different meanings for\n// read vs write.\n// see http://byterunner.com/16550.html\n#define RHR 0 // receive holding register (for input bytes)\n#define THR 0 // transmit holding register (for output bytes)\n#define IER 1 // interrupt enable register\n#define IER_RX_ENABLE (1 \n3. 原子操作\n原子操作需要实现对数据的原子设置,获取,加法,减法,数据交换等。由于 gcc 内置了原子操作的函数,\n这里只需要调用 gcc 内置的原子操作即可。\n\n文件:src/arch/riscv64/port/atomic.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: HAL NX_Atomic \n * \n * Change Logs:\n * Date Author Notes\n * 2021-12-1 JasonHu Init\n */\n\n#include \n\nNX_PRIVATE void NX_HalAtomicSet(NX_Atomic *atomic, long value)\n{\n atomic->value = value;\n}\n\nNX_PRIVATE long NX_HalAtomicGet(NX_Atomic *atomic)\n{\n return atomic->value;\n}\n\nNX_PRIVATE void NX_HalAtomicAdd(NX_Atomic *atomic, long value)\n{\n /* gcc build-in functions */\n __sync_fetch_and_add(&atomic->value, value);\n}\n\nNX_PRIVATE void NX_HalAtomicSub(NX_Atomic *atomic, long value)\n{\n __sync_fetch_and_sub(&atomic->value, value);\n}\n\nNX_PRIVATE void NX_HalAtomicInc(NX_Atomic *atomic)\n{\n __sync_fetch_and_add(&atomic->value, 1);\n}\n\nNX_PRIVATE void NX_HalAtomicDec(NX_Atomic *atomic)\n{\n __sync_fetch_and_sub(&atomic->value, 1);\n}\n\nNX_PRIVATE void NX_HalAtomicSetMask(NX_Atomic *atomic, long mask)\n{\n __sync_fetch_and_or(&atomic->value, mask);\n}\n\nNX_PRIVATE void NX_HalAtomicClearMask(NX_Atomic *atomic, long mask)\n{ \n __sync_fetch_and_and(&atomic->value, ~mask);\n}\n\nNX_PRIVATE long NX_HalAtomicSwap(NX_Atomic *atomic, long newValue)\n{\n return __sync_lock_test_and_set(&((atomic)->value), newValue);\n}\n\nNX_PRIVATE long NX_HalAtomicCAS(NX_Atomic *atomic, long old, long newValue)\n{\n return __sync_val_compare_and_swap(&atomic->value, old, newValue);\n}\n\nNX_INTERFACE struct NX_AtomicOps NX_AtomicOpsInterface = \n{\n .set = NX_HalAtomicSet,\n .get = NX_HalAtomicGet,\n .add = NX_HalAtomicAdd,\n .sub = NX_HalAtomicSub,\n .inc = NX_HalAtomicInc,\n .dec = NX_HalAtomicDec,\n .setMask = NX_HalAtomicSetMask,\n .clearMask = NX_HalAtomicClearMask,\n .swap = NX_HalAtomicSwap,\n .cas = NX_HalAtomicCAS,\n};\n\n4. 内存屏障\n在 risc-v 架构中,内存全(读和写)屏障使用 gcc 内置函数 __sync_synchronize 实现,\n内存读/写屏障使用 fence 指令去实现。内存指令屏障使用 fence.i 指令实现。\n\n文件:src/arch/riscv64/port/barrier.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: HAL Memory Barrier\n * \n * Change Logs:\n * Date Author Notes\n * 2021-12-9 JasonHu Init\n */\n\n#include \n\nNX_PRIVATE void NX_HalMemBarrier(void)\n{\n __sync_synchronize();\n}\n\nNX_PRIVATE void NX_HalMemBarrierRead(void)\n{\n NX_CASM(\"fence\":::\"memory\");\n}\n\nNX_PRIVATE void NX_HalMemBarrierWrite(void)\n{\n NX_CASM(\"fence\":::\"memory\");\n}\n\nNX_PRIVATE void NX_HalMemBarrierInstruction(void)\n{\n NX_CASM(\"fence.i\":::\"memory\");\n}\n\nNX_INTERFACE struct NX_MemBarrierOps NX_MemBarrierOpsInterface = \n{\n .barrier = NX_HalMemBarrier,\n .barrierRead = NX_HalMemBarrierRead,\n .barrierWrite = NX_HalMemBarrierWrite,\n .barrierInstruction = NX_HalMemBarrierInstruction,\n};\n\n5. 计时器时钟\n硬件时钟会按照一定的频率去增长当前定时器寄存器的值,在 qemu 中这个频率是 10MHZ 。\n如果当前定时器的值超过了超时定时器寄存器的值的时候,就会触发一个中断。注意:前提是打开了定时器中断。\n在做时钟定时器初始化的时候,需要先关闭 Supervisor 模式的定时器中断,然后再设置超时定时器的值。\n这是操作需要通过 SBI 去实现,而获取操作可以直接通过 rdtime 指令获取。\n由于我们想实现1秒钟产生 NX_TICKS_PER_SECOND (一般在100~1000)次定时器中断的效果,\n所以需要计算出产生一次中断,需要间隔多少个tick即可。\n当超时后,就会产生一个中断,于是就设置下一个中断产生时的超时值。\n\n文件:src/arch/riscv64/port/clock.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: Clock for system \n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-16 JasonHu Init\n */\n\n#include \n#include \n#include \n\n#include \n#include \n#include \n\n#define NX_LOG_NAME \"Clock\"\n#include \n\n#define NX_TIMER_CLK_FREQ 10000000 /* qemu has 10MHZ clock frequency */\n\nNX_PRIVATE NX_U64 TickDelta = NX_TIMER_CLK_FREQ / NX_TICKS_PER_SECOND;\n\nNX_PRIVATE NX_U64 GetTimerCounter()\n{\n NX_U64 ret;\n NX_CASM (\"rdtime %0\" : \"=r\"(ret));\n return ret;\n}\n\nvoid NX_HalClockHandler(void)\n{\n NX_ClockTickGo();\n /* update timer */\n sbi_set_timer(GetTimerCounter() + TickDelta);\n}\n\nNX_INTERFACE NX_Error NX_HalInitClock(void)\n{\n /* Clear the Supervisor-Timer bit in SIE */\n ClearCSR(sie, SIE_STIE);\n\n /* Set timer */\n sbi_set_timer(GetTimerCounter() + TickDelta);\n\n /* Enable the Supervisor-Timer bit in SIE */\n SetCSR(sie, SIE_STIE);\n return NX_EOK;\n}\n\n6. 线程上下文\n上下文的切换分为上下文的初始化,从当前线程切换到下一个线程,直接切换到下一个线程。\n初始化线程上下文是在栈上构建一个线程的上下文,当第一次切换到该线程的时候,寄存器就会使用栈中的值。\n在函数 NX_HalContextInit 中,需要构建的上下文参数是线程的入口 startEntry 和线程结束时执行的函数 exitEntry,\n以及线程运行时的参数 arg ,以及将这些数据构建在栈顶 stackTop 之下,最后返回栈低。\n预留一个上下文空间后,设置参数为 a0 ,因为risc-v中c语言函数参数是 a0~a7 。\n入口地址使用 epc 保存,因为上下文切换的时候会模拟一次异常返回,返回后就到这个异常地址处执行。\n结束时执行的函数使用 ra 保存,它是返回地址的意思,表示线程返回后就去执行该函数。\n线程栈使用 sp 寄存器保存。\n还有一个很重要的地方就是对状态寄存器 sstatus 的设置,\n需要能够访问用户态的内存,需要在返回后开启中断以及设置为 Supervisor 模式(因为线程的切换是在内核中完成的)。\n\n文件:src/arch/riscv64/port/context.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: NX_Thread context \n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-16 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#include \n#include \n\nNX_IMPORT void NX_HalContextSwitchNext(NX_Addr nextSP);\nNX_IMPORT void NX_HalContextSwitchPrevNext(NX_Addr prevSP, NX_Addr nextSP);\n\nNX_PRIVATE void *NX_HalContextInit(void *startEntry, void *exitEntry, void *arg, void *stackTop)\n{\n NX_U8 *stack = NX_NULL;\n NX_HalContext *context = NX_NULL;\n\n stack = (NX_U8 *)stackTop;\n stack = (NX_U8 *)NX_ALIGN_DOWN((NX_UArch)stack, sizeof(NX_UArch));\n\n stack -= sizeof(NX_HalContext);\n context = (NX_HalContext *)stack;\n\n NX_MemZero(context, sizeof(NX_HalContext));\n\n context->a0 = (NX_UArch)arg;\n context->epc = (NX_UArch)startEntry;\n context->sp = (NX_UArch)(((NX_UArch)stack) + sizeof(NX_HalContext));\n context->ra = (NX_UArch)exitEntry;\n\n /**\n * allow to access user space memory,\n * return to supervisor mode,\n * enable interrupt\n */\n#ifdef CONFIG_NX_PLATFORM_K210\n /* NOTICE: in k210, SSTATUS_SUM mean disable Supervisor Access User memroy */\n context->sstatus = SSTATUS_SPP | SSTATUS_SPIE;\n#else\n context->sstatus = SSTATUS_SUM | SSTATUS_SPP | SSTATUS_SPIE;\n#endif\n return (void *)stack;\n}\n\nNX_INTERFACE struct NX_ContextOps NX_ContextOpsInterface = \n{\n .init = NX_HalContextInit,\n .switchNext = NX_HalContextSwitchNext,\n .switchPrevNext = NX_HalContextSwitchPrevNext,\n};\n\n在上下文切换的时候,需要注意的是,传入的是线程的栈的地址,可以从地址中取出线程当前栈的值。\n使用这种方式的话,就非常方便移植到其它架构上。\n在 NX_HalContextSwitchNext 中,获取了栈的值后,就从栈中恢复寄存器上下文,然后调用 sret 返回。\n由于 epc 设置了线程的入口地址,那么 sret 返回后就可以让 pc 等于 epc ,那么就切换到线程里面去了。\n至于在 NX_HalContextSwitchPrevNext 中,多了对当前线程的上下文的保存的工作,然后切换到下一个线程。\n\n文件:src/arch/riscv64/kernel/context.S\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: NX_Thread context \n * \n * Change Logs:\n * Date Author Notes\n * 2021-12-01 JasonHu Init\n */\n\n.text\n\n#define __ASSEMBLY__\n#include \n#include \n\n/**\n * void NX_HalContextSwitchNext(NX_Addr nextSP);\n */\n.globl NX_HalContextSwitchNext\nNX_HalContextSwitchNext:\n LOAD sp, (a0) /* sp = *nextSP */\n\n RESTORE_CONTEXT\n sret\n\n/**\n * void NX_HalContextSwitchPrevNext(NX_Addr prevSP, NX_Addr nextSP);\n */\n.globl NX_HalContextSwitchPrevNext\nNX_HalContextSwitchPrevNext:\n mv t0, sp\n\n /**\n * set as supervisor mode and enable interupt \n * make sure kernel mode thread do context switch\n */\n li t1, SSTATUS_SPP | SSTATUS_SPIE | SSTATUS_SUM\n csrs sstatus, t1\n\n /**\n * set `sepc` as `ra`, `ra` saved return address of NX_HalContextSwitchPrevNext\n * when do `sret`, will return from NX_HalContextSwitchPrevNext\n */\n csrw sepc, ra\n\n /* save context to stack */\n SAVE_CONTEXT\n\n /* save old sp to stack, instead the sp in sscratch */\n STORE t0, CTX_SP_OFF * REGBYTES(sp)\n\n /* save sp to from thread, *from = `sp` */\n STORE sp, (a0)\n\n LOAD sp, (a1) /* sp = *nextSP */\n\n /* restore context from stack */\n RESTORE_CONTEXT\n\n /* supervisor return, `pc` = `sepc` */\n sret\n\n7. 中断管理\n在中断中,使能 NX_HalIrqEnable 和禁用 NX_HalIrqDisable 中断只需要对 sstatus 寄存器的 SSTATUS_SIE 位做置位和清理的操作即可。\n除此之外,还提供了对当前中断状态保存和恢复的操作 NX_HalIrqSaveLevel 和 NX_HalIrqRestoreLevel。\n该操作只是多了对 sstatus 寄存器的 SSTATUS_SIE 位保存和恢复。\n除此之外就是对某个中断的使能 NX_HalIrqUnmask 和禁用 NX_HalIrqMask ,以及中断处理完后的应答处理 NX_HalIrqAck。\n这3个接口都是对 PLIC 的封装。\n\n文件:src/arch/riscv64/port/interrupt.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: interrupt manage\n * \n * Change Logs:\n * Date Author Notes\n * 2021-10-31 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#include \n\nNX_PRIVATE NX_Error NX_HalIrqUnmask(NX_IRQ_Number irqno)\n{\n if (irqno = NX_NR_IRQS)\n {\n return NX_EINVAL;\n }\n\n return PLIC_EnableIRQ(NX_SMP_GetBootCore(), irqno);\n}\n\nNX_PRIVATE NX_Error NX_HalIrqMask(NX_IRQ_Number irqno)\n{\n if (irqno = NX_NR_IRQS)\n {\n return NX_EINVAL;\n }\n\n return PLIC_DisableIRQ(NX_SMP_GetBootCore(), irqno);\n}\n\nNX_PRIVATE NX_Error NX_HalIrqAck(NX_IRQ_Number irqno)\n{\n if (irqno = NX_NR_IRQS)\n {\n return NX_EINVAL;\n }\n\n return PLIC_Complete(NX_SMP_GetBootCore(), irqno);\n}\n\nNX_PRIVATE void NX_HalIrqEnable(void)\n{\n WriteCSR(sstatus, ReadCSR(sstatus) | SSTATUS_SIE);\n}\n\nNX_PRIVATE void NX_HalIrqDisable(void)\n{\n WriteCSR(sstatus, ReadCSR(sstatus) & ~SSTATUS_SIE);\n}\n\nNX_PRIVATE NX_UArch NX_HalIrqSaveLevel(void)\n{\n NX_UArch level = 0;\n level = ReadCSR(sstatus);\n WriteCSR(sstatus, level & ~SSTATUS_SIE);\n return level & SSTATUS_SIE;\n}\n\nNX_PRIVATE void NX_HalIrqRestoreLevel(NX_UArch level)\n{\n WriteCSR(sstatus, ReadCSR(sstatus) | (level & SSTATUS_SIE));\n}\n\nNX_INTERFACE NX_IRQ_Controller NX_IRQ_ControllerInterface = \n{\n .unmask = NX_HalIrqUnmask,\n .mask = NX_HalIrqMask,\n .ack = NX_HalIrqAck,\n .enable = NX_HalIrqEnable,\n .disable = NX_HalIrqDisable,\n .saveLevel = NX_HalIrqSaveLevel,\n .restoreLevel = NX_HalIrqRestoreLevel,\n};\n\n8. MMU虚拟内存管理\n目前支持的是mmu-sv39,3级页表,页表和物理页都是4kb大小。\nNX_HalMapPage 是映射虚拟地址,会自动分配物理地址并映射页面。\nNX_HalMapPageWithPhy 映射虚拟地址,但是会指定物理地址,就不用自动分配物理地址了。\nNX_HalUnmapPage 解除地址映射,解除后就不能访问了。\nNX_HalVir2Phy 可以通过虚拟地址找到其映射的物理地址。\nNX_HalSetPageTable 设置页表的地址到硬件寄存器中,当访问虚拟地址的时候,会根据设置的页表进行地址转换。\nNX_HalGetPageTable 可以获取页表的地址。\nNX_HalEnable 是使能 MMU ,所有地址都变成虚拟地址了。\n\n文件:src/arch/riscv64/port/mmu.c\n\nNX_PRIVATE void *NX_HalMapPage(NX_Mmu *mmu, NX_Addr virAddr, NX_Size size, NX_UArch attr)\n{\n NX_ASSERT(mmu);\n if (!attr)\n {\n return NX_NULL;\n }\n\n virAddr = virAddr & NX_PAGE_ADDR_MASK;\n size = NX_PAGE_ALIGNUP(size);\n\n NX_UArch level = NX_IRQ_SaveLevel();\n void *addr = __MapPage(mmu, virAddr, size, attr);\n NX_IRQ_RestoreLevel(level);\n return addr;\n}\n\nNX_PRIVATE void *NX_HalMapPageWithPhy(NX_Mmu *mmu, NX_Addr virAddr, NX_Addr phyAddr, NX_Size size, NX_UArch attr)\n{\n NX_ASSERT(mmu);\n if (!attr)\n {\n return NX_NULL;\n }\n\n virAddr = virAddr & NX_PAGE_ADDR_MASK;\n phyAddr = phyAddr & NX_PAGE_ADDR_MASK;\n size = NX_PAGE_ALIGNUP(size);\n\n NX_UArch level = NX_IRQ_SaveLevel();\n void *addr = __MapPageWithPhy(mmu, virAddr, phyAddr, size, attr);\n NX_IRQ_RestoreLevel(level);\n return addr;\n}\n\nNX_PRIVATE NX_Error NX_HalUnmapPage(NX_Mmu *mmu, NX_Addr virAddr, NX_Size size)\n{\n NX_ASSERT(mmu);\n\n virAddr = virAddr & NX_PAGE_ADDR_MASK;\n size = NX_PAGE_ALIGNUP(size);\n\n NX_Addr addrStart = virAddr;\n NX_Addr addrEnd = virAddr + size - 1;\n NX_Size pages = GET_PF_ID(addrEnd) - GET_PF_ID(addrStart) + 1;\n\n NX_UArch level = NX_IRQ_SaveLevel();\n NX_Error err = __UnmapPage(mmu, virAddr, pages);\n NX_IRQ_RestoreLevel(level);\n return err;\n}\n\nNX_PRIVATE void *NX_HalVir2Phy(NX_Mmu *mmu, NX_Addr virAddr)\n{\n NX_ASSERT(mmu);\n\n NX_Addr pagePhy;\n NX_Addr pageOffset;\n\n MMU_PDE *pageTable = (MMU_PDE *)mmu->table;\n\n MMU_PTE *pte = PageWalk(pageTable, virAddr, NX_False);\n if (pte == NX_NULL)\n {\n NX_PANIC(\"vir2phy walk fault!\");\n }\n\n if (!PTE_USED(*pte))\n {\n NX_PANIC(\"vir2phy pte not used!\");\n }\n\n pagePhy = PTE2PADDR(*pte);\n pageOffset = virAddr % NX_PAGE_SIZE;\n return (void *)(pagePhy + pageOffset);\n}\n\nNX_PRIVATE void NX_HalSetPageTable(NX_Addr addr)\n{\n WriteCSR(satp, MAKE_SATP(addr));\n MMU_FlushTLB();\n}\n\nNX_PRIVATE NX_Addr NX_HalGetPageTable(void)\n{\n NX_Addr addr = ReadCSR(satp);\n return (NX_Addr)GET_ADDR_FROM_SATP(addr);\n}\n\nNX_PRIVATE void NX_HalEnable(void)\n{\n MMU_FlushTLB();\n}\n\nNX_INTERFACE struct NX_MmuOps NX_MmuOpsInterface = \n{\n .setPageTable = NX_HalSetPageTable,\n .getPageTable = NX_HalGetPageTable,\n .enable = NX_HalEnable,\n .mapPage = NX_HalMapPage,\n .mapPageWithPhy = NX_HalMapPageWithPhy,\n .unmapPage = NX_HalUnmapPage,\n .vir2Phy = NX_HalVir2Phy,\n};\n\n监管者模式的页表的地址是由地址转换寄存器 SATP 保存的,其格式如下:\n\n具体字段的解析如下:\n\nMode - MMU 地址翻译模式\n\n\n\n\nValue\nName\nDescription\n\n\n\n\n0\nBare\nNo translation or protection\n\n\n1-7\n-\nReserved\n\n\n8\nSv39\nPage-based 39-bit virtual addressing\n\n\n9\nSv48\nPage-based 48-bit virtual addressing\n\n\n10\nSv57\nReserved for page-based 57-bit virtual addressing\n\n\n11\nSv64\nReserved for page-based 64-bit virtual addressing\n\n\n12-15\n-\nReserved\n\n\n\n当 Mode 为 0 时,MMU 关闭。\n\nASID – 当前 ASID。表示当前程序的 ASID 号。\nPPN – 硬件回填根 PPN。第一级硬件回填使用的 PPN (Phsical Page Number)。\n\n接下来,我们给出 SV39 地址转换的全过程图示(来源于 MIT 6.828 课程)来介绍多级页表原理的介绍:\n\n在 SV39 模式中我们采用三级页表,即将 27 位的虚拟页号分为三个等长的部分,\n第 26-18 位为三级索引 VPN2,第 17-9 位为二级索引 VPN1,第 8-0 位为一级索引 VPN0。\n我们也将页表分为三级页表,二级页表,一级页表。\n每个页表都用 9 位索引的,因此有 2的9次方=512 个页表项,\n而每个页表项都是 8 字节,\n因此每个页表大小都为 512 x 8 = 4KiB 。\n正好是一个物理页的大小。\n我们可以把一个页表放到一个物理页中,并用一个物理页号来描述它。\n事实上,三级页表的每个页表项中的物理页号可描述一个二级页表;\n二级页表的每个页表项中的物理页号可描述一个一级页表;\n一级页表中的页表项内容则和我们刚才提到的页表项一样,其内容包含物理页号,即描述一个要映射到的物理页。\n具体来说,假设我们有虚拟地址 (VPN2,VPN1,VPN0,offset) :\n\n我们首先会记录装载「当前所用的三级页表的物理页」的页号到 satp 寄存器中;\n\n把 VPN2 作为偏移在第三级页表的物理页中找到第二级页表的物理页号;\n\n把 VPN1 作为偏移在第二级页表的物理页中找到第一级页表的物理页号;\n\n把 VPN0 作为偏移在第一级页表的物理页中找到要访问位置的物理页号;\n\n物理页号对应的物理页基址(即物理页号左移12位)加上 就是虚拟地址对应的物理地址。\n\n\n这样处理器通过这种多次转换,终于从虚拟页号找到了一级页表项,\n从而得出了物理页号和虚拟地址所对应的物理地址。\n刚才我们提到若页表项满足 R,W,X 都为 0,表明这个页表项指向下一级页表。\n在这里三级和二级页表项的 R,W,X 为 0 应该成立,因为它们指向了下一级页表。\n页面属性的定义如下:\n\n文件:src/arch/riscv64/include/arch/mmu.h\n\n// page table entry (PTE) fields\n#define PTE_V 0x001 // Valid\n#define PTE_R 0x002 // Read\n#define PTE_W 0x004 // Write\n#define PTE_X 0x008 // Execute\n#define PTE_U 0x010 // User\n#define PTE_G 0x020 // Global\n#define PTE_A 0x040 // Accessed\n#define PTE_D 0x080 // Dirty\n#define PTE_SOFT 0x300 // Reserved for Software\n#define PTE_S 0x000 // system\n\n#define NX_PAGE_ATTR_RWX (PTE_X | PTE_W | PTE_R)\n\n#define NX_PAGE_ATTR_KERNEL (PTE_V | NX_PAGE_ATTR_RWX | PTE_S | PTE_G)\n#define NX_PAGE_ATTR_USER (PTE_V | NX_PAGE_ATTR_RWX | PTE_U | PTE_G)\n\n以上描述摘自rcore book\n在 NX_HalMapPage 中调用了 __MapPage 。__MapPage 会先计算需要映射的页面数量,然后循环映射页面。\n由于每个虚拟地址都需要有一个对应的物理地址,因此调用物理页面分配函数 NX_PageAlloc 来分配页面。然后调用 MapOnePage 来映射一个页面。\nNX_PRIVATE void *__MapPage(NX_Mmu *mmu, NX_Addr virAddr, NX_Size size, NX_UArch attr)\n{\n NX_Addr addrStart = virAddr;\n NX_Addr addrEnd = virAddr + size - 1;\n\n NX_SSize pages = GET_PF_ID(addrEnd) - GET_PF_ID(addrStart) + 1;\n NX_Size mappedPages = 0;\n void *phyAddr;\n\n while (pages > 0)\n {\n phyAddr = NX_PageAlloc(1);\n if (phyAddr == NX_NULL)\n {\n NX_LOG_E(\"map page: alloc page failed!\");\n goto err;\n }\n\n if (MapOnePage(mmu, virAddr, (NX_Addr)phyAddr, attr) != NX_EOK)\n {\n NX_LOG_E(\"map page: vir:%p phy:%p attr:%x failed!\", virAddr, phyAddr, attr);\n goto err;\n }\n virAddr += NX_PAGE_SIZE;\n phyAddr += NX_PAGE_SIZE;\n pages--;\n mappedPages++;\n }\n return (void *)addrStart;\nerr:\n if (phyAddr != NX_NULL)\n {\n NX_PageFree(phyAddr);\n }\n __UnmapPage(mmu, addrStart, mappedPages);\n return NX_NULL;\n}\n\n在 MapOnePage 中,会先检测该地址是否已经映射,没有映射才能映射。\n需要调用一个最为核心的函数,就是 PageWalk。\n它会根据虚拟地址来做页表遍历,如果 allocPage 为假,那么在遍历过程中,某个等级的页表不存在就会返回空。\n这就意味着这个地址是没有映射。\n如果 allocPage 为真,那么就会在遍历过程中分配不存在的页表。\n例如在页目录表中,会有页表项,如果发现该页表项为空,则会分配一个物理页,作为下一级的页表。\n该函数最后返回的是 VPN0 的页表项,页表项存放了物理页的地址。\n在 MapOnePage 中,allocPage 为真,那就意味着如果虚拟地址没有映射物理地址,就会一级一级地分配页表。\n返回 pte 后,需要填写也表项,其内容是物理地址和页面的属性R,W,X等。\n页表项格式如下:\n\n物理页的属性如下:\n\nNX_PRIVATE MMU_PTE *PageWalk(MMU_PDE *pageTable, NX_Addr virAddr, NX_Bool allocPage)\n{\n NX_ASSERT(pageTable);\n\n /* The page table in sv39 mode has 3 levels */\n int level;\n for (level = 2; level > 0; level--)\n {\n MMU_PTE *pte = &pageTable[GET_LEVEL_OFF(level, virAddr)];\n\n if (PTE_USED(*pte))\n {\n pageTable = (MMU_PDE *)PTE2PADDR(*pte);\n NX_ASSERT(pageTable);\n }\n else\n {\n if (allocPage == NX_False)\n {\n return NX_NULL;\n }\n pageTable = (MMU_PDE *)NX_PageAlloc(1);\n if (pageTable == NX_NULL)\n {\n NX_LOG_E(\"riscv64 mmu-sv39: page walk with no enough memory!\");\n return NX_NULL;\n }\n NX_MemZero(NX_Phy2Virt(pageTable), NX_PAGE_SIZE);\n\n /* increase last level page table reference */\n void *levelPageTable = (void *)(NX_Virt2Phy((NX_Addr)pte) & NX_PAGE_ADDR_MASK);\n NX_ASSERT(pageTable);\n NX_PageIncrease(levelPageTable);\n\n *pte = PADDR2PTE(pageTable) | PTE_V;\n }\n pageTable = (MMU_PDE *)NX_Phy2Virt(pageTable);\n }\n return &pageTable[GET_LEVEL_OFF(0, virAddr)];\n}\n\nNX_PRIVATE NX_Error MapOnePage(NX_Mmu *mmu, NX_Addr virAddr, NX_Addr phyAddr, NX_UArch attr)\n{\n if (IsVirAddrMapped(mmu, virAddr) == NX_True)\n {\n NX_LOG_E(\"map page: vir:%p was mapped!\", virAddr);\n return NX_EINVAL;\n }\n\n MMU_PDE *pageTable = (MMU_PDE *)mmu->table;\n\n MMU_PTE *pte = PageWalk(pageTable, virAddr, NX_True);\n if (pte == NX_NULL)\n {\n NX_LOG_E(\"map page: walk page vir:%p failed!\", virAddr);\n return NX_EFAULT;\n }\n if (PTE_USED(*pte))\n {\n NX_PANIC(\"Map one page but PTE had used!\");\n }\n /* increase last level page table reference */\n void *levelPageTable = (void *)(NX_Virt2Phy((NX_Addr)pte) & NX_PAGE_ADDR_MASK);\n NX_PageIncrease(levelPageTable);\n\n *pte = PADDR2PTE(phyAddr) | attr;\n\n return NX_EOK;\n}\n\n在 NX_HalMapPageWithPhy 中,会调用 __MapPageWithPhy。\n只是现在不需要在分配物理地址而已,因为已经指定了物理地址了。\nNX_PRIVATE void *__MapPageWithPhy(NX_Mmu *mmu, NX_Addr virAddr, NX_Addr phyAddr, NX_Size size, NX_UArch attr)\n{\n NX_Addr addrStart = virAddr;\n NX_Addr addrEnd = virAddr + size - 1;\n\n NX_SSize pages = GET_PF_ID(addrEnd) - GET_PF_ID(addrStart) + 1;\n NX_Size mappedPages = 0;\n\n while (pages > 0)\n {\n if (MapOnePage(mmu, virAddr, phyAddr, attr) != NX_EOK)\n {\n NX_LOG_E(\"map page: vir:%p phy:%p attr:%x failed!\", virAddr, phyAddr, attr);\n __UnmapPage(mmu, addrStart, mappedPages);\n return NX_NULL;\n }\n virAddr += NX_PAGE_SIZE;\n phyAddr += NX_PAGE_SIZE;\n pages--;\n mappedPages++;\n }\n return (void *)addrStart;\n}\n\n在 NX_HalUnmapPage 中,会调用 __UnmapPage 来解除页面的映射。\n在解除页面映射的时候,循环调用 UnmapOnePage 解除每一个页面。\n在 UnmapOnePage 中,会通过 PageWalkPTE 去遍历3级页表,获取虚拟地址 virAddr 对应的页表项。将结果保存到\npteArray[] 数组中,pteArray[0] 保存了 VPN0 的页表项,pteArray[1] 保存了 VPN1 的页表项,pteArray[2] 保存了 VPN2 的页表项。\n首先会释放叶子页面,也就是虚拟地址最终对应的物理地址,而页表是非叶子页面。\n非叶子页面,就是页表,在释放的时候调用 NX_PageFree 会减少页面的引用计数,为0的时候才真正释放。\n/**\n * walk addr for get pte level 0, 1, 2\n */\nNX_PRIVATE NX_Error PageWalkPTE(MMU_PDE *pageTable, NX_Addr virAddr, MMU_PTE *pteArray[3])\n{\n /* The page table in sv39 mode has 3 levels */\n int level;\n for (level = 2; level > 0; level--)\n {\n MMU_PTE *pte = &pageTable[GET_LEVEL_OFF(level, virAddr)];\n pteArray[level] = pte;\n\n if (PTE_USED(*pte))\n {\n pageTable = (MMU_PDE *)PTE2PADDR(*pte); \n pageTable = (MMU_PDE *)NX_Phy2Virt(pageTable);\n }\n else\n {\n NX_LOG_E(\"map walk pte: pte on vir:%p not used!\", virAddr);\n return NX_EFAULT;\n }\n }\n pteArray[0] = &pageTable[GET_LEVEL_OFF(0, virAddr)];\n return NX_EOK;\n}\n\nNX_PRIVATE NX_Error UnmapOnePage(NX_Mmu *mmu, NX_Addr virAddr)\n{\n MMU_PDE *pageTable = (MMU_PDE *)mmu->table;\n MMU_PTE *pte;\n NX_Addr phyPage;\n void *levelPageTable;\n\n MMU_PTE *pteArray[3] = {NX_NULL, NX_NULL, NX_NULL};\n NX_ASSERT(PageWalkPTE(pageTable, virAddr, pteArray) == NX_EOK);\n\n pte = pteArray[0];\n NX_ASSERT(pte != NX_NULL);\n NX_ASSERT(PTE_USED(*pte));\n NX_ASSERT(PAGE_IS_LEAF(*pte));\n phyPage = PTE2PADDR(*pte);\n NX_ASSERT(phyPage);\n NX_PageFree((void *)phyPage); /* free leaf page*/\n *pte = 0; /* clear pte in level 0 */\n\n /* free none-leaf page */\n levelPageTable = (void *)(((NX_Addr)pte) & NX_PAGE_ADDR_MASK); /* get level page table by pte */\n if (NX_PageFree(levelPageTable) == NX_EOK)\n {\n pte = pteArray[1];\n NX_ASSERT(PTE_USED(*pte));\n NX_ASSERT(!PAGE_IS_LEAF(*pte));\n NX_ASSERT((NX_Addr)levelPageTable == PTE2PADDR(*pte));\n *pte = 0; /* clear pte in level 1 */\n\n levelPageTable = (void *)(((NX_Addr)pte) & NX_PAGE_ADDR_MASK);\n if (NX_PageFree(levelPageTable) == NX_EOK)\n {\n pte = pteArray[2]; \n NX_ASSERT(PTE_USED(*pte));\n NX_ASSERT(!PAGE_IS_LEAF(*pte));\n NX_ASSERT((NX_Addr)levelPageTable == PTE2PADDR(*pte));\n *pte = 0; /* clear pte in level 2 */\n }\n }\n return NX_EOK;\n}\n\nNX_INLINE NX_Error __UnmapPage(NX_Mmu *mmu, NX_Addr virAddr, NX_Size pages)\n{\n while (pages > 0)\n {\n UnmapOnePage(mmu, virAddr);\n virAddr += NX_PAGE_SIZE;\n pages--;\n }\n return NX_EOK;\n}\n\n在 NX_HalVir2Phy 中,根据虚拟地址 virAddr,转换为物理地址。\n之前介绍过 PageWalk 这个函数,如果 allocPage 为假,那么在遍历过程中,不存在就会出错,存在就会返回页表项,里面存放了物理页的地址。\n通过 PTE2PADDR(*pte) 取出物理页面的地址,返回的时候加上页内偏移 (pagePhy + pageOffset)。\n\nNX_PRIVATE void *NX_HalVir2Phy(NX_Mmu *mmu, NX_Addr virAddr)\n{\n NX_ASSERT(mmu);\n\n NX_Addr pagePhy;\n NX_Addr pageOffset;\n\n MMU_PDE *pageTable = (MMU_PDE *)mmu->table;\n\n MMU_PTE *pte = PageWalk(pageTable, virAddr, NX_False);\n if (pte == NX_NULL)\n {\n NX_PANIC(\"vir2phy walk fault!\");\n }\n\n if (!PTE_USED(*pte))\n {\n NX_PANIC(\"vir2phy pte not used!\");\n }\n\n pagePhy = PTE2PADDR(*pte);\n pageOffset = virAddr % NX_PAGE_SIZE;\n return (void *)(pagePhy + pageOffset);\n}\n\n设置页表的时候,需要将页表基地址写入 satp 寄存器。然后刷新快表。\n这里的快表可以理解为缓存,可以加快虚拟地址到物理地址的转换。\nNX_INLINE void SFenceVMA()\n{\n NX_CASM(\"sfence.vma\");\n}\n\n#define MMU_FlushTLB() SFenceVMA()\n\nNX_PRIVATE void NX_HalSetPageTable(NX_Addr addr)\n{\n WriteCSR(satp, MAKE_SATP(addr));\n MMU_FlushTLB();\n}\n\n获取也表的时候,需要读取 satp 寄存器,并转换出页表的地址。\nNX_PRIVATE NX_Addr NX_HalGetPageTable(void)\n{\n NX_Addr addr = ReadCSR(satp);\n return (NX_Addr)GET_ADDR_FROM_SATP(addr);\n}\n\n9. 进程管理\nNX_HalProcessInitUserSpace 用于在进程创建的时候,创建进程的页表 ,并复制内核的页表项。\nNX_HalProcessFreePageTable 用于在进程退出的时候释放页表。 \nNX_HalProcessSwitchPageTable 用于在进程切换的时候切换页表。\nNX_HalProcessSyscallDispatch 用于分发系统调用,不同的架构传参数的方式会有区别,因此需要特殊处理。\nNX_HalProcessExecuteUser 用于进程从内核跳到用户态执行。\nNX_HalProcessGetKernelPageTable 用于获取内核的页表。\n\n文件:src/arch/riscv64/port/process.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: Process for RISCV64\n * \n * Change Logs:\n * Date Author Notes\n * 2022-1-16 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#include \n#define NX_LOG_NAME \"syscall\"\n#define NX_LOG_LEVEL NX_LOG_INFO\n#include \n#include \n#include \n#include \n#include \n\nNX_PRIVATE NX_Error NX_HalProcessInitUserSpace(NX_Process *process, NX_Addr virStart, NX_Size size)\n{\n void *table = NX_MemAlloc(NX_PAGE_SIZE);\n if (table == NX_NULL)\n {\n return NX_ENOMEM;\n }\n NX_MemZero(table, NX_PAGE_SIZE);\n NX_MemCopy(table, NX_HalGetKernelPageTable(), NX_PAGE_SIZE);\n NX_MmuInit(&process->vmspace.mmu, table, virStart, size, 0);\n return NX_EOK;\n}\n\nNX_PRIVATE NX_Error NX_HalProcessFreePageTable(NX_Vmspace *vmspace)\n{\n NX_ASSERT(vmspace);\n if(vmspace->mmu.table == NX_NULL)\n {\n return NX_EFAULT;\n }\n NX_MemFree(vmspace->mmu.table);\n return NX_EOK;\n}\n\nNX_PRIVATE NX_Error NX_HalProcessSwitchPageTable(void *pageTableVir)\n{\n NX_Addr pageTablePhy = (NX_Addr)NX_Virt2Phy(pageTableVir);\n /* no need switch same page table */\n if (pageTablePhy != NX_MmuGetPageTable())\n {\n NX_MmuSetPageTable(pageTablePhy);\n }\n return NX_EOK;\n}\n\nvoid NX_HalProcessSyscallDispatch(NX_HalTrapFrame *frame)\n{\n NX_SyscallWithArgHandler handler = (NX_SyscallWithArgHandler)NX_SyscallGetHandler((NX_SyscallApi)frame->a7);\n NX_ASSERT(handler);\n\n NX_LOG_D(\"riscv64 syscall api: %x, arg0:%x, arg1:%x, arg2:%x, arg3:%x, arg4:%x, arg5:%x, arg6:%x\",\n frame->a7, frame->a0, frame->a1, frame->a2, frame->a3, frame->a4, frame->a5, frame->a6);\n\n frame->a0 = handler(frame->a0, frame->a1, frame->a2, frame->a3, frame->a4, frame->a5, frame->a6);\n frame->a7 = 0; /* clear syscall api */\n frame->epc += 4; /* skip ecall instruction */\n\n NX_LOG_D(\"riscv64 syscall return: %x\", frame->a0);\n}\n\nNX_IMPORT void NX_HalProcessEnterUserMode(void *args, const void *text, void *userStack);\nNX_PRIVATE void NX_HalProcessExecuteUser(const void *text, void *userStack, void *kernelStack, void *args)\n{\n NX_LOG_D(\"riscv64 process enter user: %p, user stack %p\", text, userStack);\n NX_HalProcessEnterUserMode(args, text, userStack);\n NX_PANIC(\"should never return after into user\");\n}\n\nNX_PRIVATE void *NX_HalProcessGetKernelPageTable(void)\n{\n return NX_HalGetKernelPageTable();\n}\n\nNX_INTERFACE struct NX_ProcessOps NX_ProcessOpsInterface = \n{\n .initUserSpace = NX_HalProcessInitUserSpace,\n .switchPageTable = NX_HalProcessSwitchPageTable,\n .getKernelPageTable = NX_HalProcessGetKernelPageTable,\n .executeUser = NX_HalProcessExecuteUser,\n .freePageTable = NX_HalProcessFreePageTable,\n};\n\n10. SMP多核\n引导核初始化完成后,会初始化内核,在内核初始化完成后,就会进入启动应用核的阶段 NX_HalCoreBootApp。\n如果支持多核,就可以在这个时候去唤醒其他核。不支持的话返回 NX_ENORES 没有资源即可。\n唤醒应用核只需要调用 SBI 提供的唤醒核心功能即可。\n唤醒后,应用核会进入 NX_HalCoreEnterApp, 应用核只需要设置中断表地址,初始化自己的中断控制器即可。\n还有值得注意的是,获取处理器的索引 NX_HalCoreGetIndex。该索引是在处理器数组中的索引,不管什么处理器 id 值,\n都会被映射成索引,相当于是处理器 id 的 hash 值,其返回值范围为 0~NX_MULTI_CORES_NR - 1。\n\n文件:src/arch/riscv64/port/smp.c\n\n/**\n * Copyright (c) 2018-2022, NXOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: HAL Multi Core support\n * \n * Change Logs:\n * Date Author Notes\n * 2021-12-9 JasonHu Init\n */\n\n#include \n#include \n#include \n#include \n#define NX_LOG_NAME \"Multi Core\"\n#include \n\n#include \n#include \n#include \n#include \n#include \n\nNX_IMPORT NX_Addr TrapEntry0;\nNX_IMPORT NX_Addr TrapEntry1;\nNX_IMPORT NX_Addr TrapEntry2;\nNX_IMPORT NX_Addr TrapEntry3;\n\n/**\n * Within SBI, we can't read mhartid, so I try to use `trap entry` to see who am I.\n */\nNX_PRIVATE NX_UArch NX_HalCoreGetIndex(void)\n{\n NX_Addr trapEntry = ReadCSR(stvec);\n\n if (trapEntry == (NX_Addr)&TrapEntry0)\n {\n return 0;\n }\n else if (trapEntry == (NX_Addr)&TrapEntry1)\n {\n return 1;\n }\n else if (trapEntry == (NX_Addr)&TrapEntry2)\n {\n return 2;\n }\n else if (trapEntry == (NX_Addr)&TrapEntry3)\n {\n return 3;\n }\n /* should never be here */\n while (1);\n}\n\nNX_PRIVATE NX_Error NX_HalCoreBootApp(NX_UArch bootCoreId)\n{\n\n NX_LOG_I(\"boot core is:%d\", bootCoreId);\n NX_UArch coreId;\n for (coreId = 0; coreId \n四、移植总结\n对于 nxos 新架构的移植,都是按照一套统一的接口去实现的。\n在调试过程中会遇到很多问题,需要耐心地调试。\n通常,都是在启动后尽快地实现串口调试,以便能够知道自己跑到什么地方了。\n最开始是可以不开启 MMU 的,最开始不需要跑进程,\n只需要实现 atomic.c、barrier.c、clock.c、context.c、interrupt.c即可。\n如果只是需要运行起来,不需要线程环境,那么就只需要 atomic.c、barrier.c即可。\n移植过程是需要慢慢琢磨,长期积累,才能实现更好的代码。\n"},"programing-manual/platform/i386.html":{"url":"programing-manual/platform/i386.html","title":"i386","keywords":"","body":"i386平台简介\nx86 架构首度出现在 1978 年推出的 Intel 8086 CPU。Intel 之后又推出了包括 80186、80286、80386 以及 80486。\n从 1985 年 80386 开始,Intel 通过对 x86 架构进行 32 位的扩展,实现了 32 位 CPU,而之前的都是 16 位。 \n32位的PC电脑基本都是x86架构,而最早的一款处理器就是i386。因此,几乎所有的32位电脑都兼容i386。\n功能支持\n\n[x] GRUB2引导\n[x] 内存管理\n[x] 上下文切换\n[x] 定时器时钟\n[x] 原子操作\n[x] 内存屏障\n[ ] SMP多核\n[x] MMU支持\n[x] 中断管理\n[x] 系统调用支持\n[x] 执行用户态程序\n[x] 串口输入输出\n[x] 通过单元测试和集成测试\n[x] gdb调试\n\n运行方法\n# 1. 进入nxos源码,打开终端。\n# 2. 初始化环境\nsource setup.sh # linux\nsetup.bat # windows\n# 3. 获取默认配置\nmake defconfig\n# 4. 编译运行\nmake run -j8 # -jN是多线程编译\n# 5. ctrl + a z 退出qemu\n\n"},"programing-manual/platform/qemu_riscv64.html":{"url":"programing-manual/platform/qemu_riscv64.html","title":"qemu_riscv64","keywords":"","body":"qemu_riscv64平台简介\nQEMU是一种通用的开源计算机仿真器和虚拟器。本平台就是qemu对riscv64架构的仿真支持。\n功能支持\n\n[x] OpenSBI固件\n[x] 内存管理\n[x] 上下文切换\n[x] 定时器时钟\n[x] 原子操作\n[x] 内存屏障\n[x] SMP多核\n[x] MMU支持\n[x] 中断管理\n[x] 系统调用支持\n[x] 执行用户态程序\n[x] 串口输入输出\n[x] 通过单元测试和集成测试\n[x] gdb调试\n\n运行方法\n# 1. 进入nxos源码,打开终端。\n# 2. 初始化环境\nsource setup.sh riscv64-qemu_riscv64 # linux\nsetup.bat riscv64-qemu_riscv64 # windows\n# 3. 获取默认配置\nmake defconfig\n# 4. 编译运行\nmake run -j8 # -jN是多线程编译\n# 5. ctrl + a z 退出qemu\n\n"},"programing-manual/platform/k210.html":{"url":"programing-manual/platform/k210.html","title":"k210","keywords":"","body":"k210平台简介\n勘智Kendryte K210是嘉楠科技公司推出的基于RISC-V架构的64位双核SOC。\n\n双核 64-bit RISC-V RV64IMAFDC (RV64GC) CPU / 400MHz(可超频到600MHz)\n双精度 FPU\n8MiB 64bit 片上 SRAM(6MiB通用SRAM+2MiB的AI专用SRAM)\n神经网络处理器(KPU) / 0.8TFLOPS\n音频处理器(APU)\n可编程 IO 阵列 (FPIOA)\n双硬件512点16位复数FFT\nSPI, I2C, UART, I2S, RTC, PWM, 定时器支持\nAES, SHA256 加速器\n直接内存存取控制器 (DMAC)\n\n功能支持\n\n[x] RustSBI固件\n[x] 内存管理\n[x] 上下文切换\n[x] 定时器时钟\n[x] 原子操作\n[x] 内存屏障\n[x] SMP多核\n[x] MMU支持\n[x] 中断管理\n[x] 系统调用支持\n[x] 执行用户态程序\n[x] 串口输入输出\n[x] 通过单元测试和集成测试\n[ ] gdb调试\n\n运行方法\n# 1. 进入nxos源码,打开终端。\n# 2. 初始化环境\nsource setup.sh riscv64-k210 # linux\nsetup.bat riscv64-k210 # windows\n# 3. 获取默认配置\nmake defconfig\n# 4. 编译运行\nmake run -j8 UART=/dev/ttyUSB0 # linux: -jN是多线程编译, UART是串口设备,需要在设备列表查看是哪个设备,默认是/dev/ttyUSB0,可以不写。\nmake run -j8 UART=com3 # windows: -jN是多线程编译, UART是串口设备,需要在设备管理器查看,k210的设备是哪个串口。\n\n# 5. ctrl + ] 退出k210的运行\n\n"},"programing-manual/user/api.html":{"url":"programing-manual/user/api.html","title":"API设计","keywords":"","body":"API应用程序接口\n本文档存放的是用户程序的编程接口的设计说明。\nNXOS的API接口分为几个大类。进程,线程,内存管理,时间管理,枢纽系统,文件系统,设备管理,网络管理,图形管理,安全管理,用户态驱动框架。\n进程管理\n\n\n\n功能\n函数\n\n\n\n\n创建进程\nint ProcessCreate(char name, char path, int flags, char cmd, void env)\n\n\n退出进程\nvoid ProcessExit(int exitCode)\n\n\n终止进程\nint ProcessTerminate(int pid)\n\n\n获取进程ID\nint ProcessGetId(void)\n\n\n等待进程退出\nint ProcessWait(int pid, int timeout, int flags)\n\n\n\n线程管理\n\n\n\n功能\n函数\n\n\n\n\n创建线程\nint ThreadCreate(ThreadHandler handler, void *arg, USize stackSize, int flags)\n\n\n退出线程\nvoid ThreadExit(int exitCode)\n\n\n获取线程ID\nint ThreadGetId(void)\n\n\n终止线程\nint ThreadTerminate(int tid)\n\n\n挂起线程\nint ThreadSuspend(int tid)\n\n\n恢复线程\nint ThreadResume(int tid)\n\n\n等待线程退出\nint ThreadWait(int tid, int timeout, int flags)\n\n\n创建互斥体\nMutex MutexCreate(int attr, char name)\n\n\n删除互斥体\nint MutexDelete(Mutex *mutex)\n\n\n初始化互斥体\nint MutexInit(Mutex mutex, int attr, char name)\n\n\n获取互斥体\nint MutexAcquire(Mutex *mutex)\n\n\n释放互斥体\nint MutexRelease(Mutex *mutex)\n\n\n尝试获取互斥体\nint MutexTryAcquire(Mutex *mutex)\n\n\n创建条件变量\nCondition ConditionCreate(int attr, char name)\n\n\n删除条件变量\nint ConditionDelete(Condition *cond)\n\n\n初始化条件变量\nint ConditionInit(Condition cond, int attr, char name)\n\n\n休眠等待条件变量\nint ConditionSleep(Condition cond, Mutex mutex)\n\n\n唤醒休眠等待条件的单个线程\nint ConditionWake(Condition *cond)\n\n\n唤醒休眠等待条件的全部线程\nint ConditionWakeAll(Condition *cond)\n\n\n分配一个tls\nint TlsAlloc(void)\n\n\n释放一个tls\nint TlsFree(int tlsIndex)\n\n\n设置tls的值\nint TlsSetValue(int tlsIndex, void *value)\n\n\n获取tls的值\nvoid TlsGetValue(int tlsIndex)\n\n\n\n内存管理\n\n\n\n功能\n函数\n\n\n\n\n分配内存\nvoid *MemAlloc(USize size)\n\n\n释放内存\nint MemFree(void *object)\n\n\n映射内存\nvoid MemMap(void addr, USize size, int attr)\n\n\n解除映射内存\nint MemUnmap(void *addr)\n\n\n复制内存\nvoid MemCopy(void dest, void src, USize size)\n\n\n移动内存\nvoid MemMove(void dest, void src, USize size)\n\n\n填充内存\nvoid MemFill(void *addr, USize size, U8 value)\n\n\n清空内存\nvoid MemZero(void *addr, USize size)\n\n\n\n时间管理\n\n\n\n功能\n函数\n\n\n\n\n获取当前的时间\nvoid TimeGetCurrent(TimeSytem *time)\n\n\n设置当前的时间\nvoid TimeSetCurrent(TimeSytem *time)\n\n\n获取系统运行的时间\nUSize TimeGetClock(void)\n\n\n\n文件系统\n\n\n\n功能\n函数\n\n\n\n\n创建文件\nNX_Error NX_FileCreate(char *path, int attr)\n\n\n删除文件\nNX_Error NX_FileDelete(char *path)\n\n\n打开文件\nNX_FD NX_FileOpen(char *path, int flags, int attr)\n\n\n关闭文件\nNX_Error NX_FileClose(NX_FD fd)\n\n\n读取文件\nSSize NX_FileRead(NX_FD fd, void *buf, USize bytes)\n\n\n写入文件\nSSize NX_FileWrite(NX_FD fd, void *buf, USize bytes)\n\n\n索引文件\nOffset NX_FileSeek(NX_FD fd, Offset offset, int seekMethod)\n\n\n获取文件偏移\nOffset NX_FileTellOffset(NX_FD fd)\n\n\n检查文件结束\nNX_Bool NX_FileIsEnd(NX_FD fd)\n\n\n检查文件结束\nNX_Bool NX_FileAccess(char *path, int attr)\n\n\n创建目录\nNX_Bool NX_DirectoryCreate(char *path, int attr)\n\n\n删除目录\nNX_Bool NX_DirectoryDelete(char *path)\n\n\n打开目录\nNX_Dir DirectoryOpen(char *path, int flags)\n\n\n关闭目录\nNX_Error DirectoryClose(NX_Dir dir)\n\n\n读取目录\nNX_DirEntry *DirectoryRead(NX_Dir dir)\n\n\n重置读取位置\nNX_Error DirectoryRewind(NX_Dir dir)\n\n\n\n网络系统\n参考socket套接字接口设计\n\n\n\n功能\n函数\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n设备管理\n\n\n\n功能\n函数\n\n\n\n\n创建设备\nint DeviceCreate(char *path, int attr)\n\n\n删除设备\nint DeviceDelete(char *path)\n\n\n打开设备\nint DeviceOpen(char *path, int flags)\n\n\n关闭设备\nint DeviceClose(int dev)\n\n\n读取设备\nISize DeviceRead(int dev, void *buf, USize len, Offset offset)\n\n\n写入设备\nISize DeviceWrite(int dev, void *buf, USize len, Offset offset)\n\n\n写入设备\nISize DeviceControl(int dev, int cmd, void *arg)\n\n\n\n枢纽系统\n等hub system设计好了再设计接口,目前还没有概念\n\n\n\n功能\n函数\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n图形系统\n暂不设计,等内核基本功能完成后再设计\n\n\n\n功能\n函数\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n安全管理\n暂不需要\n\n\n\n功能\n函数\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n用户态驱动框架\n等内核基础功能完成后实现\n\n\n\n功能\n函数\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},"tutorial/code-style.html":{"url":"tutorial/code-style.html","title":"代码风格","keywords":"","body":"NXOS 编程风格\n本文档是关于NXOS的代码编程风格的描述。开发者必须遵守本文档规范进行开发。NXOS系统内核使用C语言作为主要开发语言,因此以下规则仅仅适用于C语言代码。\n1.目录名称\n目录名称采用首字母大写的形式,子目录应该是属于父目录的内容,需要有相关性。例如:Drivers/Disk/\n2.文件名称\n文件名称也是使用首字母大写,如果有缩写,可以全部都大写。文件命名尽量不要使用通用化、使用频率高的名称。例如:MutexLock.c\n3.头文件定义\nC语言头文件为了避免多次重复包含,需要定义一个符号。这个符号的定义形式请采用如下的风格:\n#ifndef __FILE__\n#define __FILE__\n/* header file content */\n#endif /* __FILE__ */\n\n即定义的符号两侧采用 \"_\" 以避免重名,另外也可以根据文件名中是否包含多个词语而采用 \"\" 连接起来。例如:\n__DRIVER_KEYBOARD__\n4.头文件注释\n在每个源文件文件头上,应该包括相应的版权信息,文件描述,Change Log 记录:\n/**\n * Copyright (c) 2018-2021, BookOS Development Team\n * SPDX-License-Identifier: Apache-2.0\n * \n * Contains: This file is a code style example\n * \n * Change Logs:\n * Date Author Notes\n * 2021-9-12 JasonHu Init\n * 2021-10-1 JasonHu Add xxx\n */\n\n例如采用如上的形式。\n5.变量命名\n变量采用小驼峰命名风格,即首字母小写,后续单词首字母大写,例如:\nmyThread, tmpFileBuffer\n\n6.函数命名\n函数采用大驼峰命名风格,即每个单词的首字母都大写,如果单词是用的缩写,那么单词之间需要用\"_\"隔开,例如:\nThreadFindByName\nVFS_CreateFile\n\n如果函数参数为空,必须使用void作为入口函数,例如:\nCpu *CpuGetCurrent(void)\n\n7.结构体定义\n结构体命名使用大驼峰风格,结构体成员使用小驼峰命名,如果成员是函数指针,则使用大驼峰。\nstruct SoundDevice\n{\n char name[SOUND_DEVICE_NAME_LEN];\n int reference;\n void (*Write)(void *buffer, NX_Size len);\n};\n\n其中\"{\"和\"}\"需要单独使用一行。\n结构体的类型定义是为了消除struct关键字,可以和结构体名一致。\ntypedef struct SoundDevice SoundDevice;\n\n如果需要在类型定义中使用指针,则需要使用Ptr后缀或者其他可以表达意思的单词指明。\ntypedef struct Device *DevicePtr;\n\n8.枚举定义\n枚举结构名也是用大驼峰,枚举成员使用全大写,单词间用\"_\"隔开。\nenum SoundType\n{\n SOUND_AC97,\n SOUND_PC,\n SOUND_HD,\n};\ntypedef enum SoundType SoundType;\n\n9.宏定义\n使用大写作为名字,单词间使用\"_\"隔开,例如:\n#define DEVICE_NAME_LEN 32\n\n当宏需要使用多行的时候,则使用空格+\"\\\"的形式进行换行,例如:\n#define ConsolePrintColor(color, str) \\\n ConsoleSetColor(color); \\\n ConsolePrint(str); \\\n ConsoleRestoreColor()\n\n10.注释编写\n请使用英文做为注释,使用中文注释将意味着在编写代码时需要来回不停的切换中英文输入法从而打断编写代码的思路。并且使用英文注释也能够比较好的与中国以外的技术者进行交流。除非必须引用原来的文本的时候,就可以写中文。\n源代码的注释不应该过多,更多的说明应该是代码做了什么,仅当个别关键点才需要一些相应提示性的注释以解释一段复杂的算法它是如何工作的。对语句的注释只能写在它的上方或右方,其他位置都是非法的。\n注意,\"//\"注释只能放到右边。\n/* Single line comment */\n/**\n * Multi-line comments \n * Line1\n * Line2\n */\n\nbufSize = 16; // set buffer Size\n11.缩进以及分行\n缩进请采用 4 个空格的方式。如果没有什么特殊意义,请在 \"{\" 后进行分行,并在下一行都采用缩进的方式,例如:\n if (condition)\n {\n /* xxx */\n }\n\n唯一的例外是 switch 语句,switch-case 语句采用 case 语句与 switch 对齐的方式, 例如:\n switch (data)\n {\n case data1:\n break;\n case data2:\n break;\n default:\n break;\n }\n\n12.大括号与空格\n从代码阅读角度,建议每个大括号单独占用一行,而不是跟在语句的后面,例如:\n if (condition)\n {\n /* xxx */\n }\n\n匹配的大括号单独占用一行,代码阅读起来就会有相应的层次而不会容易出现混淆的情况。空格建议在非函数方式的括号调用前留一个空格以和前面的进行区分,例如:\n if (x \n建议在括号前留出一个空格(涉及的包括 if、for、while、switch 语句),而运算表达式中,运算符与字符串间留一个空格。另外,不要在括号的表达式两侧留空格,例如:\n /* X: Bad!!! */\n if ( x \n有一个例外,就是如果遇到循环函数,里面不会执行代码的情况,括号就直接写在右边。\n while (x \n13.函数指针类型定义\n在使用函数指针类型定义的时候,需要使用Handler后缀,来表示是一个处理函数。\ntypedef void (*SoundCallbackHandler)(void *buffer, NX_Size len);\n\nSoundCallbackHandler sndHandler;\n\n14.函数参数太多\n当函数参数过多的时候,一行写不下,那么就需要把每个参数写成一行。\nNX_Thread NX_CreateThread(char *threadName,\n ThreadHandler threadHandler,\n void *param,\n void *stackBase,\n NX_Size stackSize,\n int priority)\n{\n ... \n}\n\n15.宏条件定义\n当使用宏条件#if, #else, #endif这种时,需要在开头和结尾后面写上注释来帮助开发这快速找到对应的宏。\n#ifdef NX_HAS_SMP\nxxx\n#else\n#ifdef NX_HAS_ONECORE\nyyy\n#endif /* NX_HAS_ONECORE */\n#endif /* NX_HAS_SMP */\n\n总结\n相信看到最后,您已经对我们的编程规范有了一定的了解,那么就开始您的NXOS开发之旅吧!\n"},"tutorial/commit-rule.html":{"url":"tutorial/commit-rule.html","title":"提交规则","keywords":"","body":"代码提交日志规则CommitRule\n当我们添加代码要提交到git仓库中时,我们需要统一下规范,这样不会显得整个项目乱糟糟的,当然是需要花点时间来学习和改变的。每次提交的代码尽量短小,涉及范围不要太广,专注于某个领域。\n每次提交,Commit message 都包括两个部分:header和body。\n(): \n\n\n\n其中,header 是必需的,body 可以省略。\n不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。\nHeader\nHeader部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。\ntype\n用于说明 commit 的类别,只允许使用下面7个标识。\n\nfeat:新功能(feature)\nfix:修补bug\ndocs:文档(documentation)\nstyle: 格式(不影响代码运行的变动)\nrefactor:重构(即不是新增功能,也不是修改bug的代码变动)\ntest:增加测试\nbuild : 改变了build工具 如 xbuild改成了xmake\nrevert : 撤销上一次的 commit\nchore : 构建过程或辅助工具的变动,比如把grub改成了UEFI。\n\n如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。\nscope\nscope用于说明 commit 影响的范围,比如文件系统,进程管理,内存管理等等,视项目不同而不同。\n例如在mm,thread,fs等。\n如果你的修改影响了不止一个scope,你可以使用*代替。\nsubject\nsubject是 commit 目的的简短描述,不超过50个字符。\n其他注意事项:\n\n以动词开头,使用第一人称现在时,比如change,而不是changed或changes\n第一个字母小写\n结尾不加句号(.)\n\nBody\nBody 部分是对本次 commit 的详细描述,可以分成多行。下面是一个范例。\nAdd fatfs, suport fat12, fat16, fat32, exfat.\n\n- fat12: used for floppy\n- fat32: used for sdcard/harddisk\n\n有两个注意点:\n\n使用第一人称现在时,比如使用change而不是changed或changes。\n永远别忘了第2行是空行\n应该说明代码变动的动机,以及与以前行为的对比。\n\n举例\nfeat(mm): add buddy system\n\nAdd simple buddy system code, it works weel.\nfix(mm): bug on buddy alloc page\ndocs(mm): add buddy system doc\nstyle(*): add NX_ prefix for all kernel function\nrefactor(mm): update buddy system\ntest(mm): add utest for buddy system\nrevert: feat(mm): add buddy system\n"},"tutorial/menuconfig.html":{"url":"tutorial/menuconfig.html","title":"菜单配置","keywords":"","body":"菜单配置\nmenuconfig简介\nmenuconfig是一个可以在终端显示的图形化配置界面,他不仅可以极大的方便我们对于配置文件的修改, 还能自动处理依赖关系。\n在NXOS中使用menuconfig\nNXOS使用了一个python开发的menuconfig,它的跨平台性以及易用性成为了我们的首选。\n对于开发者而言,我们已经做好了配置,你只需要知道如何去使用即可。\n在根目录中,打开一个终端,在配置了环境变量之后,就可以使用配置了。\n\n更新配置文件\n当你要使用某个平台的配置时,需要通过设置默认配置来进行选择。\nmake defconfig\n\n\n进行菜单配置,就可以选择你想要的功能或者进行某些功能的配置。配置完后,可以根据菜单的提示进行退出或者保存。\nmake menuconfig\n\n\n完成配置后,就可以进行编译了,编译的时候就会根据最新的配置进行编译。\n# 只编译\nmake\n# 编译并运行\nmake run\n\n\n最后,如果想要保存当前的配置到选中的平台,则需要在执行save操作才行。操作完后,你所修改的配置就保存了,当切换到其它平台后,这个配置依然存在,只需要重复第一步,更新一下配置即可。\nmake saveconfig\n\n\n\n"},"tutorial/toolchains.html":{"url":"tutorial/toolchains.html","title":"工具链","keywords":"","body":"工具链\n本文档存放了工具链的下载地址,搭建编译环境的时候需要下载工具链后再进行编译。\n一、Windows环境工具\n\n下载工具链\n\nx86-64/i386工具链:\n服务器下载(较慢)\n百度网盘链接,提取码:NXOS\nrisc-v64工具链:\n服务器下载(较慢)\n百度网盘链接,提取码:NXOS\n\n解压到工具目录下面\n\n下载到本地后,需要手动解压到一个目录下面,然后对工具链的bin路径配置环境变量。\n例如:\n解压到路径:nxos-toolchains\\x86_64-elf-gcc\n配置环境变量时的路径:nxos-toolchains\\x86_64-elf-gcc\\bin\n二、Linux环境工具\nLinux工具链只需要从软件包管理器下载安装即可:\nx86-64/i386工具链:apt install gcc\nrisc-v64/32工具链: apt install gcc-riscv64-unknown-elf\n"},"tutorial/utest.html":{"url":"tutorial/utest.html","title":"单元测试","keywords":"","body":"测试\n单元测试\n针对函数单元进行测试,测试函数的基本功能,稳定性,健壮性,覆盖率。\n着重点:参数,返回值,功能。\n/* 最小的单元测试 */\nNX_TEST(TestUnitName)\n{\n ASSERT_TRUE(...)\n ASSERT_FALSE(...)\n\n EXCEPT_TRUE(...)\n EXCEPT_FALSE(...)\n}\n\n/* 进入单元时执行 */\nNX_TEST_SETUP(TestUnitName)\n{\n\n}\n\n/* 退出单元时执行 */\nNX_TEST_CLEAN(TestUnitName)\n{\n\n}\n\n/* 单元测试表,填写要测试的单元 */\nNX_TEST_TABLE(TestCaseName)\n{\n NX_TEST_UNIT(TestUnitName), /* 不带setup和clean的单元 */\n NX_TEST_UNIT_SETUP(TestUnitName), /* 带setup的单元 */\n NX_TEST_UNIT_CLEAN(TestUnitName), /* 带clean的单元 */\n NX_TEST_UNIT_SETUP_CLEAN(TestUnitName), /* 带setup和clean的单元 */\n};\n\n/* 进入一个单元测试时执行 */\nNX_TEST_CASE_SETUP(TestCaseName)\n{\n return NX_EOK;\n}\n\n/* 退出一个单元测试时执行 */\nNX_TEST_CASE_CLEAN(TestCaseName)\n{\n return NX_EOK;\n}\n\n/* 定义一个单元测试 */\nNX_TEST_CASE(TestCaseName);\n\n举例:单元测试自身测试\nNX_TEST(Test)\n{\n NX_ASSERT_TRUE(1);\n NX_ASSERT_TRUE(NX_True);\n NX_ASSERT_FALSE(0);\n NX_ASSERT_FALSE(NX_False);\n}\n\nNX_TEST(Test1)\n{\n NX_ASSERT_EQ(1, 1);\n NX_ASSERT_NE(0, 1);\n\n NX_ASSERT_LT(3, 5);\n NX_ASSERT_LE(3, 3);\n NX_ASSERT_LE(3, 4);\n NX_ASSERT_GT(4, 3);\n NX_ASSERT_GE(3, 3);\n\n char *p = NX_NULL;\n NX_ASSERT_NULL(p);\n char *q = (char *) 0x1000;\n NX_ASSERT_NOT_NULL(q);\n}\n\nNX_TEST(Test2)\n{\n NX_ASSERT_IN_RANGE(1, 0, 5);\n NX_ASSERT_IN_RANGE(4, 0, 5);\n NX_ASSERT_IN_RANGE(1, 1, 5);\n NX_ASSERT_IN_RANGE(5, 1, 5);\n\n NX_ASSERT_NI_RANGE(1, 2, 5);\n NX_ASSERT_NI_RANGE(0, 1, 5);\n NX_ASSERT_NI_RANGE(6, 1, 5);\n NX_ASSERT_NI_RANGE(5, 1, 4);\n}\n\nNX_TEST(Test3)\n{\n NX_ASSERT_STREQ(\"hello\", \"hello\");\n char *s = \"world!\";\n NX_ASSERT_STREQ(s, \"world!\");\n\n char buf0[32] = {0x10, 0x20, 0x30,};\n char buf1[32] = {0x10, 0x20, 0x30,};\n NX_ASSERT_BUFEQ(buf0, buf1, 32);\n\n NX_ASSERT_STRNE(\"hello\", \"world\");\n s = \"hello!\";\n NX_ASSERT_STRNE(s, \"world!\");\n\n char buf2[32] = {0x40, 0x50, 0x60,};\n NX_ASSERT_BUFNE(buf1, buf2, 32);\n}\n\nNX_TEST_SETUP(Test)\n{\n NX_ASSERT_TRUE(1);\n}\n\nNX_TEST_CLEAN(Test)\n{\n NX_ASSERT_FALSE(0);\n}\n\nNX_TEST_TABLE(UTest)\n{\n NX_TEST_UNIT(Test),\n NX_TEST_UNIT_SETUP_CLEAN(Test),\n NX_TEST_UNIT(Test1),\n NX_TEST_UNIT(Test2),\n NX_TEST_UNIT(Test3),\n};\n\nNX_TEST_CASE_SETUP(UTest)\n{\n NX_ASSERT_TRUE(1);\n return NX_EOK;\n}\n\nNX_TEST_CASE_CLEAN(UTest)\n{\n NX_ASSERT_FALSE(0);\n return NX_EOK;\n}\n\nNX_TEST_CASE(UTest);\n\n最精简框架:\nNX_TEST(yyy)\n{\n}\n\nNX_TEST_TABLE(xxx)\n{\n NX_TEST_UNIT(yyy),\n};\n\nNX_TEST_CASE(xxx);\n\n使用方法\n在menuconfig中,打开单元测试功能,选取需要测试的单元,退出保存。\n在命令行中输入命令即可开始测试:\nmake run TC=y # TC是TestCase的缩写,表示启用测试案例。\n"}}} \ No newline at end of file diff --git a/_book/tutorial/code-style.html b/_book/tutorial/code-style.html index d9da556..da66272 100644 --- a/_book/tutorial/code-style.html +++ b/_book/tutorial/code-style.html @@ -867,7 +867,7 @@ yyy diff --git a/_book/tutorial/commit-rule.html b/_book/tutorial/commit-rule.html index a75a7a5..a4dfdd2 100644 --- a/_book/tutorial/commit-rule.html +++ b/_book/tutorial/commit-rule.html @@ -760,7 +760,7 @@ Add simple buddy system code, it works weel. diff --git a/_book/tutorial/menuconfig.html b/_book/tutorial/menuconfig.html index 6354fc9..9b43ea2 100644 --- a/_book/tutorial/menuconfig.html +++ b/_book/tutorial/menuconfig.html @@ -729,7 +729,7 @@ make run diff --git a/_book/tutorial/quick-start.html b/_book/tutorial/quick-start.html index 86bc291..583cac1 100644 --- a/_book/tutorial/quick-start.html +++ b/_book/tutorial/quick-start.html @@ -788,7 +788,7 @@ make diff --git a/_book/tutorial/toolchains.html b/_book/tutorial/toolchains.html index 37b6461..12a84b5 100644 --- a/_book/tutorial/toolchains.html +++ b/_book/tutorial/toolchains.html @@ -723,7 +723,7 @@ diff --git a/_book/tutorial/utest.html b/_book/tutorial/utest.html index 5e607ca..3dd4e2e 100644 --- a/_book/tutorial/utest.html +++ b/_book/tutorial/utest.html @@ -850,7 +850,7 @@ NX_TEST_CASE(xxx); -- Gitee