forked from ARMmbed/mbed-os
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to latest mbed code #1
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fix issue #1348 with stack/heap and with many ST shields.
When two or more analogue inputs are initialized on more than one ADC HW block the initialisation fails with: Cannot initialize ADC The reason is the reusage of just one ADC_HandleTypeDef for all initializations (in mbed\targets\hal\TARGET_STM\TARGET_STM32F3\analogin_api.c). After the first (successful) ADC initialisation AdcHandle.State is set to HAL_ADC_STATE_READY). But for another ADC block initialisation the AdcHandle.State has to be reset so that the HAL initialize it (in mbed\targets\cmsis\TARGET_STM\TARGET_STM32F3\stm32f3xx_hal_adc_ex.c line 424). When this state is not reset the HAL returns with an initialization error. And this error induces the above mbed error message. The error message can be reproduced just with AnalogIn in1(xx); AnalogIn in2(yy); where xx and yy belongs to two different ADC blocks.
* Fixed period & pulse-width off-by-one errors * Fixed 0% and 100% duty cycle output
* 0% duty cycle now reads back correctly * Period & pulse-width changes now take effect immediately if the timer is halted
UDP based protocols such as DTLS may fragment large packets, resulting in many packets being sent at once. This can lead to significant/irrecoverable packet loss on systems that respond to packets slower than network transfers. Increasing MEMP_NUM_NETBUF to 8 allows lwip to handle a DTLS handshake successfully and should be more robust for similar protocols. DTLS handshake: https://tools.ietf.org/html/rfc4347#section-4.2.3
[LPC824] Fixed PwmOut SCT Bugs
Improved commenting in pwmout_write(), pwmout_period_us(), and pwmout_pulsewidth_us().
[LPC11U68, LPC1549] Fixed PwmOut SCT Bugs
We added the IAR tool chain to release build.
Bug fix to support the export function to IAR.
[STM32F7] Update STM32F7Cube_FW version
[NUCLEO_L073RZ] Add SW4STM32 exporter
Fixes issue #1562 reported by @justbuchanan. When building code with GCC-ARM / newlib, attempting to use the b (binary) mode in a fopen() call would fail. newlib would parse this option and pass it down to the LocalFileSystem open call which didn't like the unexpected O_BINARY flag in openmode. The openmode_to_posix() function in retarget.cpp would never set the O_BINARY flag for the other toolchains but for GCC it would just pass down whatever newlib placed there. This commit masks out the O_BINARY bit so that it never gets passed down to the file system drivers, just as occurs for the other supported toolchains. Test case: FILE *fp = fopen("/local/out.txt", "rb"); I tested that code on mbed LPC1768 and LPC11U24 boards while using GCC_ARM as the toolchain. It failed on both platforms previous to this change and succeeded there after.
LocalFileSystem fails to open binary files
Adding missing dependencies
Adding additional 'defined' statements to line 62 of parse_pins.cpp should in theory enable the rpc libraries for all other Nucleo boards, since all stm32 parts use the same pin labeling scheme i.e. P(port)_pinNumber e.g. PA_3, PC_15 e.t.c.
Added a new API for attaching a user-provided function to be executed by the idle task.
Adding requests to requirements
Removed unnecessary loop function prototype.
My previous commit, c6d2c81, broke Keil builds and maybe even IAR. I need to learn how to read C code :) I thought I was masking off the O_BINARY bit only for GCC builds but it turns out that my update was in the fall-through case for all toolchains. This commit now places the O_BINARY masking operation into a GCC specific #ifdef clause. Testing: I tested the same fopen("/local/out.txt","rb") code as before but this time I built it with the online compiler and GCC_ARM. I tested the resulting binaries on mbed-LPC11U24 and mbed-LPC1768 boards. Thanks to @neilt6 for catching & reporting this!
[STM32F3xx] bug fix multiple ADC channels using multiple ADC blocks
[NUCLEO_L031K6] Change the default pwm pin
Typo fix in HAL_CM0.S of ARM7 rtx
mmahadevan108
pushed a commit
that referenced
this pull request
Aug 5, 2016
Differentiate ASM and CXX symbols
mmahadevan108
pushed a commit
that referenced
this pull request
Aug 22, 2016
network-socket: Peer address update for Nanostack
mmahadevan108
pushed a commit
that referenced
this pull request
Nov 15, 2016
licence and copyrights updated
mmahadevan108
pushed a commit
that referenced
this pull request
Nov 15, 2016
copyright and licence updates
mmahadevan108
pushed a commit
that referenced
this pull request
Mar 21, 2017
Parallel building, makefile clean, and build step
mmahadevan108
pushed a commit
that referenced
this pull request
May 9, 2017
For LPC176X (LPC1768/LPC1769) the flash driver has been implemented according to the CMSIS-PACK Keil.LPC1700_DFP.2.3.0 driver with the following changes in FlashPrg.c: 1. EraseChip() function removed (not used by flash_api) 2. Clock reconfiguration removed and clock value taken from function parameter to avoid unexpected behavior. Full patch of FlashPrg.c: --- Keil.LPC1700_DFP.2.3.0\Flash\LPC_IAP\FlashPrg_orig.c 2016-12-08 13:10:10.000000000 +0200 +++ Keil.LPC1700_DFP.2.3.0\Flash\LPC_IAP\FlashPrg.c 2017-04-11 20:02:37.000000000 +0200 @@ -191,90 +191,15 @@ * fnc: Function Code (1 - Erase, 2 - Program, 3 - Verify) * Return Value: 0 - OK, 1 - Failed */ int Init (unsigned long adr, unsigned long clk, unsigned long fnc) { -#if defined LPC1XXX || defined LPC11U6X - CCLK = 12000; // 12MHz Internal RC Oscillator + CCLK = clk / 1000; // CCLK value is in kHz, clk in Hz - MAINCLKSEL = 0; // Select Internal RC Oscillator - MAINCLKUEN = 1; // Update Main Clock Source - MAINCLKUEN = 0; // Toggle Update Register - MAINCLKUEN = 1; -// while (!(MAINCLKUEN & 1)); // Wait until updated - MAINCLKDIV = 1; // Set Main Clock divider to 1 - - MEMMAP = 0x02; // User Flash Mode -#endif - -#ifdef LPC17XX - IAP.stat = 0; // Note: Some Bootloader versions don't set the status if this command is executed - IAP.cmd = 54; // Read Part ID - IAP_Call (&IAP.cmd, &IAP.stat); // Call IAP Command - if (IAP.stat) return (1); // Command Failed - - switch ((IAP.res[0] >> 24) & 0xFF) { - case 0x25: - // Part ID LPC1759 = 0x25113737 - // Part ID LPC1758 = 0x25013F37 - // Part ID LPC1756 = 0x25011723 - // Part ID LPC1754 = 0x25011722 - // Part ID LPC1752 = 0x25001121 - // Part ID LPC1751 = 0x25001118 / 0x25001110 - case 0x26: - // Part ID LPC1769 = 0x26113F37 - // Part ID LPC1768 = 0x26013F37 - // Part ID LPC1767 = 0x26012837 - // Part ID LPC1766 = 0x26013F33 - // Part ID LPC1765 = 0x26013733 - // Part ID LPC1764 = 0x26011922 - CCLK = 4000; // 4MHz Internal RC Oscillator - break; - case 0x27: - // Part ID LPC1778 = 0x27193F47 - // Part ID LPC1777 = 0x27193747 - // Part ID LPC1776 = 0x27191F43 - // Part ID LPC1774 = 0x27011132 - // Part ID LPC1772 = 0x27011121 - case 0x20: // found out during test - case 0x28: - // Part ID LPC1788 = 0x281D3F47 - // Part ID LPC1787 = 0x281D3747 - // Part ID LPC1786 = 0x281D1F43 - // Part ID LPC1785 = 0x281D1743 - case 0x48: // Part ID LPC4088 = 0x481D3F47 - case 0x47: // Part ID LPC4078 = 0x47193F47 - // Part ID LPC4076 = 0x47191F43 - // Part ID LPC4074 = 0x47011132 - CCLK = 12000; // 12MHz Internal RC Oscillator - break; - default: - CCLK = 4000; // 4MHz Internal RC Oscillator - } - - CLKSRCSEL = 0x00; // sysclk = IRC - - PLL0CON = 0x00; // Disable PLL (use Oscillator) - PLL0FEED = 0xAA; // Feed Sequence Part #1 - PLL0FEED = 0x55; // Feed Sequence Part #2 - - switch ((IAP.res[0] >> 24) & 0xFF) { - case 0x27: // LPC177x - case 0x20: // LPC178x - case 0x28: // LPC178x - case 0x48: // LPC407x - case 0x47: // LPC408x - CCLKSEL = 0x01; // use Sysclk devided by 1 for CPU - break; - default: - CCLKSEL = 0x00; // CPU clk divider is 1 - } - MEMMAP = 0x01; // User Flash Mode -#endif return (0); } /* @@ -283,37 +208,12 @@ * Return Value: 0 - OK, 1 - Failed */ int UnInit (unsigned long fnc) { return (0); } - - -/* - * Erase complete Flash Memory - * Return Value: 0 - OK, 1 - Failed - */ - -int EraseChip (void) { - - IAP.cmd = 50; // Prepare Sector for Erase - IAP.par[0] = 0; // Start Sector - IAP.par[1] = END_SECTOR; // End Sector - IAP_Call (&IAP.cmd, &IAP.stat); // Call IAP Command - if (IAP.stat) return (1); // Command Failed - - IAP.cmd = 52; // Erase Sector - IAP.par[0] = 0; // Start Sector - IAP.par[1] = END_SECTOR; // End Sector - IAP.par[2] = CCLK; // CCLK in kHz - IAP_Call (&IAP.cmd, &IAP.stat); // Call IAP Command - if (IAP.stat) return (1); // Command Failed - - return (0); // Finished without Errors -} - /* * Erase Sector in Flash Memory * Parameter: adr: Sector Address * Return Value: 0 - OK, 1 - Failed */
mmahadevan108
pushed a commit
that referenced
this pull request
Jul 31, 2017
Warning ARMmbed#1300-D: inherits implicit virtual - Adding the virtual keyword in the derived class prevents the warning Warning #1-D: last line of file ends without a newline - New line added at the end of file Warning ARMmbed#997-D: function "MeshInterfaceNanostack::initialize(NanostackPhy *)" is hidden by "ThreadInterface::initialize" -- virtual function override intended? - virtual keyword removed from "MeshInterfaceNanostack::initialize" Warning ARMmbed#1300-D: inherits implicit virtual - Adding the virtual keyword in the derived class prevents the warning
mmahadevan108
pushed a commit
that referenced
this pull request
Aug 23, 2017
mmahadevan108
pushed a commit
that referenced
this pull request
Mar 2, 2018
SM interface improvements
mmahadevan108
pushed a commit
that referenced
this pull request
Aug 1, 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, ARMmbed#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.
mmahadevan108
pushed a commit
that referenced
this pull request
Sep 5, 2018
Fix default spi speed to 40Mhz
mmahadevan108
pushed a commit
that referenced
this pull request
Sep 5, 2018
Fix const attribute mismatch on size function
mmahadevan108
pushed a commit
that referenced
this pull request
Sep 5, 2018
Added more warnings about FlashIAP
mmahadevan108
pushed a commit
that referenced
this pull request
Sep 5, 2018
NFC: Amend ndef parsing design.
mmahadevan108
pushed a commit
that referenced
this pull request
Oct 15, 2018
choose which lpc1768 timer to use for us_ticker.c
mmahadevan108
pushed a commit
that referenced
this pull request
Mar 27, 2019
Finish memory protection and add static assert
mmahadevan108
pushed a commit
that referenced
this pull request
Jun 7, 2019
Fix LWIP warning issues found by Coverity scan lwip_dns.c in function: dns_add_interface_server CID 1399051 (#1 of 1): Buffer not null terminated (BUFFER_SIZE_WARNING)10. buffer_size_warning: Calling strncpy with a maximum size argument of 6 bytes on destination array new_interface_server->interface_name of size 6 bytes might leave the destination string unterminated. line 434 strncpy(new_interface_server->interface_name, interface_name, INTERFACE_NAME_MAX_SIZE); lwip_ip4_frag.c in function: ip_reass_free_complete_datagram CID 1373164 (#1 of 1): Dereference after null check (FORWARD_NULL)7. var_deref_model: Passing null pointer prev to ip_reass_dequeue_datagram, which dereferences it. [show details] line 209 ip_reass_dequeue_datagram(ipr, prev); lwip_ip4_frag.c in function: ip_reass CID 1373163 (#1-2 of 2): Dereference after null check (FORWARD_NULL)38. var_deref_model: Passing null pointer ipr_prev to ip_reass_dequeue_datagram, which dereferences it. [show details] line 663 ip_reass_dequeue_datagram(ipr, ipr_prev); lwip_api_msg.c in function: lwip_netconn_do_connected CID 1373162 (#1 of 1): Explicit null dereferenced (FORWARD_NULL)10. var_deref_model: Passing null pointer op_completed_sem to sys_sem_signal, which dereferences it. [show details] line 1336 sys_sem_signal(op_completed_sem);
mmahadevan108
pushed a commit
that referenced
this pull request
Sep 4, 2019
Adding explicit type conversion to overloaded log function
mmahadevan108
pushed a commit
that referenced
this pull request
Dec 23, 2019
Update CMSIS-pack info for STM32G-family
mmahadevan108
pushed a commit
that referenced
this pull request
Jan 24, 2020
Signed-off-by: PARKJIHOON <jh6186.park@samsung.com>
mmahadevan108
pushed a commit
that referenced
this pull request
May 21, 2020
Removing namespace pollution & rf ctrls refactor
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.