Commit Graph

131 Commits (0c8add6e28d03ed56eecbd20cd563faf94bfb1da)

Author SHA1 Message Date
jeromecoutant bdc91b0a9a STM32_gen_PeripheralPins.py v1.4
Minor updates:
- remove QSPI BK2
- beautifier edition
- use STM_MODE_ANALOG_ADC_CONTROL for L4 family
2019-01-24 10:25:36 +01:00
Volodymyr Medvid a48ee113ea PSOC6: refactor M0 image merging, enable export to makefile
Rename the existing PSoC-specific m0_core_img key in targets.json
as a more generic hex_filename key. Update makefile exporter to select
the subset of resources.hex_files matching the hex_filename value.
Without this fix, multiple prebuilt CM0+ hex files are found in the
target resources and erroneously passed to the srec_cat tool.

The fix is generic so other targets that need post-build hex merging
can use this key to pass the correct image to srecord tool.

The fix also removes sub_target key: instead, rely hex_filename json
key to detect if the hex image merging needs to be done.
The sub_target is not used in mbed-os codebase for anything else.

It is possible to override the hex file name in mbed_app.json:
{
  "target_overrides": {
    "*": {
      "target.hex_filename": "my_custom_m0_image.hex"
    }
}
2019-01-22 15:40:22 -08:00
Volodymyr Medvid 5b0daadd18 PSOC6.py: do not require metadata during HEX merging
Replace hard-coded numeric offsets of PSoC 6 hex file sections
with sensible constants.
Do not attempt to update the checksum and metadata contents
if the sections are not found in the original HEX file.
2019-01-22 15:40:22 -08:00
Volodymyr Medvid 226edc1abd PSOC6.py: remove silicon ID check
PSoC 6 hex files contain 4-byte chip ID at virtual offset 0x90500002
added by PSoC Creator or cymcuelftool from .cymeta ELF section.
merge_images compares chip ID in CM0+ and CM4 hex files and raises
an exception in case of mismatch. Chip ID is different for each MPN
(for example, 0xE2072100 for CY8C6347BZI-BLD53 and 0xE2062100 for
CY8C6247BZI-D54). CM0+ prebuilt images target CY8C6347BZI-BLD53
but should be compatible with other PSoC6 MPNs.
Remove the check to enable merging CM0+ images with CM4 applications
built for different MPNs, with empty or absent cymetadata.
2019-01-22 15:40:22 -08:00
Alastair D'Silva aa80b7c70a Don't use define checks on DEVICE_FOO macros (partner code)
The DEVICE_FOO macros are always defined (either 0 or 1).

This patch replaces any instances of a define check on a DEVICE_FOO
macro with value test instead.

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
2018-12-20 20:02:29 +11:00
deepikabhavnani f05e7b77d0 Add core option for Cortex-M33 with DSP enabled
Signed-off-by: Deepika Bhavnani <Deepika.Bhavnani@arm.com>
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-12-07 12:20:01 -06:00
Oren Cohen 2e19868ff9 Prepare postbuild for prebuilt images 2018-12-06 09:35:50 +02:00
Oren Cohen f1d3eb9340 Add FUTURE_SEQUANA_PSA target
* Modify linker scripts to be compatible with bootloader and PSA
* Add memory protection
* Modify original post-build step to allow link with PSA binaries
* Config kvstore for ITS on FUTURE_SEQUANA_PSA
* Enable PSA-Crypto on PSoC6 with NVSeed
2018-12-04 18:38:50 +02:00
Martin Kojtal b0054897b1
Merge pull request #8854 from AdamZhang0124/realtek-rtl8195am-SMCC_FOTA-bin_file_name-update
SMCC FOTA: bin name change
2018-12-03 13:23:53 +01:00
Oren Cohen dd73fa689c PSA SPM
* Intorduce PSA-SPM to mbed-os
* Add SPM tests (for PSA targets)
* Add PSA PRoT internal storage Secure implementation
* Integrate SPM into the boot proccess
* PSA manifest data generator
* Introduce PSA targets skeleton to mbed-os
* Add artifact delivery to the tools
2018-11-27 09:16:35 +02:00
Lu 3f7b235782 This PR modifies the name of the bin file generated for SMCC FOTA feature
This PR modifies the name of the bin file generated for SMCC FOTA feature

Description
Modify name of the bin file from '-payload.bin' to '_update.bin' in REALTEK_RTL8195AM.py file to adapt the manifest tool requirment for the SMCC FOTA feature.

Pull request type
[ ] Fix
[ ] Refactor
[x] Target update
[ ] Functionality change
[ ] Docs update
[ ] Test update
[ ] Breaking change
2018-11-23 21:00:46 +08:00
jeromecoutant 1ea28973b2 TOOLS : Add missing M33 and M33F in python scripts 2018-11-05 17:44:15 +01:00
Leszek Rusinowicz 7d322dcd41 Simplified M0/M4 binary merging functionality. Now, M0 binary image to be used has to be explicitely named in a json file (can be ovverriden in mbed_app.json).
Exporter hooks removed completely.
Cleanup and improvements to the comments, including removal of the redundant doxygen comments.
Code run through astyle. Additionally:
 - changes to drivers/Timer.cpp reverted
 - ipcpipe_transport.* files removed as they are not used for now,
 - fixed condition in stdio_init.cpp to perform serial initialization only when STDIO is enabled,
 - added missing resurce manager call in PWM initialization,
 - us_ticker initialization changed to use pre-reserved clock divider (to avoid resource manager call).
Changed reporting level from info to debug in PSOC6.py.
Added missing includes for function declarations in startup files.
Fixed (removed) garbadge text in psoc6_utils.c
Precompiled binaries updated for recent changes in psoc6_utils.c and moved to a separate folder; README and LICENSE files added.
2018-11-01 22:14:06 +01:00
Leszek Rusinowicz 9b1db83eaa Added required changes outside of TARGET_Cypress tree:
1. In drivers/Timer.cpp make sure that hardware timer is initialized outside of critical section.
   This is because on PSoC 6 hardware resources are shared between both cores
   and we have to make sure that the other core is not already using a particular resource.
   This mechanism is based on interprocessor communication taht cannot be handled iside of
   critical section.
2. Added support for post-binary hook function for PSoC 6 targets, so the hex image for M0+ CPU core
   can be merged with M4 core image for the final image.
3. Added possibility to use hook function from exportes, so the M0+ hex image could be included
   in the generated project.
4. Included hex images in the build dependency list, so the update of image is catched by the
   build process.
2018-11-01 20:19:21 +01:00
Jimmy Brisson 9c3307ab20 tools: Raise NotSupported when target definition is incomplete
### Description

Noticed by the online compiler:
When a user has an incomplete target definition, the error is not show
to the user. That's because it's reported as a `KeyError`. This PR adds
an outer `NotSupportedException` so that the outer catch statement knows
that this is not a build system crash, but a user error.

### Pull request type

    [x] Fix
    [ ] Refactor
    [ ] Target update
    [ ] Functionality change
    [ ] Breaking change
2018-10-17 18:00:57 -05:00
Cruz Monrreal 5102610f11
Merge pull request #8275 from theotherjimmy/online-nrf51-upstream
tools, NRF51-post-build: Use paths to hex files
2018-10-08 10:21:03 -05:00
Jimmy Brisson 080c72bb47 tools, NRF51-post-build: Use paths to hex files
### Description

The NRF51 post build hook finds it's hex files using the Resources
object. This PR fixes the corner case where the hex files within a
project have a name!=path (This really only happens online).

### Pull request type

    [x] Fix
    [ ] Refactor
    [ ] Target update
    [ ] Functionality change
    [ ] Breaking change
2018-09-27 14:44:19 -05:00
Russ Butler ab50681c33 Rename device option STCLK_OFF_DURING_SLEEP
Rename STCLK_OFF_DURING_SLEEP to SYSTICK_CLK_OFF_DURING_SLEEP to avoid
confusion with the STmicroelectronics.
2018-09-12 14:40:25 -05:00
Cruz Monrreal 2e081dc7d0
Merge pull request #7644 from theotherjimmy/components
Tools: Scan for "components"
2018-08-28 17:55:01 -05:00
Jimmy Brisson 4ef12ccdbc Culumative attirbutes always exist 2018-08-27 11:12:02 -05:00
Jimmy Brisson 79ee1b8e02 Add "components" 2018-08-27 11:12:01 -05:00
Cruz Monrreal 2f8e679183
Merge pull request #7592 from orenc17/remove_uvisor
Remove uVisor from mbed-os
2018-08-25 19:52:24 -05:00
Oren Cohen 787317b7eb Remove uVisor from mbed-os 2018-08-22 16:36:59 +03:00
jeromecoutant 43258a8ff4 STM32 : add all QSPI pins in available targets 2018-08-22 15:02:08 +02:00
Jimmy Brisson ae033da12f Use mapping of core->arch ver. for tc picking 2018-07-19 10:55:35 -05:00
Jimmy Brisson 4400765ece Add `Mxx_NS` core-based labels 2018-07-12 18:01:37 +08:00
Jimmy Brisson 4e6b830c91 Allow hex BL, SD and application merging 2018-06-19 09:27:09 -05:00
Martin Kojtal eb3d3fdb54
Merge pull request #6929 from jeromecoutant/PR_SCRIPT
STM32 : script to generate PeripheralPins.c for new target addition
2018-06-19 14:26:22 +02:00
jeromecoutant 5fba2e49c5 STM32_gen_PeripheralPins.py : Add license header 2018-06-12 14:30:54 +02:00
Bartek Szatkowski 6e9f04bf2f Rename DEVICE_LOWPOWERTIMER to DEVICE_LPTICKER
That's to match DEVICE_USTICKER.
2018-05-25 12:20:09 -05:00
jeromecoutant 5b43961860 STM32: move STM32_gen_PeripheralPins.py to tools/targets 2018-05-21 17:22:19 +02:00
Jimmy Brisson 542bcebac7 Use notify API in post-build scripts 2018-04-27 14:46:35 -05:00
Jimmy Brisson a0b305b351 Use pyelftools for Realtek post-build script 2018-04-16 09:06:38 -05:00
Jimmy Brisson a9e3a4fa28 Correct Realtek post-build script to work in the online compiler 2018-03-16 10:09:03 -05:00
Jimmy Brisson cca4425af6 Python2+3: iteritems -> items 2018-02-05 11:04:36 -06:00
Jimmy Brisson 380ecb1b0e Python2+3: working through many has_attr exceptions 2018-02-05 11:04:01 -06:00
Jimmy Brisson 68737f2762 Python2+3: Things import 2018-02-05 11:03:44 -06:00
Cruz Monrreal 9a47f09ea9
Merge pull request #5910 from OSHChip/typo-fix
fix typos in lint.py
2018-01-26 10:36:33 -06:00
drewcassidy 6f9aa07491
fix typos in lint.py 2018-01-23 19:19:43 -08:00
Cruz Monrreal 47a128a5e5
Merge pull request #5882 from ashok-rao/br-MTB_Dragonfly
Add MTB MTS_Dragonfly as a new target.
2018-01-19 13:58:03 -06:00
Ashok Rao 9ee69854ff Adding MTB MTS_Dragonfly as a new target 2018-01-18 17:08:59 +00:00
chrisyang a1b4b8f10a rtl8195am - move region headers to 0xb000 and 0xc000
The new layout is as follows:

0x000000 - 0x008000  => bootloader
0x008000 - 0x00b000  => system sectors
0x00b000 - 0x00c000  => region1 header
0x00c000 - 0x00d000  => region2 header
0x00d000 - 0x010000  => reserved
0x010000 - 0x040000  => mbed file system
0x040000 - 0x120000  => region1 image
0x120000 - 0x200000  => region2 image

This is to ensure when daplink erases sections, both regions' headers
are erased properly.
2018-01-15 15:08:13 +08:00
Tony Wu a4575a965f rtl8195am - refactor bootloader and ota support
1. move ota region 1 from 0x00b000 to 0x040000
2. move ota region 2 from 0x0c0000 to 0x120000
3. refactor bootloader header as follows:

   uint32_t tag;
   uint32_t ver;
   uint64_t timestamp;
   uint32_t size;
   uint8_t hash[32];
   uint8_t campaign[16];
   uint32_t crc32;

   where,
   a. hash is the sha256 checksum of the payload.
   b. crc32 is the crc32 checksum of headers from tag to campaign.

4. Call NVIC_SystemReset for soft reset.

Signed-off-by: Tony Wu <tung7970@gmail.com>
2017-11-28 21:33:51 +08:00
Tony Wu 985c2b0ec7 rtl8195am - cleanup post-processing binary hook
Preparing for bootloader redesign.

Signed-off-by: Tony Wu <tung7970@gmail.com>
2017-11-28 21:29:49 +08:00
Anna Bridge e9e0595188 Merge pull request #5042 from tung7970/fix-tools
RTL8195AM - Respect Toolchains paths in post bulid script.
2017-10-20 10:23:25 +01:00
Jimmy Brisson a67737f993 Merge pull request #5086 from pan-/systick_sleep_fix
Sleep: Disallow sleep for targets turning off the systick clock at sleep entry
2017-10-13 09:19:10 -05:00
Tony Wu 7d6e66db2f rtl8195am - use TOOLCHAIN_PATHS to locate toolchain
Use TOOLCHAIN_PATHS to locate toolchain binaries for users might set
compiler paths, through mbed_settings.py, env vars, or system path.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-10-09 23:38:03 +08:00
Jimmy Brisson 58372d3fdf Allow ARMC6 to run post-binary-hooks marked for ARM 2017-09-13 14:50:06 -05:00
Vincent Coubard 682816d86e Sleep: Disallow sleep for targets turning of the systick clock at sleep entry.
When the RTOS is present and the tickless mode is not implemented, it is
expected that the next tick issued by the Systick timer will wake up the MCU.
However nothing prevents an implementation of the ARM architecture to gate the
systick clock signal upon sleep entry.

Therefore on those targets sleep shall be prohibited if the RTOS is present and the
tickless mode is not implemented.

To ease life of porters , a new option has been added in the device add list:
STCLK_OF_DURING_SLEEP. This option expose that the target turn of the systick
clock during sleep.

Targets which exhibit such behavior shall add this define in their device_has list.
2017-09-13 10:28:02 +01:00
Deepika 9422c351e4 Initial RTX and tools support for Cortex M-23/M-33 devices 2017-09-11 11:43:26 -05:00
Jimmy Brisson 7457bbbc5c Merge pull request #4665 from Archcady/enable_sdram
Enable sdram usage of REALTEK_RTL8195AM
2017-09-06 14:26:34 -05:00
Russ Butler ac22225ad9 Move Cortex specific RTX behind TARGET_CORTEX
Update directory structure to include RTX for only cortex targets, and
for all cortex targets. This patch accomplishes this by moving mbed-os
specific RTX files and RTX itself into rtos/TARGET_CORTEX along with
removing TARGET_CORTEX_M from the RTX5 directory.

The old directory structure:

rtos/rtx5/<mbed-os specific RTX files>
rtos/rtx5/TARGET_CORTEX_M/*
rtos/rtx4/*
rtos/<mbed-os specific RTX files>

Is re-arranged to:

rtos/TARGET_CORTEX/rtx5/*
rtos/TARGET_CORTEX/rtx4/*
rtos/TARGET_CORTEX/<mbed-os specific rtx files>

This both encapsulates RTX code more cleanly and makes it easier to
experiment with non-cortex cmsis-os2 backends, such as a posix
based cmsis-os2 backend.

Note - A potentially better name for the CORTEX_M directory would be
something like FEATURE_RTX5 since this directory only contains RTX5
related files. This cannot be done because there is not an easy way
to turn this feature on, since it cannot be done from mbed_lib.json.
2017-08-31 19:55:54 -05:00
Yuguo Zou c834b7faac Fix bugs for RTL8195AM with debug profile of compilers
1. Add alignment / padding for postbuild segments
2. Clear tcm.bss section
3. Remove TRAP_OverrideTable(), move lines to PLAT_Start()
2017-08-28 19:04:26 +08:00
Yuguo Zou a0064ae47c Remove extension in cmd
Remove extension in command line so the script could work on Linux
2017-08-24 11:26:40 +08:00
Yuguo Zou 1e398cfc60 Add RTL8195AM support for mbed client with IAR
Move ticker related code to SRAM due to time drift sensitive
2017-08-22 17:34:00 +08:00
Tony Wu 35d7ca27be rtl8195am - fix ARMCC SRAM + SDRAM porting
Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-08-01 15:29:21 +08:00
Yuguo Zou d1c87347af Fix ARMCC & IAR compile errors 2017-07-28 18:33:52 +08:00
Tony Wu c9ecb2749d rtl8195am - adjust memory layout and enable fota support
1. Rearrange SDRAM and SRAM layout. Move timing critical code to SRAM,
   and the rest to SDRAM.

2. Add bootloader that's capable of FOTA over mbed cloud.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-07-27 13:55:45 +08:00
Yuguo Zou 2864e4b05d enable sdram usage of REALTEK_RTL8195AM
Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-07-27 13:55:42 +08:00
jacobjohnson-ON 41a0941d53 mbed OS 5.5.3, including the changes needed to enable 640k. Includes the proposed changes by Mac. 7/25/17 2017-07-25 17:37:14 -06:00
Jimmy Brisson 18bca08d4b Reduce device has whitelist 2017-06-29 14:09:39 -05:00
Jimmy Brisson dfeb864f19 Add line between local and module imports 2017-06-29 14:09:39 -05:00
Jimmy Brisson 7775764db9 Add license header 2017-06-29 14:09:39 -05:00
Jimmy Brisson 2598bcd1b9 Restrict device_has 2017-06-29 14:09:39 -05:00
Jimmy Brisson 37a3e20dfe Revamp option parsing and add more checks 2017-06-29 14:09:39 -05:00
Jimmy Brisson 32966bbcbe Stylize and add function docs 2017-06-29 14:09:39 -05:00
Jimmy Brisson ae2268490f Added simple linter for targets.json 2017-06-29 14:09:39 -05:00
Andrew Leech 4491d2e3f7 Prevent modifying existing targets.
A warning will be printed if it is attempted.
2017-06-21 22:17:58 +10:00
Jimmy Brisson 49645b44d8 Clear custom-targets uppon setting new taregts.json location 2017-06-21 22:17:57 +10:00
Andrew Leech bf08b108aa Add custom_targets.json file contents to targets
Avoid duplication of update_target_data() code
Keep "custom_targets.json" filename definition in Targets()
2017-06-21 22:17:57 +10:00
Jimmy Brisson 2c4475cacc Find extra targets in all source folders 2017-06-21 22:17:57 +10:00
Andrew Leech 58c52fa2e7 Recursively merge extra_targets into targets
Recursively merge any target configs in extra_targets.json rather than completely replacing keys at the top level
2017-06-21 22:14:07 +10:00
Andrew Leech e6e3d08ea6 Add extra_targets.json support to build tools
If the file extra_targets.json exists in the working directory load it over the top of the built in targets.json for defining new and overriding built in mbed target definitions.
2017-06-21 22:14:07 +10:00
Yuguo Zou 0c046a4c38 improve coding style 2017-06-03 20:15:04 +01:00
Yuguo Zou 00ffb04f68 move target specific scripts to tools/targets/ 2017-06-03 20:14:58 +01:00
Yuguo Zou 29e11a1cb9 move REALTEK_RTL8195AM.py, remove progen in targets.json 2017-06-03 20:14:54 +01:00
Yuguo Zou 53e837bce2 add support for REALTEK_RTL8195AM 2017-06-03 20:14:45 +01:00
Bartek Szatkowski 2ddf4b33cb CMSIS5: Remove ARM7 support and targets 2017-05-12 13:48:43 -05:00
Andrzej Puzdrowski c64d2f4411 avoid 03/05 intel-hex records for nordics devices
use Intelhex::write_hex_file instead of IntelHex::tofile
2017-05-05 13:27:29 +02:00
Jimmy Brisson 74998d649a Change target hooks to use correct input format
The input format is now determined by the OUTPUT_EXT key in
targets.json, and defaults to "bin" when not specified. This changes the
Teensy3_1 and the NRF51x targets' post bulid hooks.

Teensy3_1 just converted to intelhex, so we do nothing instead.

NRF51x assumed that it was taking in a bin format file. I made it detect
file type by extension.
2017-04-03 14:54:38 -05:00
Jimmy Brisson f590dc11bd Move target related code into it's own directory
This should make it easier to navigate the code base
2017-03-22 15:20:09 -05:00