File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
2727- Use CSR helper macros to define ` mip ` register
2828- Use CSR helper macros to define ` mstatus ` register
2929- Use CSR helper macros to define ` mstatush ` register
30+ - Use CSR helper macros to define ` mtvec ` register
3031
3132## [ v0.12.1] - 2024-10-20
3233
Original file line number Diff line number Diff line change @@ -42,3 +42,23 @@ impl Mtvec {
4242 self . bits = ( address & !TRAP_MASK ) | ( self . bits & TRAP_MASK ) ;
4343 }
4444}
45+
46+ #[ cfg( test) ]
47+ mod tests {
48+ use super :: * ;
49+
50+ #[ test]
51+ fn test_mtvec ( ) {
52+ let mut m = Mtvec :: from_bits ( 0 ) ;
53+
54+ ( 1 ..=usize:: BITS )
55+ . map ( |r| ( ( ( 1u128 << r) - 1 ) as usize ) )
56+ . for_each ( |address| {
57+ m. set_address ( address) ;
58+ assert_eq ! ( m. address( ) , address & !TRAP_MASK ) ;
59+ } ) ;
60+
61+ test_csr_field ! ( m, trap_mode: TrapMode :: Direct ) ;
62+ test_csr_field ! ( m, trap_mode: TrapMode :: Vectored ) ;
63+ }
64+ }
You can’t perform that action at this time.
0 commit comments