update otg usb

This commit is contained in:
guangzong 2024-04-21 23:19:51 -04:00
parent b2573108c8
commit 71b7803793
Signed by: guangzong
GPG Key ID: 095389BACAE97D19
9 changed files with 426 additions and 28 deletions

2
.vscode/launch.json vendored
View File

@ -27,7 +27,7 @@
{ {
"coreIndex": 0, "coreIndex": 0,
//!MODIFY //!MODIFY
"programBinary": "/home/zong/Code/u5_example/target/thumbv8m.main-none-eabihf/debug/u5_example", "programBinary": "/home/zong/Code/u5_example/target/thumbv8m.main-none-eabihf/debug/usb_hs",
//!MODIFY //!MODIFY
"svdFile": "stm32u5a5.svd", "svdFile": "stm32u5a5.svd",
"rttEnabled": true "rttEnabled": true

2
.vscode/taks.json vendored
View File

@ -6,7 +6,7 @@
"command": "build", "command": "build",
"args": [ "args": [
"--bin", "--bin",
"u5_example" "usb_hs"
], ],
"problemMatcher": [ "problemMatcher": [
"$rustc" "$rustc"

35
Cargo.lock generated
View File

@ -95,7 +95,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"strsim", "strsim",
"syn 2.0.57", "syn 2.0.59",
] ]
[[package]] [[package]]
@ -106,7 +106,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
dependencies = [ dependencies = [
"darling_core", "darling_core",
"quote", "quote",
"syn 2.0.57", "syn 2.0.59",
] ]
[[package]] [[package]]
@ -139,7 +139,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.59",
] ]
[[package]] [[package]]
@ -194,7 +194,7 @@ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.59",
] ]
[[package]] [[package]]
@ -380,6 +380,12 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5"
[[package]]
name = "log"
version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]] [[package]]
name = "nb" name = "nb"
version = "0.1.3" version = "0.1.3"
@ -439,18 +445,18 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.79" version = "1.0.80"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" checksum = "a56dea16b0a29e94408b9aa5e2940a4eedbd128a1ba20e8f7ae60fd3d465af0e"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.35" version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
] ]
@ -502,7 +508,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.59",
] ]
[[package]] [[package]]
@ -524,7 +530,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]] [[package]]
name = "stm32-metapac" name = "stm32-metapac"
version = "15.0.0" version = "15.0.0"
source = "git+https://gitea.ggeta.com/guangzong/stm32-data-generated#a9f7568e7fb17705922cd5947523ee1869774234" source = "git+https://gitea.ggeta.com/guangzong/stm32-data-generated#a3820c27dc77a06f0178e9f829220da6959bd240"
dependencies = [ dependencies = [
"cortex-m", "cortex-m",
"cortex-m-rt", "cortex-m-rt",
@ -549,9 +555,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.57" version = "2.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" checksum = "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -575,13 +581,12 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.57", "syn 2.0.59",
] ]
[[package]] [[package]]
name = "u5-lib" name = "u5-lib"
version = "0.1.0" version = "0.1.0"
source = "git+ssh://gitea@git.ggeta.com:2002/guangzong/u5_new.git?branch=dev#985cbf34c6d9e1fb75cf015f0bcdf8b693fd8b2d"
dependencies = [ dependencies = [
"cortex-m", "cortex-m",
"cortex-m-rt", "cortex-m-rt",
@ -596,8 +601,10 @@ dependencies = [
"embassy-usb-driver", "embassy-usb-driver",
"futures", "futures",
"heapless", "heapless",
"log",
"sdio-host", "sdio-host",
"stm32-metapac", "stm32-metapac",
"usb-device",
] ]
[[package]] [[package]]

View File

@ -4,20 +4,23 @@ version = "0.1.0"
edition = "2021" edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[[bin]] # [[bin]]
name = "i2c" # name = "i2c"
path = "src/bin/i2c.rs" # path = "src/bin/i2c.rs"
[net] # [net]
git-fetch-with-cli = true # git-fetch-with-cli = true
[dependencies] [dependencies]
# cortex-m = "0.7.0" # cortex-m = "0.7.0"
cortex-m = { version = "0.7.7" } cortex-m = { version = "0.7.7" }
u5-lib = { git = "ssh://gitea@git.ggeta.com:2002/guangzong/u5_new.git", features = [ #u5-lib = { git = "ssh://gitea@git.ggeta.com:2002/guangzong/u5_new.git", features = [
# "stm32u5a5qj",
#], default-features = false, branch = "dev" }
u5-lib = { path="../u5_new", features = [
"stm32u5a5qj", "stm32u5a5qj",
], default-features = false, branch = "dev" } ], default-features = false }
eb_cmds = { git = "ssh://gitea@git.ggeta.com:2002/guangzong/eb_cmds.git" } eb_cmds = { git = "ssh://gitea@git.ggeta.com:2002/guangzong/eb_cmds.git" }
#critical-section = "1.1.2" #critical-section = "1.1.2"

157
src/bin/usb_hs.rs Normal file
View File

@ -0,0 +1,157 @@
#![feature(noop_waker)]
#![no_std]
#![no_main]
#![feature(type_alias_impl_trait)]
use core::default::Default;
use core::panic::PanicInfo;
use defmt_rtt as _;
use embassy_executor::Spawner;
use embassy_usb::{
class::cdc_acm::{CdcAcmClass, State},
driver::EndpointError,
Builder,
};
use futures::future::join;
// use stm32_metapac;
use u5_lib::{pwr::vddusb_monitor_up, usb_otg_hs::mod_new::{power_up_init, setup_process}, *};
// define defmt format
#[derive(defmt::Format)]
pub enum UsbError {
BufferOverflow,
Disabled,
}
const GREEN: gpio::GpioPort = gpio::PB7;
#[embassy_executor::main]
async fn main(spawner: Spawner) {
clock::init_clock(false, true, true, clock::ClockFreqs::KernelFreq160Mhz);
low_power::no_deep_sleep_request();
GREEN.setup();
// low_power::no_deep_sleep_request();
// mcu_no_deep_sleep();
defmt::info!("setup led finished!");
// spawner.spawn(btn()).unwrap();
// spawner.spawn(pwr::vddusb_monitor_up()).unwrap();
// spawner.spawn(usb_task()).unwrap();
// use some delay to wait for usb power up
pwr::vddusb_monitor_up_tmp();
power_up_init();
defmt::info!("vddusb monitor finished!");
//
spawner.spawn( setup_process()).unwrap();
defmt::info!("usb init finished!");
loop {
exti::EXTI13_PC13.wait_for_raising().await;
GREEN.toggle();
}
}
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
defmt::info!("panic");
defmt::error!(
"Location file name: {:?}, line: {:?}, col: {:?}",
_info.location().unwrap().file(),
_info.location().unwrap().line(),
_info.location().unwrap().column()
);
loop {}
}
#[embassy_executor::task]
pub async fn usb_task() {
let _ep_out_buffer = [0u8; 256];
let mut config = usb_otg_hs::Config::default();
config.vbus_detection = false;
let driver = usb_otg_hs::Driver::new(config, gpio::USB_DM_PA11, gpio::USB_DP_PA12);
// // Create embassy-usb Config
let mut config = embassy_usb::Config::new(0xaaaa, 0xefba);
config.manufacturer = Some("ggeta");
config.product = Some("USB-serial example");
config.serial_number = Some("12345678");
config.device_class = 0xEF;
config.device_sub_class = 0x02;
config.device_protocol = 0x01;
config.composite_with_iads = true;
let mut device_descriptor = [0; 512];
let mut config_descriptor = [0; 512];
let mut bos_descriptor = [0; 512];
let mut control_buf = [0; 64];
let mut msos_descriptor = [0; 512];
let mut state = State::new();
// USART1.send("starting usb task new!\n\n".as_bytes());
let mut builder = Builder::new(
driver,
config,
&mut device_descriptor,
&mut config_descriptor,
&mut bos_descriptor,
&mut msos_descriptor,
&mut control_buf,
);
let mut class = CdcAcmClass::new(&mut builder, &mut state, 64);
// USART1.send("declare class success!\n".as_bytes());
// Build the builder.
let mut usb = builder.build();
// USART1.send("success!\n".as_bytes());
let usb_fut = usb.run(); // Run the USB device.
let handler_fut = async {
loop {
class.wait_connection().await;
defmt::info!("connected");
let _ = usb_handler(&mut class).await;
defmt::info!("disconnected");
}
};
// USART1.send("start usb task success!\n".as_bytes());
join(usb_fut, handler_fut).await; // Run everything concurrently.
}
struct Disconnected {}
impl From<EndpointError> for Disconnected {
fn from(val: EndpointError) -> Self {
match val {
EndpointError::BufferOverflow => panic!("Buffer overflow"),
EndpointError::Disabled => Disconnected {},
}
}
}
async fn usb_handler<'d>(
class: &mut CdcAcmClass<'d, usb_otg_hs::Driver>,
) -> Result<(), Disconnected> {
let mut buf: [u8; 128] = [0; 128];
// the maximum size of the command is 64 bytes
defmt::info!("start usb handler");
loop {
// select(future1, future2)
let ret = class.read_packet(&mut buf).await;
match ret {
Ok(n) => {
defmt::info!("read {} bytes", n);
class.write_packet(&buf[0..n]).await.unwrap();
}
Err(e) => {
defmt::info!("error: {:?}", e);
return Err(e.into());
}
}
// class.write_packet(&buf[0..n]).await.unwrap();
}
}

View File

@ -220,7 +220,7 @@ fn set_dcmi() -> dcmi::DcmiPort {
#[task] #[task]
async fn async_main(spawner: Spawner) { async fn async_main(spawner: Spawner) {
// clock::init_clock(true, false, clock::ClockFreqs::KernelFreq4Mhz); // clock::init_clock(true, false, clock::ClockFreqs::KernelFreq4Mhz);
clock::init_clock(false, true, true, clock::ClockFreqs::KernelFreq160Mhz); // clock::init_clock(false, true, true, clock::ClockFreqs::KernelFreq160Mhz);
// cam_down.set_high(); // cam_down.set_high();
delay_ms(200); delay_ms(200);
let green = setup_led(); let green = setup_led();
@ -332,9 +332,9 @@ async fn btn() {
#[embassy_executor::task] #[embassy_executor::task]
pub async fn usb_task() { pub async fn usb_task() {
let _ep_out_buffer = [0u8; 256]; let _ep_out_buffer = [0u8; 256];
let mut config = usb_otg::Config::default(); let mut config = usb_otg_hs::Config::default();
config.vbus_detection = false; config.vbus_detection = false;
let driver = usb_otg::Driver::new(config, gpio::USB_DM_PA11, gpio::USB_DP_PA12); let driver = usb_otg_hs::Driver::new(config, gpio::USB_DM_PA11, gpio::USB_DP_PA12);
// // Create embassy-usb Config // // Create embassy-usb Config
let mut config = embassy_usb::Config::new(0xaaaa, 0xefba); let mut config = embassy_usb::Config::new(0xaaaa, 0xefba);
@ -399,7 +399,7 @@ const IMG_SIZE: u32 = 2000;
// 2000 block = 2000 * 512 = 1M // 2000 block = 2000 * 512 = 1M
const SIZE_BLOCK: u32 = 1; // first block store the number of image files const SIZE_BLOCK: u32 = 1; // first block store the number of image files
async fn usb_handler<'d>(class: &mut CdcAcmClass<'d, usb_otg::Driver>) -> Result<(), Disconnected> { async fn usb_handler<'d>(class: &mut CdcAcmClass<'d, usb_otg_hs::Driver>) -> Result<(), Disconnected> {
let mut in_buf: [u8; 128] = [0; 128]; let mut in_buf: [u8; 128] = [0; 128];
// the maximum size of the command is 64 bytes // the maximum size of the command is 64 bytes

231
tmp.log Executable file
View File

@ -0,0 +1,231 @@
ffff9f802a787a40 690792870 S Ci:3:067:0 s 80 06 0100 0000 0012 18 <
ffff9f802a787a40 690795417 C Ci:3:067:0 0 18 = 12011001 02000040 34127856 00020102 0301
ffff9f802a787a40 690795431 S Ci:3:067:0 s 80 06 0200 0000 0009 9 <
ffff9f802a787a40 690799416 C Ci:3:067:0 0 9 = 09024b00 02010080 32
ffff9f802a787a40 690799424 S Ci:3:067:0 s 80 06 0200 0000 004b 75 <
ffff9f802a787a40 690803415 C Ci:3:067:0 0 75 = 09024b00 02010080 32080b00 02020201 00090400 00010202 01000524 00100105
ffff9f802a787e00 690803427 S Ci:3:067:0 s 80 06 0300 0000 00ff 255 <
ffff9f802a787e00 690807416 C Ci:3:067:0 0 4 = 04030904
ffff9f802a787e00 690807422 S Ci:3:067:0 s 80 06 0302 0409 00ff 255 <
ffff9f802a787e00 690811416 C Ci:3:067:0 0 38 = 26035500 53004200 20004500 78006100 6d007000 6c006500 20004400 65007600
ffff9f802a787e00 690811425 S Ci:3:067:0 s 80 06 0301 0409 00ff 255 <
ffff9f802a787e00 690815416 C Ci:3:067:0 0 12 = 0c034700 47004500 54004100
ffff9f802a787e00 690815425 S Ci:3:067:0 s 80 06 0303 0409 00ff 255 <
ffff9f802a787e00 690819415 C Ci:3:067:0 0 14 = 0e033100 32003300 34003500 3600
ffff9f802a787e00 690855564 S Co:3:067:0 s 00 09 0001 0000 0000 0
ffff9f802a787e00 690856537 C Co:3:067:0 0 0
ffff9f802a7866c0 690856587 S Co:3:067:0 s 21 20 0000 0000 0007 7 = 80250000 000008
ffff9f802a7866c0 690860412 C Co:3:067:0 0 7 >
ffff9f802a787e00 691476571 S Ii:3:067:1 -115:8 64 <
ffff9f802a7863c0 691476585 S Bi:3:067:2 -115 128 <
ffff9f802a786000 691476587 S Bi:3:067:2 -115 128 <
ffff9f802a787680 691476589 S Bi:3:067:2 -115 128 <
ffff9f802a786d80 691476591 S Bi:3:067:2 -115 128 <
ffff9f802a787c80 691476593 S Bi:3:067:2 -115 128 <
ffff9f802a786240 691476595 S Bi:3:067:2 -115 128 <
ffff9f802a787080 691476597 S Bi:3:067:2 -115 128 <
ffff9f802a787800 691476599 S Bi:3:067:2 -115 128 <
ffff9f802a786780 691476601 S Bi:3:067:2 -115 128 <
ffff9f802a786fc0 691476603 S Bi:3:067:2 -115 128 <
ffff9f802a786b40 691476605 S Bi:3:067:2 -115 128 <
ffff9f802a786480 691476608 S Bi:3:067:2 -115 128 <
ffff9f802a786c00 691476610 S Bi:3:067:2 -115 128 <
ffff9f802a787500 691476612 S Bi:3:067:2 -115 128 <
ffff9f802a786300 691476614 S Bi:3:067:2 -115 128 <
ffff9f802a787bc0 691476616 S Bi:3:067:2 -115 128 <
ffff9f7e7e7eb680 691476621 S Co:3:067:0 s 21 22 0003 0000 0000 0
ffff9f802a7863c0 695583608 C Bi:3:067:2 -32 0
ffff9f7e7e7eb680 695583644 C Co:3:067:0 -32 0
ffff9f7e7e7eb680 695583681 S Co:3:067:0 s 21 20 0000 0000 0007 7 = 00c20100 000008
ffff9f802a786000 695583683 C Bi:3:067:2 -2 0
ffff9f802a787e00 695583725 C Ii:3:067:1 -32:8 0
ffff9f802a787e00 695583726 S Ii:3:067:1 -115:8 64 <
ffff9f802a787680 695583759 C Bi:3:067:2 -2 0
ffff9f802a786d80 695583877 C Bi:3:067:2 -2 0
ffff9f802a787c80 695583926 C Bi:3:067:2 -2 0
ffff9f7e7e7eb680 695583967 C Co:3:067:0 -71 0
ffff9f7e7e7eb680 695583997 S Co:3:067:0 s 21 20 0000 0000 0007 7 = 00093d00 000008
ffff9f802a786240 695584037 C Bi:3:067:2 -2 0
ffff9f802a787080 695584115 C Bi:3:067:2 -2 0
ffff9f802a787800 695584194 C Bi:3:067:2 -2 0
ffff9f802a786780 695584274 C Bi:3:067:2 -2 0
ffff9f802a786fc0 695584352 C Bi:3:067:2 -2 0
ffff9f802a786b40 695584432 C Bi:3:067:2 -2 0
ffff9f802a786480 695584511 C Bi:3:067:2 -2 0
ffff9f802a786c00 695584594 C Bi:3:067:2 -2 0
ffff9f7e7e7eb680 695584633 C Co:3:067:0 -71 0
ffff9f7e7e7eb680 695584646 S Co:3:067:0 s 21 20 0000 0000 0007 7 = 00c20100 000008
ffff9f802a787500 695584710 C Bi:3:067:2 -2 0
ffff9f802a786300 695584790 C Bi:3:067:2 -2 0
ffff9f802a787bc0 695584869 C Bi:3:067:2 -2 0
ffff9f802a786e40 695584872 S Co:3:067:0 s 02 01 0000 0082 0000 0
ffff9f7e7e7eb680 695585029 C Co:3:067:0 -71 0
ffff9f7e7e7eb680 695585052 S Co:3:067:0 s 21 22 0002 0000 0000 0
ffff9f802a786e40 695587486 C Co:3:067:0 -71 0
ffff9f802a7863c0 695587489 S Bi:3:067:2 -115 128 <
ffff9f802a786000 695587491 S Bi:3:067:2 -115 128 <
ffff9f802a787680 695587492 S Bi:3:067:2 -115 128 <
ffff9f802a786d80 695587494 S Bi:3:067:2 -115 128 <
ffff9f802a787c80 695587496 S Bi:3:067:2 -115 128 <
ffff9f802a786240 695587498 S Bi:3:067:2 -115 128 <
ffff9f802a787080 695587500 S Bi:3:067:2 -115 128 <
ffff9f802a787800 695587501 S Bi:3:067:2 -115 128 <
ffff9f802a786780 695587503 S Bi:3:067:2 -115 128 <
ffff9f802a786fc0 695587505 S Bi:3:067:2 -115 128 <
ffff9f802a786b40 695587506 S Bi:3:067:2 -115 128 <
ffff9f802a786480 695587508 S Bi:3:067:2 -115 128 <
ffff9f802a786c00 695587509 S Bi:3:067:2 -115 128 <
ffff9f802a787500 695587512 S Bi:3:067:2 -115 128 <
ffff9f802a786300 695587513 S Bi:3:067:2 -115 128 <
ffff9f802a787bc0 695587515 S Bi:3:067:2 -115 128 <
ffff9f802a7863c0 695587605 C Bi:3:067:2 -71 0
ffff9f7e7e7eb680 695588155 C Co:3:067:0 -71 0
ffff9f802a786000 695588156 C Bi:3:067:2 -71 0
ffff9f802a787680 695588900 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695589030 C Co:3:004:0 0 0
ffff9f802a7866c0 695589072 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a786d80 695589149 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695589280 C Co:3:004:0 0 0
ffff9f802a7866c0 695589322 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a787c80 695589400 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695589530 C Co:3:004:0 0 0
ffff9f802a7866c0 695589575 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a786240 695589649 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695589781 C Co:3:004:0 0 0
ffff9f802a7866c0 695589823 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a787080 695589899 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695590030 C Co:3:004:0 0 0
ffff9f802a7866c0 695590073 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a787800 695590150 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695590280 C Co:3:004:0 0 0
ffff9f802a7866c0 695590323 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a786780 695590401 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695590530 C Co:3:004:0 0 0
ffff9f802a7866c0 695590573 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a786fc0 695590650 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695590780 C Co:3:004:0 0 0
ffff9f802a7866c0 695590822 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a786b40 695590900 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695591030 C Co:3:004:0 0 0
ffff9f802a7866c0 695591072 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a786480 695591150 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695591280 C Co:3:004:0 0 0
ffff9f802a7866c0 695591322 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a786c00 695591400 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695591439 C Co:3:004:0 0 0
ffff9f802a7866c0 695591481 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a787500 695591559 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695591560 C Co:3:004:0 0 0
ffff9f802a7866c0 695591601 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a786300 695591680 C Bi:3:067:2 -71 0
ffff9f802a7866c0 695591681 C Co:3:004:0 0 0
ffff9f802a787e00 695591760 C Ii:3:067:1 -32:8 0
ffff9f802a787e00 695591761 S Ii:3:067:1 -115:8 64 <
ffff9f802a7866c0 695591765 S Co:3:004:0 s 23 08 9052 0001 0000 0
ffff9f802a7866c0 695591799 C Co:3:004:0 0 0
ffff9f802a787bc0 695591838 C Bi:3:067:2 -71 0
ffff9f802a787e00 695599736 C Ii:3:067:1 -32:8 0
ffff9f802a787e00 695599738 S Ii:3:067:1 -115:8 64 <
ffff9f802a787e00 695607736 C Ii:3:067:1 -32:8 0
ffff9f802a787e00 695607737 S Ii:3:067:1 -115:8 64 <
ffff9f802a787e00 695615736 C Ii:3:067:1 -32:8 0
ffff9f802a787e00 695615737 S Ii:3:067:1 -115:8 64 <
ffff9f802a787e00 695623736 C Ii:3:067:1 -32:8 0
ffff9f802a787e00 695623737 S Ii:3:067:1 -115:8 64 <
ffff9f7e456ea0c0 695623911 C Ii:3:004:1 0:2048 1 = 04
ffff9f7e456ea0c0 695623915 S Ii:3:004:1 -115:2048 1 <
ffff9f802a7866c0 695623923 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a7866c0 695624156 C Ci:3:004:0 0 4 = 00010100
ffff9f802a7866c0 695624159 S Co:3:004:0 s 23 01 0010 0002 0000 0
ffff9f802a7866c0 695624405 C Co:3:004:0 0 0
ffff9f802a787e00 695624512 C Ii:3:067:1 -108:8 0
ffff9f802a787bc0 695655522 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 695655783 C Ci:3:004:0 0 4 = 00010000
ffff9f802a787bc0 695689530 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 695689783 C Ci:3:004:0 0 4 = 00010000
ffff9f802a787bc0 695726198 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 695726410 C Ci:3:004:0 0 4 = 01010100
ffff9f802a787bc0 695726416 S Co:3:004:0 s 23 01 0010 0002 0000 0
ffff9f802a787bc0 695726656 C Co:3:004:0 0 0
ffff9f802a787bc0 695759536 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 695759785 C Ci:3:004:0 0 4 = 01010000
ffff9f802a787bc0 695792872 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 695793035 C Ci:3:004:0 0 4 = 01010000
ffff9f802a787bc0 695826195 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 695826408 C Ci:3:004:0 0 4 = 01010000
ffff9f802a787bc0 695859527 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 695859783 C Ci:3:004:0 0 4 = 01010000
ffff9f802a787bc0 695859846 S Co:3:004:0 s 23 03 0004 0002 0000 0
ffff9f802a787bc0 695860031 C Co:3:004:0 0 0
ffff9f802a787bc0 695876196 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 695876408 C Ci:3:004:0 0 4 = 11010000
ffff9f7e456ea0c0 695879908 C Ii:3:004:1 0:2048 1 = 04
ffff9f7e456ea0c0 695879911 S Ii:3:004:1 -115:2048 1 <
ffff9f802a787bc0 695892862 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 695893033 C Ci:3:004:0 0 4 = 03011000
ffff9f802a787bc0 695893037 S Co:3:004:0 s 23 01 0014 0002 0000 0
ffff9f802a787bc0 695893281 C Co:3:004:0 0 0
ffff9f802a787bc0 696049558 S Ci:3:000:0 s 80 06 0100 0000 0040 64 <
ffff9f802a787bc0 696052417 C Ci:3:000:0 0 18 = 12011001 02000040 34127856 00020102 0301
ffff9f802a787bc0 696052421 S Co:3:004:0 s 23 03 0004 0002 0000 0
ffff9f802a787bc0 696052656 C Co:3:004:0 0 0
ffff9f802a787bc0 696066192 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 696066408 C Ci:3:004:0 0 4 = 11010000
ffff9f802a787bc0 696082860 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 696083032 C Ci:3:004:0 0 4 = 03011000
ffff9f802a787bc0 696083036 S Co:3:004:0 s 23 01 0014 0002 0000 0
ffff9f802a787bc0 696083281 C Co:3:004:0 0 0
ffff9f802a787bc0 696259527 S Ci:3:068:0 s 80 06 0100 0000 0012 18 <
ffff9f802a787bc0 696259666 C Ci:3:068:0 -32 0
ffff9f802a787bc0 696259670 S Ci:3:068:0 s 80 06 0100 0000 0012 18 <
ffff9f802a787bc0 696259805 C Ci:3:068:0 -32 0
ffff9f802a787bc0 696259809 S Ci:3:068:0 s 80 06 0100 0000 0012 18 <
ffff9f802a787bc0 696259945 C Ci:3:068:0 -32 0
ffff9f802a787bc0 696259953 S Co:3:004:0 s 23 01 0001 0002 0000 0
ffff9f802a787bc0 696260031 C Co:3:004:0 0 0
ffff9f802a787bc0 696260133 S Co:3:004:0 s 23 03 0004 0002 0000 0
ffff9f802a787bc0 696260281 C Co:3:004:0 0 0
ffff9f802a787bc0 696276192 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 696276408 C Ci:3:004:0 0 4 = 11010000
ffff9f802a787bc0 696292862 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 696293033 C Ci:3:004:0 0 4 = 03011000
ffff9f802a787bc0 696293036 S Co:3:004:0 s 23 01 0014 0002 0000 0
ffff9f802a787bc0 696293280 C Co:3:004:0 0 0
ffff9f802a787bc0 696449565 S Ci:3:000:0 s 80 06 0100 0000 0040 64 <
ffff9f802a787bc0 696452419 C Ci:3:000:0 0 18 = 12011001 02000040 34127856 00020102 0301
ffff9f802a787bc0 696452425 S Co:3:004:0 s 23 03 0004 0002 0000 0
ffff9f802a787bc0 696452657 C Co:3:004:0 0 0
ffff9f802a787bc0 696466197 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 696466410 C Ci:3:004:0 0 4 = 11010000
ffff9f802a787bc0 696482862 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a787bc0 696483034 C Ci:3:004:0 0 4 = 03011000
ffff9f802a787bc0 696483040 S Co:3:004:0 s 23 01 0014 0002 0000 0
ffff9f802a787bc0 696483282 C Co:3:004:0 0 0
ffff9f7e455f09c0 696529582 S Bo:3:005:3 -115 31 = 55534243 01090000 00000000 00000600 00000000 00000000 00000000 000000
ffff9f7e455f09c0 696529602 C Bo:3:005:3 0 31 >
ffff9f7e455f09c0 696529611 S Bi:3:005:3 -115 13 <
ffff9f7e455f09c0 696529640 C Bi:3:005:3 0 13 = 55534253 01090000 00000000 00
ffff9f802a787bc0 696656208 S Ci:3:069:0 s 80 06 0100 0000 0012 18 <
ffff9f802a787bc0 696658422 C Ci:3:069:0 0 18 = 12011001 02000040 34127856 00020102 0301
ffff9f802a787bc0 696658436 S Ci:3:069:0 s 80 06 0200 0000 0009 9 <
ffff9f802a787bc0 696662418 C Ci:3:069:0 0 9 = 09024b00 02010080 32
ffff9f802a787bc0 696662425 S Ci:3:069:0 s 80 06 0200 0000 004b 75 <
ffff9f802a787bc0 696665420 C Ci:3:069:0 0 75 = 09024b00 02010080 32080b00 02020201 00090400 00010202 01000524 00100105
ffff9f802a786300 696665433 S Ci:3:069:0 s 80 06 0300 0000 00ff 255 <
ffff9f802a786300 696669418 C Ci:3:069:0 0 4 = 04030904
ffff9f802a786300 696669425 S Ci:3:069:0 s 80 06 0302 0409 00ff 255 <
ffff9f802a786300 696672420 C Ci:3:069:0 0 38 = 26035500 53004200 20004500 78006100 6d007000 6c006500 20004400 65007600
ffff9f802a786300 696672431 S Ci:3:069:0 s 80 06 0301 0409 00ff 255 <
ffff9f802a786300 696676418 C Ci:3:069:0 0 12 = 0c034700 47004500 54004100
ffff9f802a786300 696676426 S Ci:3:069:0 s 80 06 0303 0409 00ff 255 <
ffff9f802a786300 696680422 C Ci:3:069:0 0 14 = 0e033100 32003300 34003500 3600
ffff9f802a786300 696743567 S Co:3:069:0 s 00 09 0001 0000 0000 0
ffff9f802a786300 696744541 C Co:3:069:0 0 0
ffff9f802a786e40 696744602 S Co:3:069:0 s 21 20 0000 0000 0007 7 = 80250000 000008
ffff9f802a786e40 696748416 C Co:3:069:0 0 7 >
ffff9f802a786e40 696748604 S Ci:3:004:0 s a3 00 0000 0002 0004 4 <
ffff9f802a786e40 696748783 C Ci:3:004:0 0 4 = 03010000
ffff9f7e455f09c0 698662926 S Bo:3:005:3 -115 31 = 55534243 02090000 00000000 00000600 00000000 00000000 00000000 000000
ffff9f7e455f09c0 698662953 C Bo:3:005:3 0 31 >
ffff9f7e455f09c0 698662963 S Bi:3:005:3 -115 13 <
ffff9f7e455f09c0 698662988 C Bi:3:005:3 0 13 = 55534253 02090000 00000000 00