Skip to content

v0.6.3 backports #248

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Jul 19, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
language: rust

matrix:
allow_failures:
- rust: nightly
include:
- env: TARGET=x86_64-unknown-linux-gnu
rust: stable
Expand Down Expand Up @@ -87,6 +89,7 @@ branches:
- master
- staging
- trying
- v0.6.x

notifications:
email:
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -572,7 +572,7 @@ fn main() {
- Functions to get the vector table
- Wrappers over miscellaneous instructions like `bkpt`

[Unreleased]: https://github.com/rust-embedded/cortex-m/compare/v0.6.1...HEAD
[Unreleased]: https://github.com/rust-embedded/cortex-m/compare/v0.6.2...HEAD
[v0.6.2]: https://github.com/rust-embedded/cortex-m/compare/v0.6.1...v0.6.2
[v0.6.1]: https://github.com/rust-embedded/cortex-m/compare/v0.6.0...v0.6.1
[v0.6.0]: https://github.com/rust-embedded/cortex-m/compare/v0.5.8...v0.6.0
Expand Down
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ keywords = ["arm", "cortex-m", "register", "peripheral"]
license = "MIT OR Apache-2.0"
name = "cortex-m"
readme = "README.md"
repository = "https://github.com/japaric/cortex-m"
repository = "https://github.com/rust-embedded/cortex-m"
version = "0.6.2"
edition = "2018"
links = "cortex-m" # prevent multiple versions of this crate to be linked together
Expand All @@ -19,6 +19,7 @@ links = "cortex-m" # prevent multiple versions of this crate to be linked toget
aligned = "0.3.1"
bare-metal = { version = "0.2.0", features = ["const-fn"] }
volatile-register = "0.2.0"
bitfield = "0.13.2"

[features]
const-fn = []
Expand Down
8 changes: 8 additions & 0 deletions asm-cm7-r0p1.s
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
.cfi_sections .debug_frame

.section .text.__basepri_max_cm7_r0p1
.global __basepri_max_cm7_r0p1
.syntax unified
.thumb_func
.cfi_startproc
__basepri_max_cm7_r0p1:
mrs r1, PRIMASK
cpsid i
Expand All @@ -11,11 +14,14 @@ __basepri_max_cm7_r0p1:
bxne lr
cpsie i
bx lr
.cfi_endproc
.size __basepri_max_cm7_r0p1, . - __basepri_max_cm7_r0p1

.section .text.__basepri_w_cm7_r0p1
.global __basepri_w_cm7_r0p1
.syntax unified
.thumb_func
.cfi_startproc
__basepri_w_cm7_r0p1:
mrs r1, PRIMASK
cpsid i
Expand All @@ -25,3 +31,5 @@ __basepri_w_cm7_r0p1:
bxne lr
cpsie i
bx lr
.cfi_endproc
.size __basepri_w_cm7_r0p1, . - __basepri_w_cm7_r0p1
14 changes: 14 additions & 0 deletions asm-v7.s
Original file line number Diff line number Diff line change
@@ -1,27 +1,41 @@
.cfi_sections .debug_frame

.section .text.__basepri_max
.global __basepri_max
.thumb_func
.cfi_startproc
__basepri_max:
msr BASEPRI_MAX, r0
bx lr
.cfi_endproc
.size __basepri_max, . - __basepri_max

.section .text.__basepri_r
.global __basepri_r
.thumb_func
.cfi_startproc
__basepri_r:
mrs r0, BASEPRI
bx lr
.cfi_endproc
.size __basepri_r, . - __basepri_r

.section .text.__basepri_w
.global __basepri_w
.thumb_func
.cfi_startproc
__basepri_w:
msr BASEPRI, r0
bx lr
.cfi_endproc
.size __basepri_w, . - __basepri_w

.section .text.__faultmask
.global __faultmask
.thumb_func
.cfi_startproc
__faultmask:
mrs r0, FAULTMASK
bx lr
.cfi_endproc
.size __faultmask, . - __faultmask
15 changes: 15 additions & 0 deletions asm-v8-main.s
Original file line number Diff line number Diff line change
@@ -1,28 +1,43 @@

.cfi_sections .debug_frame

.section .text.__msplim_r
.global __msplim_r
.thumb_func
.cfi_startproc
__msplim_r:
mrs r0, MSPLIM
bx lr
.cfi_endproc
.size __msplim_r, . - __msplim_r

.section .text.__msplim_w
.global __msplim_w
.thumb_func
.cfi_startproc
__msplim_w:
msr MSPLIM, r0
bx lr
.cfi_endproc
.size __msplim_w, . - __msplim_w

.section .text.__psplim_r
.global __psplim_r
.thumb_func
.cfi_startproc
__psplim_r:
mrs r0, PSPLIM
bx lr
.cfi_endproc
.size __psplim_r, . - __psplim_r

.section .text.__psplim_w
.global __psplim_w
.thumb_func
.cfi_startproc
__psplim_w:
msr PSPLIM, r0
bx lr
.cfi_endproc
.size __psplim_w, . - __psplim_w

42 changes: 42 additions & 0 deletions asm-v8.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
.cfi_sections .debug_frame

.section .text.__tt
.global __tt
.thumb_func
.cfi_startproc
__tt:
tt r0, r0
bx lr
.cfi_endproc
.size __tt, . - __tt

.section .text.__ttt
.global __ttt
.thumb_func
.cfi_startproc
__ttt:
ttt r0, r0
bx lr
.cfi_endproc
.size __ttt, . - __ttt

.section .text.__tta
.global __tta
.thumb_func
.cfi_startproc
__tta:
tta r0, r0
bx lr
.cfi_endproc
.size __tta, . - __tta


.section .text.__ttat
.global __ttat
.thumb_func
.cfi_startproc
__ttat:
ttat r0, r0
bx lr
.cfi_endproc
.size __ttat, . - __ttat
63 changes: 63 additions & 0 deletions asm.s
Original file line number Diff line number Diff line change
@@ -1,129 +1,192 @@
.cfi_sections .debug_frame

.section .text.__bkpt
.global __bkpt
.thumb_func
.cfi_startproc
__bkpt:
bkpt
bx lr
.cfi_endproc
.size __bkpt, . - __bkpt

.section .text.__control_r
.global __control_r
.thumb_func
.cfi_startproc
__control_r:
mrs r0, CONTROL
bx lr
.cfi_endproc
.size __control_r, . - __control_r

.section .text.__control_w
.global __control_w
.thumb_func
.cfi_startproc
__control_w:
msr CONTROL, r0
bx lr
.cfi_endproc
.size __control_w, . - __control_w


.section .text.__cpsid
.global __cpsid
.thumb_func
.cfi_startproc
__cpsid:
cpsid i
bx lr
.cfi_endproc
.size __cpsid, . - __cpsid

.section .text.__cpsie
.global __cpsie
.thumb_func
.cfi_startproc
__cpsie:
cpsie i
bx lr
.cfi_endproc
.size __cpsie, . - __cpsie

.section .text.__delay
.global __delay
.syntax unified
.thumb_func
.cfi_startproc
__delay:
1:
nop
subs r0, #1
bne 1b // Branch to 1 instead of __delay does not generate R_ARM_THM_JUMP8 relocation, which breaks linking on the thumbv6m-none-eabi target
bx lr
.cfi_endproc
.size __delay, . - __delay

.section .text.__dmb
.global __dmb
.thumb_func
.cfi_startproc
__dmb:
dmb 0xF
bx lr
.cfi_endproc
.size __dmb, . - __dmb

.section .text.__dsb
.global __dsb
.thumb_func
.cfi_startproc
__dsb:
dsb 0xF
bx lr
.cfi_endproc
.size __dsb, . - __dsb

.section .text.__isb
.global __isb
.thumb_func
.cfi_startproc
__isb:
isb 0xF
bx lr
.cfi_endproc
.size __isb, . - __isb

.section .text.__msp_r
.global __msp_r
.thumb_func
.cfi_startproc
__msp_r:
mrs r0, MSP
bx lr
.cfi_endproc
.size __msp_r, . - __msp_r

.section .text.__msp_w
.global __msp_w
.thumb_func
__msp_w:
msr MSP, r0
bx lr
.size __msp_w, . - __msp_w

.section .text.__nop
.global __nop
.thumb_func
.cfi_startproc
__nop:
bx lr
.cfi_endproc
.size __nop, . - __nop

.section .text.__primask
.global __primask
.thumb_func
.cfi_startproc
__primask:
mrs r0, PRIMASK
bx lr
.cfi_endproc
.size __primask, . - __primask

.section .text.__psp_r
.global __psp_r
.thumb_func
.cfi_startproc
__psp_r:
mrs r0, PSP
bx lr
.cfi_endproc
.size __psp_r, . - __psp_r

.section .text.__psp_w
.global __psp_w
.thumb_func
__psp_w:
msr PSP, r0
bx lr
.size __psp_w, . - __psp_w

.section .text.__sev
.global __sev
.thumb_func
.cfi_startproc
__sev:
sev
bx lr
.cfi_endproc
.size __sev, . - __sev


.section .text.__udf
.global __udf
.thumb_func
.cfi_startproc
__udf:
udf
.cfi_endproc
.size __udf, . - __udf

.section .text.__wfe
.global __wfe
.thumb_func
.cfi_startproc
__wfe:
wfe
bx lr
.cfi_endproc
.size __wfe, . - __wfe


.section .text.__wfi
.global __wfi
.thumb_func
.cfi_startproc
__wfi:
wfi
bx lr
.cfi_endproc
.size __wfi, . - __wfi
Loading