Skip to content

Commit 0bdb331

Browse files
committed
applied patches
Signed-off-by: Adrian Lungu <lunguadrian30@gmail.com>
1 parent b550ecb commit 0bdb331

3 files changed

Lines changed: 16 additions & 22 deletions

File tree

tockloader-lib/src/command_impl/probers/io.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ impl IOCommands for ProbeRSConnection {
4545
if !self.is_open() {
4646
return Err(InternalError::ConnectionNotOpen.into());
4747
}
48-
let settings = self.get_settings();
48+
let start_address = self.get_settings().start_address;
4949
let session = self.session.as_mut().expect("Board must be open");
5050
let mut core = session.core(self.target_info.core)?;
5151

52-
AppAttributes::read_apps_data_probe(&mut core, settings.start_address)
52+
AppAttributes::read_apps_data_probe(&mut core, start_address)
5353
}
5454

5555
async fn read_system_attributes(&mut self) -> Result<SystemAttributes, TockloaderError> {

tockloader-lib/src/command_impl/serial/io.rs

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,20 @@ impl IO for SerialConnection {
3434
}
3535

3636
async fn write(&mut self, address: u64, pkt: &[u8]) -> Result<(), TockloaderError> {
37-
let settings = self.get_settings();
37+
let page_size = self.get_settings().page_size as usize;
3838
let stream = self.stream.as_mut().expect("Board must be open");
3939
let mut binary = pkt.to_vec();
4040

41-
if !binary.len().is_multiple_of(settings.page_size as usize) {
42-
binary.extend(vec![
43-
0u8;
44-
settings.page_size as usize
45-
- (binary.len() % settings.page_size as usize)
46-
]);
41+
if !binary.len().is_multiple_of(page_size) {
42+
binary.extend(vec![0u8; page_size - (binary.len() % page_size)]);
4743
}
4844

49-
for page_number in 0..(binary.len() / settings.page_size as usize) {
50-
let mut pkt = (address as u32 + page_number as u32 * settings.page_size as u32)
45+
for page_number in 0..(binary.len() / page_size) {
46+
let mut pkt = (address as u32 + page_number as u32 * page_size as u32)
5147
.to_le_bytes()
5248
.to_vec();
5349
pkt.append(
54-
&mut binary[(page_number * settings.page_size as usize)
55-
..((page_number + 1) * settings.page_size as usize)]
56-
.to_vec(),
50+
&mut binary[(page_number * page_size)..((page_number + 1) * page_size)].to_vec(),
5751
);
5852
let _ = issue_command(stream, Command::WritePage, pkt, true, 0, Response::OK).await?;
5953
}
@@ -73,12 +67,12 @@ impl IOCommands for SerialConnection {
7367
if !self.is_open() {
7468
return Err(InternalError::ConnectionNotOpen.into());
7569
}
76-
let settings = self.get_settings();
70+
let start_address = self.get_settings().start_address;
7771
let stream = self.stream.as_mut().expect("Board must be open");
7872

7973
ping_bootloader_and_wait_for_response(stream).await?;
8074

81-
AppAttributes::read_apps_data_serial(stream, settings.start_address).await
75+
AppAttributes::read_apps_data_serial(stream, start_address).await
8276
}
8377

8478
async fn read_system_attributes(&mut self) -> Result<SystemAttributes, TockloaderError> {

tockloader-lib/src/connection.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ pub trait Connection {
5252
/// `open` or any other method is undefined behavior.
5353
async fn close(&mut self) -> Result<(), TockloaderError>;
5454
fn is_open(&self) -> bool;
55-
fn get_settings(&self) -> BoardSettings;
55+
fn get_settings(&self) -> &BoardSettings;
5656
}
5757

5858
pub struct ProbeRSConnection {
@@ -102,8 +102,8 @@ impl Connection for ProbeRSConnection {
102102
self.session.is_some()
103103
}
104104

105-
fn get_settings(&self) -> BoardSettings {
106-
self.settings.clone()
105+
fn get_settings(&self) -> &BoardSettings {
106+
&self.settings
107107
}
108108
}
109109

@@ -165,8 +165,8 @@ impl Connection for SerialConnection {
165165
self.stream.is_some()
166166
}
167167

168-
fn get_settings(&self) -> BoardSettings {
169-
self.settings.clone()
168+
fn get_settings(&self) -> &BoardSettings {
169+
&self.settings
170170
}
171171
}
172172

@@ -213,7 +213,7 @@ impl Connection for TockloaderConnection {
213213
}
214214
}
215215

216-
fn get_settings(&self) -> BoardSettings {
216+
fn get_settings(&self) -> &BoardSettings {
217217
match self {
218218
TockloaderConnection::ProbeRS(conn) => conn.get_settings(),
219219
TockloaderConnection::Serial(conn) => conn.get_settings(),

0 commit comments

Comments
 (0)