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==