Skip to content

Commit 358be5d

Browse files
bors[bot]cbifflePTaylor-ushug-devjonas-schievink
authored
Merge #249
249: More v0.6.3 backports r=jonas-schievink a=adamgreig I think this includes the remainder of the non-breaking changes since v0.6.2, with a couple of exceptions: * #240 seemed low-impact but had loads of separate commits to cherry-pick * #220 is I think non-breaking but was quite a substantial change, perhaps I could still include it ~~I did include #226 which adds a new field to `Peripherals`, but as I understand it that should be a non-breaking change since it's non-exhaustive.~~ I've updated the CHANGELOG with all the changes from this PR and the previous #248. Co-authored-by: Cliff L. Biffle <[email protected]> Co-authored-by: Peter Taylor <[email protected]> Co-authored-by: Hugues de Valon <[email protected]> Co-authored-by: Jonas Schievink <[email protected]> Co-authored-by: Adam Greig <[email protected]>
2 parents 00d16c3 + 6717d4b commit 358be5d

13 files changed

+122
-62
lines changed

CHANGELOG.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
77

88
## [Unreleased]
99

10+
## [v0.6.3] - 2020-07-20
11+
12+
### Added
13+
14+
- Initial Cortex-M Security Extension support for armv8m
15+
- `UDF` intrinsic
16+
- Methods to enable/disable exceptions in SCB
17+
18+
### Fixed
19+
20+
- Fix bug in `asm::delay` not updating status clobber flags
21+
- Swapped to `llvm_asm!` to support inline assembly on new nightlies
22+
- Our precompiled assembly routines have additional debug information
23+
- ITM `is_fifo_ready` improved to support armv8
24+
- Cache enabling moved to pre-built assembly routines to prevent possible
25+
undefined behaviour
26+
1027
## [v0.6.2] - 2020-01-12
1128

1229
### Added
@@ -572,7 +589,8 @@ fn main() {
572589
- Functions to get the vector table
573590
- Wrappers over miscellaneous instructions like `bkpt`
574591

575-
[Unreleased]: https://github.com/rust-embedded/cortex-m/compare/v0.6.2...HEAD
592+
[Unreleased]: https://github.com/rust-embedded/cortex-m/compare/v0.6.3...HEAD
593+
[v0.6.3]: https://github.com/rust-embedded/cortex-m/compare/v0.6.2...v0.6.3
576594
[v0.6.2]: https://github.com/rust-embedded/cortex-m/compare/v0.6.1...v0.6.2
577595
[v0.6.1]: https://github.com/rust-embedded/cortex-m/compare/v0.6.0...v0.6.1
578596
[v0.6.0]: https://github.com/rust-embedded/cortex-m/compare/v0.5.8...v0.6.0

asm-v7.s

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
.syntax unified
12
.cfi_sections .debug_frame
23

34
.section .text.__basepri_max
@@ -39,3 +40,39 @@ __faultmask:
3940
bx lr
4041
.cfi_endproc
4142
.size __faultmask, . - __faultmask
43+
44+
.section .text.__enable_icache
45+
.global __enable_icache
46+
.thumb_func
47+
.cfi_startproc
48+
__enable_icache:
49+
ldr r0, =0xE000ED14 @ CCR
50+
mrs r2, PRIMASK @ save critical nesting info
51+
cpsid i @ mask interrupts
52+
ldr r1, [r0] @ read CCR
53+
orr.w r1, r1, #(1 << 17) @ Set bit 17, IC
54+
str r1, [r0] @ write it back
55+
dsb @ ensure store completes
56+
isb @ synchronize pipeline
57+
msr PRIMASK, r2 @ unnest critical section
58+
bx lr
59+
.cfi_endproc
60+
.size __enable_icache, . - __enable_icache
61+
62+
.section .text.__enable_dcache
63+
.global __enable_dcache
64+
.thumb_func
65+
.cfi_startproc
66+
__enable_dcache:
67+
ldr r0, =0xE000ED14 @ CCR
68+
mrs r2, PRIMASK @ save critical nesting info
69+
cpsid i @ mask interrupts
70+
ldr r1, [r0] @ read CCR
71+
orr.w r1, r1, #(1 << 16) @ Set bit 16, DC
72+
str r1, [r0] @ write it back
73+
dsb @ ensure store completes
74+
isb @ synchronize pipeline
75+
msr PRIMASK, r2 @ unnest critical section
76+
bx lr
77+
.cfi_endproc
78+
.size __enable_dcache, . - __enable_dcache

bin/thumbv6m-none-eabi.a

16 Bytes
Binary file not shown.

bin/thumbv7em-none-eabi.a

688 Bytes
Binary file not shown.

bin/thumbv7em-none-eabihf.a

688 Bytes
Binary file not shown.

bin/thumbv7m-none-eabi.a

680 Bytes
Binary file not shown.

bin/thumbv8m.base-none-eabi.a

32 Bytes
Binary file not shown.

bin/thumbv8m.main-none-eabi.a

712 Bytes
Binary file not shown.

bin/thumbv8m.main-none-eabihf.a

712 Bytes
Binary file not shown.

build.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ fn main() {
66
let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
77
let name = env::var("CARGO_PKG_NAME").unwrap();
88

9-
if target.starts_with("thumb") && env::var_os("CARGO_FEATURE_INLINE_ASM").is_none() {
9+
if target.starts_with("thumb") {
1010
fs::copy(
1111
format!("bin/{}.a", target),
1212
out_dir.join(format!("lib{}.a", name)),

0 commit comments

Comments
 (0)