From 0f8bd7fab898124138debfd578ccd1a2dbdd8afa Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Mon, 17 Feb 2020 10:49:00 +0100 Subject: [PATCH] Fix internal link syntax in translation --- .../second-edition/posts/04-testing/index.zh-CN.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/blog/content/second-edition/posts/04-testing/index.zh-CN.md b/blog/content/second-edition/posts/04-testing/index.zh-CN.md index 32d20ba4..4050506e 100644 --- a/blog/content/second-edition/posts/04-testing/index.zh-CN.md +++ b/blog/content/second-edition/posts/04-testing/index.zh-CN.md @@ -22,11 +22,11 @@ date = 2019-04-27 这篇文章替换了此前的(现在已经过时了) [_单元测试(Unit Testing)_] 和 [_集成测试(Integration Tests)_] 两篇文章。这里我将假定你是在2019-04-27日后阅读的[_最小Rust内核_]一文。总而言之,本文要求你已经有一个[设置默认目标]的 `.cargo/config` 文件且[定义了一个runner可执行文件]。 -[_单元测试(Unit Testing)_]: ./second-edition/posts/deprecated/04-unit-testing/index.md -[_集成测试(Integration Tests)_]: ./second-edition/posts/deprecated/05-integration-tests/index.md -[_最小Rust内核_]: ./second-edition/posts/02-minimal-rust-kernel/index.md -[设置默认目标]: ./second-edition/posts/02-minimal-rust-kernel/index.md#set-a-default-target -[定义了一个runner可执行文件]: ./second-edition/posts/02-minimal-rust-kernel/index.md#using-cargo-run +[_单元测试(Unit Testing)_]: @/second-edition/posts/deprecated/04-unit-testing/index.md +[_集成测试(Integration Tests)_]: @/second-edition/posts/deprecated/05-integration-tests/index.md +[_最小Rust内核_]: @/second-edition/posts/02-minimal-rust-kernel/index.md +[设置默认目标]: @/second-edition/posts/02-minimal-rust-kernel/index.md#set-a-default-target +[定义了一个runner可执行文件]: @/second-edition/posts/02-minimal-rust-kernel/index.md#using-cargo-run ## Rust中的测试 @@ -151,7 +151,7 @@ test-args = ["-device", "isa-debug-exit,iobase=0xf4,iosize=0x04"] ### I/O 端口 在x86平台上,CPU和外围硬件通信通常有两种方式,**内存映射I/O**和**端口映射I/O**。之前,我们已经使用内存映射的方式,通过内存地址`0xb8000`访问了[VGA文本缓冲区]。该地址并没有映射到RAM,而是映射到了VGA设备的一部分内存上。 -[VGA text buffer]: ./second-edition/posts/03-vga-text-buffer/index.md +[VGA text buffer]: @/second-edition/posts/03-vga-text-buffer/index.md 与内存映射不同,端口映射I/O使用独立的I/O总线来进行通信。每个外围设备都有一个或数个端口号。CPU采用了特殊的`in`和`out`指令来和端口通信,这些指令要求一个端口号和一个字节的数据作为参数(有些这种指令的变体也允许发送`u16`或是`u32`长度的数据)。 @@ -304,7 +304,7 @@ lazy_static! { 和 `isa-debug-exit`设备一样,UART也是用过I/O端口进行编程的。由于UART相对来讲更加复杂,它使用多个I/O端口来对不同的设备寄存器进行编程。不安全的`SerialPort::new`函数需要UART的第一个I/O端口的地址作为参数,从该地址中可以计算出所有所需端口的地址。我们传递的端口地址为`0x3F8` ,该地址是第一个串行接口的标准端口号。 -[vga lazy-static]: ./second-edition/posts/03-vga-text-buffer/index.md#lazy-statics +[vga lazy-static]: @/second-edition/posts/03-vga-text-buffer/index.md#lazy-statics 为了使串口更加易用,我们添加了 `serial_print!` 和 `serial_println!`宏: