Tool/software:
Hello TI Experts,
I am working with the I2C LLD (Low-Level Driver) on AM263x, using one controller as I2C master and another as I2C slave (target). I am using interrupt mode with a custom ISR for the slave (I2C_lld_targetIsr()
).
I noticed that the default ISR implementation provided in the SDK is designed for general purpose usage. However, to meet my application requirements — specifically continuous bidirectional communication between two AM2634 devices — I needed to modify the ISR to:
-
Set custom flags
-
Track internal counters
-
Restart transfers immediately inside the ISR
-
Log or capture data buffers more flexibly
My Questions:
-
What are the guidelines or best practices for modifying
I2C_lld_targetIsr()
?
Are there recommended extension points or protections to preserve driver integrity? -
Does modifying the ISR or adding application-specific flags or counters (e.g., setting
rx_flag = 1
) impact the software’s SIL (Safety Integrity Level) compliance or any safety certification goals? -
If my system is being developed for a safety-critical domain (like SIL-2 or SIL-3), are there specific precautions to take when modifying interrupt-level driver code?
-
Is there a better way to achieve continuous read/write functionality in the target (slave) using existing LLD infrastructure without modifying the ISR?
I would greatly appreciate any insights, references to TI safety manuals or certified driver variants (if any), and guidance on how to structure such modifications safely.
Thank you!