Re: NutExitCritical() behaviour on ARM Cortex-M

DuĊĦan <[email protected]> Fri, 6 Dec 2019 13:20:32 +0100
Newsgroups gmane.comp.hardware.microcontrollers.ethernut
Message-ID <[email protected]>
SGkgUGhpbGlwcCwKCndoZW4gSSB3cm90ZSBhYm91dCAiZHJpdmVyIiBjb2RlLApJIG1lYW50IGV2
ZXJ5dGhpbmcsIHdoaWNoIHdvcmtzIHdpdGggYSBsb3cgbGV2ZWwsIHBlcmlwaGVyYWwgcGFydCBv
ZiAKeW91ciBhcHBsaWNhdGlvbi4KCkMgY29tcGlsZXIgbW9zdGx5IHVzZXMgcjAgdG8gcGFzcyBy
ZXR1cm4gdmFsdWUgdG8gYSBjYWxsaW5nIGNvZGUuCk9uIGF2ciBpdCBpcyByMCwgcjEgZm9yIGlu
dCBhcyBpbnQgaXMgMTYgYml0IHRoZXJlLiBPbiAzMiBiaXQgY3B1cywgSSAKdGhpbmsgaXQgaXMg
dGhlIHIwLgpZb3UgY2FuIGNoZWNrIGFzc2VtYmxlciBsaXN0aW5ncywgaG93IGl0IGlzIGNvbXBp
bGVkLgpFLmcuIGluIExpbnV4IGtlcm5lbCBvciBVLUJvb3QsIHlvdSBjYW4gaW5zZXJ0IGluIGEg
bWFrZWZpbGUgY2ZsYWdzLXkgKz0gCi1XYSwtYWhsbXM9JChAOi5vPS5sc3QpCnRvIGdlbmVyYXRl
IGxpc3RpbmdzLCB0byBzZWUgaG93IGNvbXBpbGVyIGNvbXBpbGVzIHRvIGluc3RydWN0aW9ucy4K
ClNvIHIwIHdhcyBwcm9iYWJseSBpbnRlbmRlZCB0byBkZWZpbmUgc29tZXRoaW5nIGxpa2UgaW50
IApOdXRFbnRlckNyaXRpY2FsKHZvaWQpLAppLmUuIGEgZnVuY3Rpb24sIHdoaWNoIHJldHVybnMg
YSB2YWx1ZSBvZiBpbnRlcnJ1cHQgcHJpb3JpdHkgbWFzaywKd2hpY2ggaXMgbW9kaWZpZWQgd2l0
aCBjcHNpZCwgY3BzaWUgaW5zdHJ1Y3Rpb25zLgpBcyBwZXIgCmh0dHA6Ly9pbmZvY2VudGVyLmFy
bS5jb20vaGVscC9pbmRleC5qc3A/dG9waWM9L2NvbS5hcm0uZG9jLmRhaTAzMjFhL0JJSEJGRUlC
Lmh0bWwsCmh0dHA6Ly9pbmZvY2VudGVyLmFybS5jb20vaGVscC9pbmRleC5qc3A/dG9waWM9L2Nv
bS5hcm0uZG9jLmR1aTA1NTJhL0NIREJJQkdKLmh0bWwKdGhpcyBzaG91bGQgcmV0dXJuIDEgZm9y
IGRpc2FibGVkIGludHMgYW5kIDAgZm9yIGVuYWJsZWQgaW50cy4KCi0tLQpJIHN1Z2dlc3QgdG8g
cmVkZWZpbmUgTnV0RW50ZXJDcml0aWNhbCB0byBiZWNvbWUgYW4gaW5saW5lIGZ1bmN0aW9uLgpU
aGlzIGFsbG93cyB0byBzdGF5IHdpdGggaXRzIGRlZmluaXRpb24gaW4gYSBoZWFkZXIuCkl0IHdp
bGwgYmUgbmljZSB0byBhbGxvdyBjb21waWxlciB0byBjaGVjayBhcmd1bWVudHMgdHlwZSBmb3Ig
Y2FzZSwgd2hlbiAKd2Ugd2lsbCBhZGQgYW4gYXJndW1lbnQuCgpJIHRoaW5rIHdlIGNhbiBzdGF5
IHdpdGggY3VycmVudCBjbTMgY29kZSBhdCBmaXJzdCB3aXRoIHByaW1hc2ssCmxhdGVyIHdlIGNh
biByZW1vdmUgdGhlIChJIHRoaW5rKSB1bm5lZWRlZCBtcnMgcjAsUFJJTUFTSy4KRm9yIGxldmVs
cywgd2UgbmVlZCB0byBvcGVyYXRlIHdpdGggYmFzZW1hc2suCmh0dHBzOi8vZ2l0aHViLmNvbS9q
YW1lc3dhbG1zbGV5L0ZyZWVSVE9TL2Jsb2IvYTcxNTJhOTY5YjJiNDlmY2U1MGQ3NTliMzk3MmYx
N2JmM2IxOGVkNy9GcmVlUlRPUy9Tb3VyY2UvcG9ydGFibGUvR0NDL0FSTV9DTTRGL3BvcnRtYWNy
by5oCgpodHRwOi8vaW5mb2NlbnRlci5hcm0uY29tL2hlbHAvaW5kZXguanNwP3RvcGljPS9jb20u
YXJtLmRvYy5kdWkwNTUyYS9DSERCSUJHSi5odG1sLCAKbGluayB0byBQUklNQVNLIHJlZ2lzdGVy
IGV4cGxhbmF0aW9uCmh0dHA6Ly9pbmZvY2VudGVyLmFybS5jb20vaGVscC9pbmRleC5qc3A/dG9w
aWM9L2NvbS5hcm0uZG9jLmRhaTAzMjFhL0JJSEJGRUlCLmh0bWwKClNvbWV0aGluZyBsaWtlIGJl
bG93LgpJIGRvIG5vdCBrbm93IGlmIHdlIG5lZWQgdG8ga25vdyBhIHByaW8gbWFzayBsZXZlbCB3
aGVuIHdlIHJldHVybiBmcm9tIApwcm90ZWN0ZWQgcGFydC4KSW4gdGhpcyBjYXNlLCB3ZSBjYW4g
cmVkZWZpbmUgTnV0RXhpdFByb3RlY3RlZExldmVsIG5vdCB0byByZWFkIGJhc2VwcmkgCmFuZCBy
ZXR1cm4gYSB2YWx1ZS4KCkkgb25seSB3cm90ZSB0aGUgY29kZSwgSSBkaWQgbm90IGNvbXBpbGUg
aXQsCnNvIEkgYXBvbG9naXplIGlmIHRoZXJlIGlzIGEgbWlzdGFrZS4KClVzYWdlCiDCoMKgwqAg
TnV0VXNlUHJvdGVjdGVkKCk7CgpOdXRFbnRlclByb3RlY3RlZChQUklPX01BU0tfTEVWRUxfVUFS
VCk7Ci4uLgpOdXRFeGl0UHJvdGVjdGVkKCk7CgpEZWZpbml0aW9uCgpzdGF0aWMgaW5saW5lIHZv
aWQgTnV0RW50ZXJDcml0aWNhbCh2b2lkKSB7CiDCoMKgwqAgYXNtIHZvbGF0aWxlICgKIMKgwqDC
oMKgwqDCoMKgICJAIE51dEVudGVyQ3JpdGljYWwiwqDCoMKgICJcblx0IiBcCiDCoMKgwqDCoMKg
wqDCoCAibXJzwqDCoMKgwqAgcjAsIFBSSU1BU0siwqDCoCAiXG5cdCIgXAogwqDCoMKgwqDCoMKg
wqAgImNwc2lkwqDCoCBpIsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXG5cdCIgXAogwqDCoMKg
wqDCoMKgwqAgOjo6InIwIiBcCiDCoMKgwqAgKTsKfQoKc3RhdGljIGlubGluZSBOdXRFeGl0Q3Jp
dGljYWwodm9pZCkgewogwqDCoMKgIGFzbSB2b2xhdGlsZSAoCiDCoMKgwqDCoMKgwqDCoCAiQCBO
dXRFeGl0Q3JpdGljYWwiwqDCoMKgwqAgIlxuXHQiIFwKIMKgwqDCoMKgwqDCoMKgICJtcnPCoMKg
wqDCoCByMCwgUFJJTUFTSyLCoMKgICJcblx0IiBcCiDCoMKgwqDCoMKgwqDCoCAiY3BzaWXCoMKg
IGkiwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJcblx0IiBcCiDCoMKgwqDCoMKgwqDCoCAiaXNi
IsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXG5cdCIgXAogwqDCoMKgwqDC
oMKgwqAgImRzYiLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlxuXHQiIFwK
IMKgwqDCoMKgwqDCoMKgIDo6OiJyMCIgXAogwqDCoMKgICk7Cn0KCnN0YXRpYyBpbmxpbmUgdWlu
dDMyX3QgTnV0RW50ZXJQcm90ZWN0ZWRMZXZlbCh1aW50MzJfdCAKcmVxdWVzdGVkX3ByaW9fbWFz
aykgewogwqDCoMKgIHVpbnQzMl90IHByZXZfcHJpb19tYXNrLCBuZXdfcHJpb19tYXNrOwogwqDC
oMKgIGFzbSB2b2xhdGlsZSAoCiDCoMKgwqDCoMKgwqDCoCAiQCBOdXRFbnRlckNyaXRpY2FsIsKg
wqDCoCAiXG5cdCIgXAogwqDCoMKgwqDCoMKgwqAgIm1yc8KgwqDCoMKgICUwLCBiYXNlcHJpIsKg
wqAgIlxuXHQiIFwKIMKgwqDCoMKgwqDCoMKgICJtb3bCoMKgwqDCoCAlMSwgJTIiwqDCoMKgwqDC
oMKgwqAgIlxuXHQiIFwKIMKgwqDCoMKgwqDCoMKgICJtc3LCoMKgwqDCoCBiYXNlcHJpLCUxIsKg
wqDCoCAiXG5cdCIgXAogwqDCoMKgwqDCoMKgwqAgImlzYiLCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgIlxuXHQiIFwKIMKgwqDCoMKgwqDCoMKgICJkc2IiwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJcblx0IiBcCiDCoMKgwqDCoMKgwqDCoCA6Ij1yIiAo
cHJldl9wcmlvX21hc2spLCAiPXIiIChuZXdfcHJpb19tYXNrKTogInJtIiAKKHJlcXVlc3RlZF9w
cmlvX21hc2spIFwKIMKgwqDCoCApOwogwqDCoMKgIHJldHVybiBwcmV2X3ByaW9fbWFzazsKfQoK
I2RlZmluZSBOdXRFeGl0UHJvdGVjdGVkTGV2ZWwobWFzaykgKHZvaWQpTnV0RW50ZXJQcm90ZWN0
ZWRMZXZlbChtYXNrKQoKI2RlZmluZSBOdXRVc2VQcm90ZWN0ZWQoKSBcCiDCoMKgwqAgdWludDMy
X3QgcmVnaXN0ZXIgX3NhdmVkX3ByaW9fbWFzazsKCiNkZWZpbmUgTnV0RW50ZXJQcm90ZWN0ZWQo
bWFzaykgXAogwqDCoMKgIF9zYXZlZF9wcmlvX21hc2sgPSBOdXRFbnRlclByb3RlY3RlZExldmVs
KG1hc2spCgojZGVmaW5lIE51dEV4aXRQcm90ZWN0ZWQoKSBcCiDCoMKgwqAgTnV0RXhpdFByb3Rl
Y3RlZExldmVsKF9zYXZlZF9wcmlvX21hc2spCgoKKkR1xaFhbioKCk9uIDUuMTIuMjAxOSAxOTo1
NCwgUGhpbGlwcCBCdXJjaCB3cm90ZToKPiBIaSBVd2UsIGhpIER1xaFhbiEKPgo+IE9uIDA1LjEy
LjE5IDEwOjQ2LCBib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGUgd3JvdGU6
Cj4+IFBoaWxpcHAgQnVyY2ggd3JpdGVzOgo+Pj4gSGkgZXZlcnlvbmUsCj4+IC4uLgo+Pj4gQW0g
SSBqdXN0IG1pc3Npbmcgc29tZXRoaW5nIGluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uPwo+
Pj4KPj4gSGkgUGhpbGlwcCwKPj4KPj4gcHJvYmFibHkgeW91IGRvIG5vdCBtaXNzIHNvbWV0aGlu
Zy4gVGhlcmUgaGFzIGJlZW4gc29tZSBkaXNjdXNzaW9uCj4+IGFib3V0IHRoYXQgc3ViamVjdCBm
cm9tIHRpbWUgdG8gdGltZS4gVGhlcmUgd2FzIG5vIGNvbmNsdXNpdmUKPj4gc29sdXRpb24uCj4g
SXQgaXMgbW9zdGx5IHRoYXQgcGxhY2luZyBvZiBQUklNQVNLIGludG8gcjAgZnJvbSAqYm90aCog
bWFjcm9zIHRoYXQgSQo+IGRvbid0IHVuZGVyc3RhbmQuIFdoYXQgaXMgdGhlIHBvaW50IG9mIHBs
YWNpbmcgc29tZSByZWFkIGRhdGEgaW4gYQo+IHJlZ2lzdGVyIHRoYXQgaXMgbm90IHVzZWQgYWZ0
ZXJ3YXJkcz8KPgo+PiBIb3cgZG8gb3RoZXIgT1NlcyAoUlRPUywgbWJlZCwgZXRjKSBoYW5kbGUg
dGhhdCBzaXR1YXRpb24/Cj4+Cj4+IFdoYXQgaXMgdGhlIHVzZSBjYXNlLgo+ICBGcm9tIG15IHVu
ZGVyc3RhbmRpbmcsIHRoZSBpZGVhIG9mIGEgY3JpdGljYWwgc2VjdGlvbiBpcyB0aGF0IGl0IGNh
biBiZQo+IG5lc3RlZCBzYWZlbHksIGVzcGVjaWFsbHkgd2hlbiB1c2VkIGluc2lkZSBnZW5lcmlj
IGNvZGUgKGJlIGl0IGZvcgo+IGRpc2FibGluZyBhIHNpbmdsZSBpbnRlcnJ1cHQgb3IgYWxsIGlu
dGVycnVwdHMpLiBUaGlzIGlzIGFsc28gd2hhdCB0aGUKPiBjb21tZW50IGluIHN5cy9hdG9tLmgg
c2F5czoKPgo+ICAgKiBOdXRFeGl0Q3JpdGljYWwoKQo+ICAgKiBGaW5hbGl6ZSBhIGNyaXRpY2Fs
IHNlY3Rpb24uIE11c3QgYmUgdXNlZCBvbmx5IGF0IHRoZSBlbmQgb2YgYQo+IGNyaXRpY2FsIHNl
Y3Rpb24KPiAgICogdG8gcmVzdG9yZSB0aGUgZ2xvYmFsIGludGVycnVwdCBmbGFnIHRvIHRoZSBz
dGF0ZSBzYXZlZCBieQo+IE51dEVudGVyQ3JpdGljYWwoKQo+Cj4gTXkgdXNlIGNhc2UgbGVhZGlu
ZyBtZSB0byBkaWdnaW5nIGludG8gdGhpcyB3YXMgdGhhdCBJIGhhdmUgc29tZSBjb2RlCj4gdGhh
dCBhY2Nlc3NlcyBoYXJkd2FyZSByZXNvdXJjZXMgd2hpY2ggc2hvdWxkIGJlIHVzYWJsZSBib3Ro
IGZyb20KPiBpbnRlcnJ1cHQgY29udGV4dCBhcyB3ZWxsIGFzIGZyb20gdGhyZWFkIGNvbnRleHQu
IFRoZSBjdXJyZW50Cj4gaW1wbGVtZW50YXRpb24gc2hvdWxkIG5vdCBjYXVzZSBhIHByb2JsZW0g
aW4gbXkgY2FzZSwgYnV0IEkgZ290IGNvbmZ1c2VkCj4gYnkgdGhlIGNvZGUgYW5kIHRoZSBjb21t
ZW50Lgo+Cj4+IFNvbWUgZGlzY3Vzc2lvbiBhbHNvIHJldm9sdmVkIGFyb3VuZCBzdGFja2luZyBj
cml0aWNhbCBzZWN0aW9uLiBJIHdhcwo+PiBub3QgY29udmluY2VkIHRoYXQgc3VjaCBzdGFja2lu
ZyBpcyByZWFsbHkgbmVlZGVkLgo+IEkgYWdyZWUgdGhhdCBuZXN0aW5nIGNyaXRpY2FsIHNlY3Rp
b25zIChvciBjYWxsaW5nIGZ1bmN0aW9ucyBmcm9tIGEKPiBjcml0aWNhbCBzZWN0aW9uIGluIGdl
bmVyYWwpIG1heSBub3QgYmUgYSB2ZXJ5IGdvb2QgaWRlYSBpbiB0aGUgZmlyc3QKPiBwbGFjZS4g
QnV0IHNvbWV0aW1lcyBpdCBtYXkgbGVhZCB0byBzb21ld2hhdCBjbGVhbmVyIGNvZGUgKHdoZW4g
YnVpbGRpbmcKPiBhbiBBUEkgdG8gYWNjZXNzIHNoYXJlZCByZXNvdXJjZXMgd2hpbGUgb2ZmZXJp
bmcgZGlmZmVyZW50IGxldmVscyBvZgo+IGFic3RyYWN0aW9uIGZvciBleGFtcGxlKS4gQ29tYmlu
ZWQgd2l0aCB0aGUgY29tbWVudCB0aGF0IGFjdHVhbGx5IHNheXMKPiBzb21ldGhpbmcgZWxzZSB0
aGFuIHdoYXQgdGhlIGNvZGUgZG9lcywgdGhpcyBjb3VsZCBpbmRlZWQgbGVhZCB0byBzdWJ0bGUK
PiBhbmQgaGFyZC10by1kZWJ1ZyBidWdzIGluIHRoZSBjb2RlLgo+Cj4gSSBhbHNvIGFncmVlIHRo
YXQgY2hhbmdpbmcgdGhlIGJlaGF2aW91ciBvZiBzdWNoIGEgbG93LWxldmVsIGZ1bmN0aW9uCj4g
bWF5IGNhdXNlIGNvbGxhdGVyYWwgZGFtYWdlLiBTbyBpdCBpcyBjZXJ0YWlubHkgc2Vuc2libGUg
dG8gYWRkIGEgbmV3Cj4gQVBJIGluc3RlYWQgb2YgdXBkYXRpbmcgdGhlIHByZXNlbnQgb25lOyBi
dXQgdGhlIGNvbW1lbnQgc2hvdWxkIGJlIGZpeGVkCj4gdG8gYXZvaWQgYmVpbmcgbWlzbGVhZGlu
Zy4KPgo+IEEgbmV3IGludGVyZmFjZSBjb3VsZCBiZSBuYW1lZCBzb21ldGhpbmcgbGlrZQo+IE51
dEVudGVyQ3JpdGljYWxTZWN0aW9uTmVzdGFibGUoKS4gSW4gbXkgb3BpbmlvbiwgaXQgc2hvdWxk
IHJldHVybiBhbgo+IHVuc2lnbmVkIGludCBjb250YWluaW5nIHRoZSBwcmV2aW91cyBzdGF0ZSBv
ZiB0aGUgaW50ZXJydXB0IGVuYWJsZS4gVGhpcwo+IGNvdWxkIHRoZW4gcGFzc2VkIHRvIE51dEV4
aXRDcml0aWNhbFNlY3Rpb25OZXN0YWJsZSgpIHRvIHJlc3RvcmUgdGhlCj4gc3RhdGUuIEEgdHlw
aWNhbCB1c2UgY2FzZSB3b3VsZCB0aGVuIGxvb2sgbGlrZSB0aGlzOgo+Cj4gdW5zaWduZWQgaW50
IGllc3RhdGUgPSBOdXRFbnRlckNyaXRpY2FsU2VjdGlvbk5lc3RhYmxlKCk7Cj4gLyogUGVyZm9y
bSBzaGFyZWQgcmVzb3VyY2UgYWNjZXNzLiAqLwo+IE51dEV4aXRDcml0aWNhbFNlY3Rpb25OZXN0
YWJsZShpZXN0YXRlKTsKPgo+IERTQigpIGFuZCBJU0IoKSBjb3VsZCBhbHNvIGJlIGludGVncmF0
ZWQgZm9yIEFSTSBjb2RlLiBXaGF0IGRvIHlvdSB0aGluaz8KPgo+IFRoZSBGcmVlUlRPUyB3YXkg
d2l0aCB0aGUgZ2xvYmFsIG5lc3RpbmcgY291bnRlciB3b3VsZCBiZSBhbm90aGVyIG9wdGlvbgo+
IHdpdGhvdXQgdGhlIG5lZWQgdG8gc3VwcGx5IGEgbG9jYWwgdmFyaWFibGUuIEJ1dCBwZXJzb25h
bGx5LCBJJ2QgcHJlZmVyCj4gdGhlIGV4cGxpY2l0IHZlcnNpb24gb3ZlciBpbnRlZ3JhdGVkIGds
b2JhbCBzdGF0ZS4uLgo+Cj4+IEkgdGhpbmsgdGhlIGZpcnN0IGluc3RydWN0aW9uIG9ubHkgcmVh
ZHMgY3VycmVudCBwcmlvcml0eSBtYXNrIHRvIHRoZSBmdW5jdGlvbiByZXR1cm4gY29kZSByZWdp
c3Rlci4KPj4gVGhlbiBhbGwgaW50cyBhcmUgZ2xvYmFsbHkgZGlzYWJsZWQuCj4gQ29ycmVjdCBt
ZSBpZiBJJ20gd3JvbmcsIGJ1dCB3aXRoIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBpc24n
dCB0aGUKPiB2YWx1ZSBzdG9yZWQgaW4gcjAgbG9zdCBhbnl3YXk/IHIwIG1heSBiZSB0aGUgZnVu
Y3Rpb24gcmV0dXJuIHZhbHVlCj4gcmVnaXN0ZXIsIGJ1dCB0aGUgY29kZSBpcyBpbXBsZW1lbnRl
ZCBhcyBhIG1hY3JvLCBzbyB0aGUgdXNpbmcgQyBjb2RlCj4gY2FuJ3QgcmVhbGx5IGFjY2VzcyB0
aGUgc3RvcmVkIHZhbHVlLiBPciBjYW4gaXQ/IEknbSBub3QgdG9vIGZhbWlsaWFyCj4gd2l0aCBp
bmxpbmUgYXNzZW1ibHkuLi4KPgo+IEJlc3QgcmVnYXJkcywKPiBQaGlsaXBwCj4gX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBodHRwOi8vbGlzdHMuZWdu
aXRlLmRlL21haWxtYW4vbGlzdGluZm8vZW4tbnV0LWRpc2N1c3Npb24KX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaHR0cDovL2xpc3RzLmVnbml0ZS5kZS9t
YWlsbWFuL2xpc3RpbmZvL2VuLW51dC1kaXNjdXNzaW9uCg==