Skip to content
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

[BACKPORT] stm32f40xxx_i2c isr processing #38

Merged

Conversation

davids5
Copy link
Member

@davids5 davids5 commented Oct 17, 2018

Due to some errant condition (I2C error or code)
The ISR was being rentered until the end of the
frame. Causing other ISR to not run for 280 uS.

Backport of Alexander Oryshchenko comits
d1cfcab, 643234d, 9b812e3 fixes this condition.

Tested with this file using an arduino nano and a BS170 FET.

DUT was FMUv4 RC15 with 3DR HMC5885+GPS (Both cables connected)

Nano connected as follows:

GND = DUT GND pin 4 I2C Cable
D3 = DUT SDA pin 3 I2C Cable
D2 = DUT SCL pin 2 I2C Cable

BS170 Drain (1) to D3 (DUT SDA)
BS170 Gate (2) to D13
BS170 Source (3) to GND

See PX4/PX4-Autopilot#7968 and PX4/PX4-Autopilot#7951 for reference.

Reset is called as needed and there are no extra interrupts.

   Due to some errant condition (I2C error or code)
   The ISR was being rentered until the end of the
   frame. Causing other ISR to not run for 280 uS.

   Backport of Alexander Oryshchenko comits
   d1cfcab, 643234d, 9b812e3 fixes this condition.
@davids5 davids5 requested a review from dagar October 17, 2018 21:21
Copy link
Member

@LorenzMeier LorenzMeier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs flight testing - can you raise a PX4 PR for that?

@LorenzMeier LorenzMeier merged commit 999c435 into px4_firmware_nuttx-7.22+ Oct 17, 2018
@davids5
Copy link
Member Author

davids5 commented Oct 17, 2018

Bad 926 us.
image

Fixed: 858 us.
image

@dagar to answer your question the delta was typically 68 us. I am not sure that would have been picked up. Some longer operation had deltas of 234 uS - that might be detectable.

@davids5
Copy link
Member Author

davids5 commented Oct 17, 2018

@LorenzMeier PX4/Firmware PR is here PX4/PX4-Autopilot#10714

@dagar dagar deleted the px4_firmware_nuttx-7.22+_i2c_bp branch October 18, 2018 15:02
PX4BuildBot pushed a commit that referenced this pull request Jan 5, 2020
* Documentation/NuttXCCodingStandard.html:  Remove requirement to decorate ignored returned values with (void).

* sched_mergepending.c:  Correct some errors in comments.

Co-authored-by: Gregory Nutt <gnutt@nuttx.org>
PX4BuildBot pushed a commit that referenced this pull request Oct 11, 2024
set CONFIG_PRIORITY_INHERITANCE=y
set CONFIG_SEM_PREALLOCHOLDERS=0 or CONFIG_SEM_PREALLOCHOLDERS=8

    #24 0x4dcab71 in __assert assert/lib_assert.c:37
    #25 0x4d6b0e9 in nxsem_destroyholder semaphore/sem_holder.c:602
    #26 0x4d80cf7 in nxsem_destroy semaphore/sem_destroy.c:80
    #27 0x4d80db9 in sem_destroy semaphore/sem_destroy.c:120
    #28 0x4dcb077 in nxmutex_destroy misc/lib_mutex.c:122
    #29 0x4dc6611 in pipecommon_freedev pipes/pipe_common.c:117
    #30 0x4dc7fdc in pipecommon_close pipes/pipe_common.c:397
    #31 0x4ed4f6d in file_close vfs/fs_close.c:78
    #32 0x6a91133 in local_free local/local_conn.c:184
    #33 0x6a92a9c in local_release local/local_release.c:129
    #34 0x6a91d1a in local_subref local/local_conn.c:271
    #35 0x6a75767 in local_close local/local_sockif.c:797
    #36 0x4e978f6 in psock_close socket/net_close.c:102
    #37 0x4eed1b9 in sock_file_close socket/socket.c:115
    #38 0x4ed4f6d in file_close vfs/fs_close.c:78
    #39 0x4ed1459 in nx_close_from_tcb inode/fs_files.c:754
    #40 0x4ed1501 in nx_close inode/fs_files.c:781
    #41 0x4ed154a in close inode/fs_files.c:819
    #42 0x6bcb9ce in property_get kvdb/client.c:307
    #43 0x6bcd465 in property_get_int32 kvdb/common.c:270
    #44 0x5106c9a in tz_offset_restore app/miwear_bluetooth.c:745
    #45 0x510893f in miwear_bluetooth_main app/miwear_bluetooth.c:1033
    #46 0x4dcf5c8 in nxtask_startup sched/task_startup.c:70
    #47 0x4d70873 in nxtask_start task/task_start.c:134
    #48 0x4e04a07 in pre_start sim/sim_initialstate.c:52

Signed-off-by: ligd <liguiding1@xiaomi.com>
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.

2 participants