mirror of
https://github.com/m-labs/artiq.git
synced 2024-12-27 12:18:26 +08:00
satman: uart_logger -> buffer_logger
This commit is contained in:
parent
cc40313501
commit
ea61d9bd39
1
artiq/firmware/Cargo.lock
generated
1
artiq/firmware/Cargo.lock
generated
@ -560,6 +560,7 @@ dependencies = [
|
|||||||
"eh",
|
"eh",
|
||||||
"io",
|
"io",
|
||||||
"log",
|
"log",
|
||||||
|
"logger_artiq",
|
||||||
"proto_artiq",
|
"proto_artiq",
|
||||||
"riscv",
|
"riscv",
|
||||||
]
|
]
|
||||||
|
@ -20,6 +20,7 @@ crc = { version = "1.7", default-features = false }
|
|||||||
cslice = { version = "0.3" }
|
cslice = { version = "0.3" }
|
||||||
board_misoc = { path = "../libboard_misoc", features = ["uart_console", "log"] }
|
board_misoc = { path = "../libboard_misoc", features = ["uart_console", "log"] }
|
||||||
board_artiq = { path = "../libboard_artiq", features = ["alloc"] }
|
board_artiq = { path = "../libboard_artiq", features = ["alloc"] }
|
||||||
|
logger_artiq = { path = "../liblogger_artiq" }
|
||||||
alloc_list = { path = "../liballoc_list" }
|
alloc_list = { path = "../liballoc_list" }
|
||||||
riscv = { version = "0.6.0", features = ["inline-asm"] }
|
riscv = { version = "0.6.0", features = ["inline-asm"] }
|
||||||
proto_artiq = { path = "../libproto_artiq", features = ["log", "alloc"] }
|
proto_artiq = { path = "../libproto_artiq", features = ["log", "alloc"] }
|
||||||
|
@ -6,6 +6,7 @@ extern crate log;
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate board_misoc;
|
extern crate board_misoc;
|
||||||
extern crate board_artiq;
|
extern crate board_artiq;
|
||||||
|
extern crate logger_artiq;
|
||||||
extern crate riscv;
|
extern crate riscv;
|
||||||
extern crate alloc;
|
extern crate alloc;
|
||||||
extern crate proto_artiq;
|
extern crate proto_artiq;
|
||||||
@ -16,14 +17,14 @@ extern crate io;
|
|||||||
extern crate eh;
|
extern crate eh;
|
||||||
|
|
||||||
use core::convert::TryFrom;
|
use core::convert::TryFrom;
|
||||||
use board_misoc::{csr, ident, clock, config, uart_logger, i2c, pmp};
|
use board_misoc::{csr, ident, clock, config, i2c, pmp};
|
||||||
#[cfg(has_si5324)]
|
#[cfg(has_si5324)]
|
||||||
use board_artiq::si5324;
|
use board_artiq::si5324;
|
||||||
#[cfg(has_si549)]
|
#[cfg(has_si549)]
|
||||||
use board_artiq::si549;
|
use board_artiq::si549;
|
||||||
#[cfg(soc_platform = "kasli")]
|
#[cfg(soc_platform = "kasli")]
|
||||||
use board_misoc::irq;
|
use board_misoc::irq;
|
||||||
use board_misoc::spiflash;
|
use board_misoc::{boot, spiflash};
|
||||||
use board_artiq::{spi, drtioaux, drtio_routing};
|
use board_artiq::{spi, drtioaux, drtio_routing};
|
||||||
#[cfg(soc_platform = "efc")]
|
#[cfg(soc_platform = "efc")]
|
||||||
use board_artiq::ad9117;
|
use board_artiq::ad9117;
|
||||||
@ -793,6 +794,27 @@ fn sysclk_setup() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn setup_log_levels() {
|
||||||
|
match config::read_str("log_level", |r| r.map(|s| s.parse())) {
|
||||||
|
Ok(Ok(log_level_filter)) => {
|
||||||
|
info!("log level set to {} by `log_level` config key",
|
||||||
|
log_level_filter);
|
||||||
|
log::set_max_level(log_level_filter);
|
||||||
|
}
|
||||||
|
_ => info!("log level set to INFO by default")
|
||||||
|
}
|
||||||
|
match config::read_str("uart_log_level", |r| r.map(|s| s.parse())) {
|
||||||
|
Ok(Ok(uart_log_level_filter)) => {
|
||||||
|
info!("UART log level set to {} by `uart_log_level` config key",
|
||||||
|
uart_log_level_filter);
|
||||||
|
logger_artiq::BufferLogger::with(|logger|
|
||||||
|
logger.set_uart_log_level(uart_log_level_filter));
|
||||||
|
}
|
||||||
|
_ => info!("UART log level set to INFO by default")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static mut LOG_BUFFER: [u8; 1<<17] = [0; 1<<17];
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern fn main() -> i32 {
|
pub extern fn main() -> i32 {
|
||||||
@ -812,12 +834,21 @@ pub extern fn main() -> i32 {
|
|||||||
irq::enable(csr::WRPLL_INTERRUPT);
|
irq::enable(csr::WRPLL_INTERRUPT);
|
||||||
|
|
||||||
clock::init();
|
clock::init();
|
||||||
uart_logger::ConsoleLogger::register();
|
unsafe {
|
||||||
|
logger_artiq::BufferLogger::new(&mut LOG_BUFFER[..]).register(||
|
||||||
|
boot::start_user(startup as usize));
|
||||||
|
}
|
||||||
|
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
fn startup() {
|
||||||
info!("ARTIQ satellite manager starting...");
|
info!("ARTIQ satellite manager starting...");
|
||||||
info!("software ident {}", csr::CONFIG_IDENTIFIER_STR);
|
info!("software ident {}", csr::CONFIG_IDENTIFIER_STR);
|
||||||
info!("gateware ident {}", ident::read(&mut [0; 64]));
|
info!("gateware ident {}", ident::read(&mut [0; 64]));
|
||||||
|
|
||||||
|
setup_log_levels();
|
||||||
|
|
||||||
#[cfg(has_i2c)]
|
#[cfg(has_i2c)]
|
||||||
i2c::init().expect("I2C initialization failed");
|
i2c::init().expect("I2C initialization failed");
|
||||||
#[cfg(all(soc_platform = "kasli", hw_rev = "v2.0"))]
|
#[cfg(all(soc_platform = "kasli", hw_rev = "v2.0"))]
|
||||||
|
Loading…
Reference in New Issue
Block a user