1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

26 Commits

Author SHA1 Message Date
Benjamin Valentin
9f4920329b cpu/lpc2387: clear BODR if POR is set
From the data sheet:

> **Note:** Only in case when a reset occurs and the POR = 0, the BODR bit
indicates if the V DD(DCDC)(3V3) voltage was below 2.6 V or not.

So the value of BODR is undefined if POR is set.
Clear it to bring it to a defined state.
2020-02-10 23:04:47 +01:00
Benjamin Valentin
76e19602a2 cpu/lpc2387: rename cpu_woke_from_backup()
The function would always return `true` after early boot, so it
is not very useful for applications.

Now it will only (but always) return true when we woke from Deep Sleep
*after* early boot. This makes it behave the same ways as the function
of the same name on SAME54.

Rename the existing function to cpu_backup_ram_is_initialized() to better
match it's semantics.
2020-02-10 23:04:47 +01:00
Benjamin Valentin
80dde82c86 cpu/lpc2387: clear POR bit if we woke from Deep Sleep
RSIR is 0x1 (POR) if we woke from Deep Sleep.
This makes it hard to distinguish between real power-on and waking from
Deep Sleep, which is why the Backup RAM signature was introduced.

However, calling cpu_woke_from_backup() a second time will always return
true, as the signature will have been set up by early boot then.

Thus, clear the POR bit if the signature was already in place.
The result is:

	RSIR == 0 -> woke from sleep
	RSIR == 1 -> cold boot
2020-02-10 23:04:46 +01:00
Benjamin Valentin
32bbba2fc5 cpu/lpc2387: add support for backup RAM
lpc23xx has 2k of battery RAM that is retained in Deep Power Down mode.

To not overwrite that data it must only be initialized on Power On Reset.
However, RSIR looks the same when waking up from Deep Power Down as it does
on the power-on case.

So use 4 bytes of the backup RAM to keep a signature that is only valid if
memory was retained (no power-on Reset).

A small change to the linker script is required so two sections can be
placed into flash.
2019-11-28 11:33:03 +01:00
Benjamin Valentin
e3b0874305 cpu/lpc2387: clean up the platform
- move clock setup from boards/ to cpu/
 - reduce code duplication
2019-09-16 13:08:56 +02:00
Marian Buschsieweke
18ae7652a9
cpu/lpc2387: Fixed doc and attribute of arm_reset
- arm_reset was completely undocumented, even though technical details buried
  deeply in the data sheet of the LPC2387 are involved in the code
- The attribute "naked" is misplaced, it should only be used when no C code
  is present. However, the function consists of C code only
- The attribute "noreturn" has to be used in the declaration [1] of a function,
  not in the implementation. Otherwise the caller is not informed and code using
  the function will not be optimized.

[1]: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
2018-08-14 10:40:09 +02:00
938677cc83 cpu*: fix doxygen grouping 2018-06-11 19:12:02 +02:00
7847a91e12 cpu: instead of cpp-style, use C-style comments 2018-02-06 16:59:58 +01:00
DipSwitch
0bb4748a94 core: Fix/refactor function naming in core/incude/irq.h 2016-03-20 16:47:34 +01:00
Joakim Nohlgård
6a52296a35 cpu/lpc2387: Use {} notation for empty while loops 2016-03-03 16:30:06 +01:00
Oleg Hahm
17929a5ce4 cpu: lpc2387: integrated lpc_common into lpc2387
Rationale 1: The common part made only sense for (some) NXP ARM7 MCUs,
but was misleading for MCUs like the LPC1768.

Rationale 2: The common part was only used by one specific MCU
implementation - no need to outsource it.
2014-12-02 17:47:10 +01:00
René Kijewski
0cc699c0ce lint: reduce scope
Fix some lint warnings of kind
```
style (variableScope): The scope of the variable '…' can be reduced
```
2014-09-12 11:50:12 +02:00
Ludwig Ortmann
2439bd839c doc: fix more license headers
Remove some cruft, set correct lgpl versions, update to lgpl where
this had been overlooked in the past, fix odd comment style...
2014-08-27 19:20:49 +02:00
Ludwig Ortmann
d55da67fb6 Merge pull request #1329 from LudwigOrtmann/riot_license
RIOT default license header change
2014-07-31 23:12:47 +02:00
Ludwig Ortmann
c40b281873 doc: use lgplv2.1-short license header instead of lgplv2-short-v3 2014-07-31 22:57:20 +02:00
Cenk Gündoğan
3989945679 converting tabs to spaces in cpu (#1439)
This PR converts tabs to white spaces.
The statement I used for the conversion:
```find . -name "*.[ch]" -exec zsh -c 'expand -t 4 "$0" > /tmp/e && mv /tmp/e "$0"' {} \;```
Afterwards, I had a quick overview of the converted files to prevent odd indentation.
2014-07-31 20:46:28 +02:00
Oleg Hahm
9817043ada Merge pull request #375 from LudwigOrtmann/license_header_fix
fix grammar in license header
2013-11-26 10:55:41 -08:00
Ludwig Ortmann
926c1d3da0 GNU Lesser General Public License -> LGPLv2 2013-11-23 13:43:47 +01:00
Ludwig Ortmann
d6c213fb47 fix grammar in license header 2013-11-23 13:11:56 +01:00
Oleg Hahm
1f50d91332 making the pedantic gcc happy 2013-11-23 03:45:26 +01:00
Oliver Hahm
c8bee9e554 fixed coding style (space after most keywords) 2013-06-24 22:37:35 +02:00
Oliver Hahm
5d70656343 fixed coding conventions (mostly by astyle) 2013-06-21 03:52:57 +02:00
Oliver Hahm
0d6d8390c0 * updated copyright and license headers in various files 2013-06-18 17:21:38 +02:00
Oleg Hahm
2277b366b2 * removed outdated occurrences of (u|µ)kleos and FeuerWare 2013-03-07 20:51:26 +01:00
Oliver Hahm
918a31cf8c [core hwtimer] [cpu arm]
* adapted core and arm cpu
2012-03-08 18:58:39 +01:00
91ae1eb6fd * import from old firekernel repository 2010-09-22 15:10:42 +02:00