Skip to content

Conversation

@yossi2le
Copy link
Owner

Notes:

  • Pull requests will not be accepted until the submitter has agreed to the contributer agreement.
  • This is just a template, so feel free to use/remove the unnecessary things

Description

A few sentences describing the overall goals of the pull request's commits.

Status

READY/IN DEVELOPMENT/HOLD

Migrations

If this PR changes any APIs or behaviors, give a short description of what API users should do when this PR is merged.

YES | NO

Related PRs

List related PRs against other branches:

branch PR
other_pr_production link
other_pr_master link

Todos

  • Tests
  • Documentation

Deploy notes

Notes regarding the deployment of this PR. These should note any required changes in the build environment, tools, compilers and so on.

Steps to test or reproduce

Outline the steps to test or reproduce the PR here.

0xc0170 and others added 30 commits January 2, 2018 11:51
As it does not share the codebase with RZ A1H, it needs to be disabled until
bring it up to date with the latest changes to cmsis. There are changes
regarding caches, mmu and others
Parsing dispatch now uses a metaclass as a Trait and a series of classes
that implement the trait for dispatching parsing. This structure gives
each parser it's own namespace, avoiding tacking on suffixes to each
attribute indicating which parser uses it.
which can be called from diferent contexts.

Orginal nordic critical primitives must been called in pairs
from exacly the same function. As mbed hal call it in separate
methods, so they are not suitable here.
This bug was a result of an annoying corner case around intermingling
signed and unsigned offsets. The boundary check that prevents seeking
a file to a position before the file was preventing valid seeks with
positive offsets.

This corner case is a bit more complicated than it looks because the
offset is signed, while the size of the file is unsigned. Simply
casting both to signed or unsigned offsets won't handle large files.
… mode

- Add flag to I2C class to track if the I2C instance has locked deep sleep mode.
- Wrap call to sleep_manager_lock_deep_sleep to only be called if I2C instance
  hasn't already locked deep sleep.
- Wrap call to sleep_manager_unlock_deep_sleep to only be called if I2C has
  currently locked deep sleep mode.
… mode

- Add flag to SPI class to track if the SPI instance has locked deep sleep mode.
- Wrap call to sleep_manager_lock_deep_sleep to only be called if SPI instance
  hasn't already locked deep sleep.
- Wrap call to sleep_manager_unlock_deep_sleep to only be called if SPI has
  currently locked deep sleep mode.
Not needed, neither used anywhere. Teardown also can
be removed
cmonr and others added 17 commits January 18, 2018 11:32
RTL8195AM - move region headers to 0xb000 and 0xc000
NSAPI: Add Nanostack multicast membership support
littlefs: Fix issue with immediate exhaustion and small unaligned storage
littlefs: Fix file truncation without writes
Add MTB MTS_Dragonfly as a new target.
…sbhost

Some enhancements for the USBHost feature and small bug fix
mbed Enabled certificate for the VBLUno51 board
Exporter for Netbeans GCC_ARM
- Add missing documentation in shared_lock and flash wrapper include files.
- Fix include files (correctness and order).
- Move configuration of addresses and sizes from targets.json to mbed_lib.json.
- Change function parameters from pointers to references.
- Remove unnecessary NVSTORE_THREAD_SAFE and NVSTORE_PROBE_ONLY defines.
- Fix multihtreading logics in both set & get APIs
- Use NonCopyable base class for NVStore class
- Rename SharedLock class to NVStoreSharedLock
- Fix README.md and API in-code documentation
- Remove redundant mentions of NVSTORE feature in config files
- Remove module.json file
- Fix race condition in do_set (upon GC invocation).
- Rename _write_lock member to _lock.
- Fix wrong includes to Thread.h
@yossi2le yossi2le closed this Feb 21, 2018
yossi2le pushed a commit that referenced this pull request Mar 8, 2018
yossi2le pushed a commit that referenced this pull request Jul 29, 2018
`handle_error` calls `MBED_CALLER_ADDR()`, but this is always a location from within platform/mbed_error.c. This is because `handle_error` is declared static. This does not cause the function to be inlined however. Instead, it is called by each function within mbed_error.c. For example, mbed_error yields this code:

```
000625c8 <mbed_error>:
   625c8:       b510            push    {r4, lr}
   625ca:       460c            mov     r4, r1
   625cc:       4611            mov     r1, r2
   625ce:       461a            mov     r2, r3
   625d0:       9b02            ldr     r3, [sp, #8]
   625d2:       f7ff feff       bl      623d4 <handle_error>
   625d6:       b968            cbnz    r0, 625f4 <mbed_error+0x2c>
   625d8:       4620            mov     r0, r4
   625da:       f7ff ff67       bl      624ac <print_error_report.constprop.0>
   625de:       f7ff fea8       bl      62332 <core_util_is_isr_active>
   625e2:       b910            cbnz    r0, 625ea <mbed_error+0x22>
   625e4:       f7ff fe9f       bl      62326 <core_util_are_interrupts_enabled>
   625e8:       b908            cbnz    r0, 625ee <mbed_error+0x26>
   625ea:       bf30            wfi
   625ec:       e7fd            b.n     625ea <mbed_error+0x22>
   625ee:       2001            movs    r0, #1
   625f0:       f000 f948       bl      62884 <__wrap_exit>
   625f4:       4800            ldr     r0, [pc, #0]    ; (625f8 <mbed_error+0x30>)
   625f6:       bd10            pop     {r4, pc}
   625f8:       80ff010f        .word   0x80ff010f
```

Note that at `625d2` there is a bl to handle error. That replaces the LR, which means that ALL calls to mbed_error will report a location of 0x625d6 or 0x625d7 (user vs. supervisor). I do not expect that this was the intention of the code. The simplest fix is to change line 99:

```C
static inline mbed_error_status_t handle_error(mbed_error_status_t error_status, unsigned int error_value, const char *filename, int line_number)
```

Since `handle_error()` will be inlined, the link register will be kept the same, so `MBED_CALLER_ADDR()` will yield the expected result. However, there is no guarantee that the compiler will respect the `inline` keyword in all circumstances.

The result is that each function that wishes to report its caller must extract its caller. This code cannot be centralised.

I have modified `mbed_error.c` to report the caller of each error reporting function, rather than the error reporting function itself.
geky added a commit that referenced this pull request Aug 26, 2018
Fix default spi speed to 40Mhz
geky pushed a commit that referenced this pull request Aug 26, 2018
Fix const attribute mismatch on size function
geky pushed a commit that referenced this pull request Aug 26, 2018
Added more warnings about FlashIAP
yossi2le pushed a commit that referenced this pull request Sep 2, 2018
yossi2le pushed a commit that referenced this pull request Sep 4, 2018
NFC: Amend ndef parsing design.
yossi2le pushed a commit that referenced this pull request Oct 14, 2018
choose which lpc1768 timer to use for us_ticker.c
davidsaada pushed a commit that referenced this pull request Nov 19, 2018
yossi2le pushed a commit that referenced this pull request Nov 28, 2018
yossi2le pushed a commit that referenced this pull request Jan 24, 2019
yossi2le pushed a commit that referenced this pull request Mar 14, 2019
Finish memory protection and add static assert
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.