diff --git a/.github/workflows/makefile.yml b/.github/workflows/makefile.yml index b07393e8..8cfa3de3 100644 --- a/.github/workflows/makefile.yml +++ b/.github/workflows/makefile.yml @@ -44,7 +44,7 @@ jobs: - if: ${{ steps.cache-build-tools.outputs.cache-hit != 'true' }} name: Install toolchain continue-on-error: true - run: sudo apt install -y llvm-dev libclang-dev clang gcc-multilib && cargo install cargo-binutils && rustup toolchain install nightly && rustup default nightly && rustup component add rust-src && rustup component add llvm-tools-preview && rustup target add x86_64-unknown-none + run: sudo apt install -y llvm-dev libclang-dev clang gcc-multilib && cargo install cargo-binutils && rustup toolchain install nightly && rustup default nightly && rustup component add rust-src && rustup component add llvm-tools-preview && rustup target add x86_64-unknown-none && rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu - name: build the DragonOS run: bash -c "source ~/.cargo/env && export DragonOS_GCC=$HOME/opt/dragonos-gcc/gcc-x86_64-unknown-none/bin && make -j $(nproc) " diff --git a/kernel/src/driver/uart/uart.rs b/kernel/src/driver/uart/uart.rs index 95e7de36..0f21484b 100644 --- a/kernel/src/driver/uart/uart.rs +++ b/kernel/src/driver/uart/uart.rs @@ -156,10 +156,10 @@ impl UartDriver { /// @param str 发送字符切片 /// @return None #[allow(dead_code)] - fn uart_send(uart_port: &UartPort, str: &str) { + fn uart_send(uart_port: &UartPort, s: &str) { let port = uart_port.to_u16(); while UartDriver::is_transmit_empty(port) == false { - for c in str.bytes() { + for c in s.bytes() { unsafe { io_out8(port, c); } @@ -202,11 +202,11 @@ pub extern "C" fn c_uart_read(port: u16) -> u8 { ///@param port 串口端口 ///@param str 字符串S #[no_mangle] -pub extern "C" fn c_uart_send_str(port: u16, str: *const u8) { +pub extern "C" fn c_uart_send_str(port: u16, s: *const u8) { unsafe { - let mut i = 0; - while *offset(str, i) != '\0' as u8 { - c_uart_send(port, *offset(str, i)); + let mut i = 0isize; + while *offset(s, i) != '\0' as u8 { + c_uart_send(port, *offset(s, i)); i = i + 1; } } diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 00000000..3d808158 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly-2023-01-21" +components = ["rust-src"] \ No newline at end of file