docs(/docs/kernel/int.md, mm.md, /docs/component/drvmodel.md, humancompter.md, lib.md): repair some small misktakes on punctuation, blank space, or words
This commit is contained in:
parent
d400f41593
commit
d812028b87
|
@ -251,7 +251,7 @@ int BusUnregister(struct Bus *bus)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
* DRIVER注册到BUS函数
|
* DRIVER注册并挂接到BUS函数
|
||||||
```c
|
```c
|
||||||
/**
|
/**
|
||||||
* @Description: support to register driver pointer to bus pointer
|
* @Description: support to register driver pointer to bus pointer
|
||||||
|
@ -273,7 +273,7 @@ int DriverRegisterToBus(struct Bus *bus, struct Driver *driver)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
* DRIVER从BUS中删除函数
|
* 将DRIVER从BUS中删除函数
|
||||||
```c
|
```c
|
||||||
/**
|
/**
|
||||||
* @Description: support to delete driver pointer from bus pointer
|
* @Description: support to delete driver pointer from bus pointer
|
||||||
|
@ -296,7 +296,7 @@ int DriverDeleteFromBus(struct Bus *bus, struct Driver *driver)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
* DEVICE注册到BUS函数
|
* DEVICE注册并挂接到BUS函数
|
||||||
```c
|
```c
|
||||||
/**
|
/**
|
||||||
* @Description: support to register dev pointer to bus pointer
|
* @Description: support to register dev pointer to bus pointer
|
||||||
|
@ -318,7 +318,7 @@ int DeviceRegisterToBus(struct Bus *bus, struct HardwareDev *device)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
* DEVICE从BUS中删除函数
|
* 将DEVICE从BUS中删除函数
|
||||||
```c
|
```c
|
||||||
/**
|
/**
|
||||||
* @Description: support to delete dev pointer from bus pointer
|
* @Description: support to delete dev pointer from bus pointer
|
||||||
|
|
|
@ -17,17 +17,17 @@ shell的运行过程:
|
||||||
* 执行相应的操作
|
* 执行相应的操作
|
||||||
|
|
||||||
建立一个命令与函数的一一对应的关系,定义结构体。
|
建立一个命令与函数的一一对应的关系,定义结构体。
|
||||||
根据定义建立一个表,将所有的命令以及对应的函数进行声明
|
根据定义建立一个表,将所有的命令以及对应的函数进行声明。
|
||||||
获得输入的命令,并将其和命令表中的命令进行匹配,然后执行相应的函数。
|
获得输入的命令,并将其和命令表中的命令进行匹配,然后执行相应的函数。
|
||||||
|
|
||||||
使用串口进行命令的输入和输出,在输入命令并回车之后,程序解析命令,根据空格将输入分开为命令和参数,对命令进行匹配,匹配到命令之后,执行函数。伪代码如下:
|
使用串口进行命令的输入和输出,在输入命令并回车之后,程序解析命令,根据空格将输入分开为命令和参数,对命令进行匹配,匹配到命令之后,执行函数。伪代码如下:
|
||||||
```c
|
```c
|
||||||
#define TRUE 1
|
#define TRUE 1
|
||||||
|
|
||||||
while(TRUE) { /* repeat forever */
|
while(TRUE) { /* repeat forever */
|
||||||
type_prompt(); /* display prompt on the screen */
|
type_prompt(); /* display prompt on the screen */
|
||||||
read_command(command, parameters); /* read input from terminal */
|
read_command(command, parameters); /* read input from terminal */
|
||||||
execve(command,parameters,0); /* execute command */
|
execve(command, parameters, 0); /* execute command */
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
### 总结
|
### 总结
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## Newlib
|
## Newlib
|
||||||
|
|
||||||
[Newlib](https://sourceware.org/newlib/)是一个由Red Hat公司维护的面向嵌入式设备的开源C标准库实现,并且是许多ARM、RISC-V架构交叉编译工具链的默认C标准库版本。
|
[Newlib](https://sourceware.org/newlib/)是一个由Red Hat公司维护的面向嵌入式设备的开源C标准库实现,是许多ARM、RISC-V架构交叉编译工具链的默认C标准库版本。
|
||||||
|
|
||||||
当XS_USING_LIBC选项打开时,XiUOS将使用Newlib提供C标准库函数。Newlib的正常工作依赖于XiUOS内核提供的一系列服务接口,这些接口定义在framework/lib/newlib/syscalls.c文件中。关于Newlib标准库函数与服务接口间的依赖关系可以参考[Newlib文档的Syscalls部分](https://sourceware.org/newlib/libc.html#Syscalls)。
|
当XS_USING_LIBC选项打开时,XiUOS将使用Newlib提供C标准库函数。Newlib的正常工作依赖于XiUOS内核提供的一系列服务接口,这些接口定义在framework/lib/newlib/syscalls.c文件中。关于Newlib标准库函数与服务接口间的依赖关系可以参考[Newlib文档的Syscalls部分](https://sourceware.org/newlib/libc.html#Syscalls)。
|
||||||
|
|
||||||
|
@ -14,4 +14,4 @@ XiUOS使用bzip2工具提供对bz2文件格式的支持:当文件系统功能
|
||||||
|
|
||||||
## MicroPhython
|
## MicroPhython
|
||||||
|
|
||||||
敬请期待
|
敬请期待
|
||||||
|
|
|
@ -554,7 +554,7 @@ int TestRealtime(int argc, char * argv[])
|
||||||
* XiUOS在RISC-V K210 400MHz CPU主频上中断响应时间为 2.6 us低于sylixos的 3.612 us
|
* XiUOS在RISC-V K210 400MHz CPU主频上中断响应时间为 2.6 us低于sylixos的 3.612 us
|
||||||
* 若进行同等1GHz主频换算,K210上的中断响应时间应为 1.016 us,XiUOS中断响应的效率比sylixos提高 2.5倍
|
* 若进行同等1GHz主频换算,K210上的中断响应时间应为 1.016 us,XiUOS中断响应的效率比sylixos提高 2.5倍
|
||||||
* 在ARM stm32f407 168MHz CPU主频中断响应时间 11.9 us高于1GHz主频测试的sylixos
|
* 在ARM stm32f407 168MHz CPU主频中断响应时间 11.9 us高于1GHz主频测试的sylixos
|
||||||
* 若进行同等1GHz主频换算,STM32F407上的中断响应时间应为 1.952 us,XiUOS的中断响应的效率比sylixos提高 0.8倍
|
* 若进行同等1GHz主频换算,STM32F407上的中断响应时间应为 1.952 us,XiUOS的中断响应的效率比sylixos提高 0.8倍
|
||||||
|
|
||||||
由于XiUOS优化了中断响应的流程,减少了执行指令数量,因此,同等主频条件下,中断响应时间更短。
|
由于XiUOS优化了中断响应的流程,减少了执行指令数量,因此,同等主频条件下,中断响应时间更短。
|
||||||
|
|
||||||
|
|
|
@ -31,11 +31,11 @@ XiUOS 操作系统提供了独特的内存管理分配算法进行内存管理
|
||||||
<span id="mm_heap_static_split"></span>
|
<span id="mm_heap_static_split"></span>
|
||||||
|
|
||||||
#### 静态内存划分
|
#### 静态内存划分
|
||||||
静态内存包含2个链表,其中,每个链表都具有 block_size、total_count、free_count和free_list 这四个属性。
|
静态内存包含2个链表,其中,每个链表都具有 block_size、total_count、free_count 和 free_list 这四个属性。
|
||||||
* block_size 记录了当前链表中每个静态内存块的大小
|
* block_size 记录了当前链表中每个静态内存块的大小
|
||||||
* total_count 记录了系统初始化之后分配给该链表中静态内存块的总个数
|
* total_count 记录了系统初始化之后分配给该链表中静态内存块的总个数
|
||||||
* free_count 记录了该链表中还可以分配给用户静态内存块的个数
|
* free_count 记录了该链表中还可以分配给用户静态内存块的个数
|
||||||
* free_list 则真正指向各个空闲静态内存块
|
* free_list 指向各个空闲静态内存块
|
||||||
|
|
||||||
下图为静态内存链表的具体情况,图中包括两个静态链表1和2。静态链表头1指向的内存池中存放的静态内存块的大小都是32字节,静态链表头2所指向的内存池中存放的静态内存块的大小都是64字节。此外,系统分别配置了静态链表头1和静态链表头2中静态内存块的total_count个数为256和128。因此,静态链表头1最多可以响应用户256次的小于32字节的内存请求,静态链表头2最多可以响应用户128次的介于33-64字节之间的内存请求,一旦对应的静态内存块分配完了,系统会向动态内存区域寻求内存空间分配。
|
下图为静态内存链表的具体情况,图中包括两个静态链表1和2。静态链表头1指向的内存池中存放的静态内存块的大小都是32字节,静态链表头2所指向的内存池中存放的静态内存块的大小都是64字节。此外,系统分别配置了静态链表头1和静态链表头2中静态内存块的total_count个数为256和128。因此,静态链表头1最多可以响应用户256次的小于32字节的内存请求,静态链表头2最多可以响应用户128次的介于33-64字节之间的内存请求,一旦对应的静态内存块分配完了,系统会向动态内存区域寻求内存空间分配。
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue