AM263Px MCU+ SDK: pruicss.h Source File

| AM263Px MCU+ SDK 26.00.00 |

pruicss/m_v0/pruicss.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2021 Texas Instruments Incorporated
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the
14 * distribution.
15 *
16 * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
45 #ifndef PRUICSS_H_
46 #define PRUICSS_H_
47
48 /* ========================================================================== */
49 /* Include Files */
50 /* ========================================================================== */
51
52 #include <stdint.h>
53 #include <kernel/dpl/SystemP.h>
54 #include <kernel/dpl/SemaphoreP.h>
55 #include <kernel/dpl/HwiP.h>
56 #include <drivers/hw_include/cslr_icss.h>
57
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
61
62 /* ========================================================================== */
63 /* Macros & Typedefs */
64 /* ========================================================================== */
65
74 #define PRUICSS_PRU0 (0U)
75 #define PRUICSS_PRU1 (1U)
76
82 #define PRUICSS_NUM_CORES (2U)
83
93 #define PRUICSS_DATARAM(n) (0x00000U + ((n) * 0x02000U))
94
95 #define PRUICSS_SHARED_RAM (0x10000U)
96
97 #define PRUICSS_IRAM_PRU(n) (0x34000U + ((n) * 0x04000U))
98
103 #define PRUICSS_INTC_NUM_HOST_INTERRUPTS (10U)
104
108 #define PRUICSS_INTC_NUM_CHANNELS (10U)
109
113 #define PRUICSS_INTC_NUM_SYS_EVTS (64U)
114
115
124 #define PRUICSS_CONST_TBL_ENTRY_C24 (0U)
125 #define PRUICSS_CONST_TBL_ENTRY_C25 (1U)
126 #define PRUICSS_CONST_TBL_ENTRY_C26 (2U)
127 #define PRUICSS_CONST_TBL_ENTRY_C27 (3U)
128 #define PRUICSS_CONST_TBL_ENTRY_C28 (4U)
129 #define PRUICSS_CONST_TBL_ENTRY_C29 (5U)
130 #define PRUICSS_CONST_TBL_ENTRY_C30 (6U)
131 #define PRUICSS_CONST_TBL_ENTRY_C31 (7U)
132 #define PRUICSS_NUM_CONST_TBL_ENTRY (8U)
133
141 #define PRUICSS_GP_MUX_SEL_MODE_GP (0U)
142 #define PRUICSS_GP_MUX_SEL_MODE_ENDAT (1U)
143 #define PRUICSS_GP_MUX_SEL_MODE_MII (2U)
144 #define PRUICSS_GP_MUX_SEL_MODE_SD (3U)
145
150 #define PRUICSS_NUM_GP_MUX_SEL_MODES (4U)
151
159 #define PRUICSS_GPI_MODE_DIRECT_R31_STATUS (0U)
160
162 #define PRUICSS_GPI_MODE_PARALLEL_16_BIT_CAPTURE (1U)
163
165 #define PRUICSS_GPI_MODE_29_BIT_SHIFT (2U)
166
167 #define PRUICSS_GPI_MODE_MII_RT (3U)
168
173 #define PRUICSS_NUM_GPI_MODES (4U)
174
182 #define PRUICSS_SA_MUX_MODE_DEFAULT (0U)
183
184 #define PRUICSS_SA_MUX_MODE_SD_ENDAT (1U)
185
190 #define PRUICSS_NUM_SA_MUX_MODES (2U)
191
199 #define PRUICSS_ICSS_CFG_MII_MODE_MII (0U)
200
201 #define PRUICSS_ICSS_CFG_MII_MODE_RGMII (1U)
202
207 #define PRUICSS_NUM_ICSS_CFG_MII_MODES (2U)
208
215 #define PRUICSS_TX_L1_FIFO (0U)
216 #define PRUICSS_TX_L2_FIFO (1U)
217
220 typedef void (*PRUICSS_IrqHandler)(void* buf);
221
226 typedef struct PRUICSS_Config_s *PRUICSS_Handle;
227
228 /* ========================================================================== */
229 /* Structure Declarations */
230 /* ========================================================================== */
231
236 typedef struct PRUICSS_SysevtToChannelMap_s
237 {
238 uint8_t sysevt;
240 uint8_t channel;
242 uint8_t polarity;
244 uint8_t type;
246 } PRUICSS_SysevtToChannelMap;
247
252 typedef struct PRUICSS_ChannelToHostMap_s
253 {
254 int16_t channel;
256 int16_t host;
258 } PRUICSS_ChannelToHostMap;
259
264 typedef struct PRUICSS_IntcInitData_s
265 {
266 uint8_t sysevtsEnabled[PRUICSS_INTC_NUM_SYS_EVTS];
269 PRUICSS_SysevtToChannelMap sysevtToChannelMap[PRUICSS_INTC_NUM_SYS_EVTS];
272 PRUICSS_ChannelToHostMap channelToHostMap[PRUICSS_INTC_NUM_CHANNELS];
275 uint32_t hostEnableBitmask;
280 } PRUICSS_IntcInitData;
281
286 typedef struct PRUICSS_IrqFunMap_s
287 {
288 PRUICSS_IrqHandler irqHandler;
290 HwiP_Object hwiObj;
292 uint8_t waitEnable;
294 SemaphoreP_Object semObj;
296 PRUICSS_Handle pruicssHandle;
297 } PRUICSS_IrqFunMap;
298
306 typedef struct PRUICSS_Object_s
307 {
308 uint32_t pruicssVersion;
310 PRUICSS_IrqFunMap pruEvntOutFnMapArray[PRUICSS_INTC_NUM_HOST_INTERRUPTS];
311 /* IRQ Handler mapping structure for all host interrupts*/
312 } PRUICSS_Object;
313
322 typedef struct PRUICSS_HWAttrs
323 {
324 uint32_t instance;
325 uintptr_t baseAddr;
326 uintptr_t pru0CtrlRegBase;
327 uintptr_t pru1CtrlRegBase;
328 uintptr_t intcRegBase;
329 uintptr_t cfgRegBase;
330 uintptr_t uartRegBase;
331 uintptr_t iep0RegBase;
332 uintptr_t ecapRegBase;
333 uintptr_t miiRtCfgRegBase;
334 uintptr_t miiGRtCfgRegBase;
335 uintptr_t miiMdioRegBase;
336 uintptr_t pru0DramBase;
337 uintptr_t pru1DramBase;
338 uintptr_t pru0IramBase;
339 uintptr_t pru1IramBase;
340 uintptr_t sharedDramBase;
341 uint32_t pru0DramSize;
342 uint32_t pru1DramSize;
343 uint32_t pru0IramSize;
344 uint32_t pru1IramSize;
345 uint32_t sharedDramSize;
346 } PRUICSS_HwAttrs;
347
352 typedef struct PRUICSS_Config_s
353 {
354 PRUICSS_Object *object;
356 PRUICSS_HwAttrs const *hwAttrs;
358 } PRUICSS_Config;
359
360 /* ========================================================================== */
361 /* Function Declarations */
362 /* ========================================================================== */
363
369 int32_t PRUICSS_init(void);
370
376 int32_t PRUICSS_deinit(void);
377
385 PRUICSS_Handle PRUICSS_open(uint32_t instance);
386
394 int32_t PRUICSS_close(PRUICSS_Handle handle);
395
406 int32_t PRUICSS_intcInit(PRUICSS_Handle handle,
407 const PRUICSS_IntcInitData *intcInitData);
408
425 int32_t PRUICSS_registerIrqHandler(PRUICSS_Handle handle,
426 uint32_t pruEvtoutNum,
427 int32_t intrNum,
428 int32_t eventNum,
429 uint8_t waitEnable,
430 PRUICSS_IrqHandler irqHandler);
431
441 int32_t PRUICSS_resetCore(PRUICSS_Handle handle, uint8_t pruNum);
442
452 int32_t PRUICSS_disableCore(PRUICSS_Handle handle, uint8_t pruNum);
453
463 int32_t PRUICSS_enableCore(PRUICSS_Handle handle, uint8_t pruNum);
464
475 uint32_t PRUICSS_initMemory(PRUICSS_Handle handle, uint32_t pruicssMem);
476
490 uint32_t PRUICSS_writeMemory(PRUICSS_Handle handle,
491 uint32_t pruicssMem,
492 uint32_t wordoffset,
493 const uint32_t *source_mem,
494 uint32_t bytelength);
495
509 uint32_t PRUICSS_readMemory(PRUICSS_Handle handle,
510 uint32_t pruicssMem,
511 uint32_t wordoffset,
512 uint32_t *dest_mem,
513 uint32_t bytelength);
514
525 int32_t PRUICSS_sendEvent(PRUICSS_Handle handle, uint32_t eventnum);
526
537 int32_t PRUICSS_waitEvent(PRUICSS_Handle handle, uint32_t pruEvtoutNum);
538
549 int32_t PRUICSS_clearEvent(PRUICSS_Handle handle, uint32_t eventnum);
550
563 int32_t PRUICSS_sendWaitClearEvent(PRUICSS_Handle handle,
564 uint32_t sendEventNum,
565 uint32_t pruEvtoutNum,
566 uint32_t ackEventNum);
567
575 uint32_t PRUICSS_getVersion(PRUICSS_Handle handle);
576
590 int32_t PRUICSS_setConstantTblEntry(PRUICSS_Handle handle,
591 uint8_t pruNum,
592 int32_t constantTblEntry,
593 uint32_t constantTblVal);
594
605 int32_t PRUICSS_setIepClkSrc(PRUICSS_Handle handle, uint32_t source);
606
616 int32_t PRUICSS_setGpMuxSelect(PRUICSS_Handle handle, uint8_t pruNum, uint8_t mode);
617
627 int32_t PRUICSS_setGpiMode(PRUICSS_Handle handle, uint8_t pruNum, uint8_t mode);
628
629 /*TODO: Review this*/
638 int32_t PRUICSS_setSaMuxMode(PRUICSS_Handle handle, uint8_t mode);
639
650 int32_t PRUICSS_configureCycleCounter(PRUICSS_Handle handle, uint8_t pruNum, uint8_t enable);
651
661 int32_t PRUICSS_controlIepCounter(PRUICSS_Handle handle, uint8_t iepInstance, uint8_t enable);
662
673 int32_t PRUICSS_setIepCounterIncrementValue(PRUICSS_Handle handle, uint8_t iepInstance, uint8_t value);
674
684 int32_t PRUICSS_readEfuse(PRUICSS_Handle handle, uint8_t *data);
685
695 int32_t PRUICSS_setIcssCfgMiiMode(PRUICSS_Handle handle, uint8_t miiInstance, uint8_t mode);
696
706 int32_t PRUICSS_setIcssCfgTxFifo(PRUICSS_Handle handle, uint8_t fifoInstance, uint8_t enable);
707
715 const PRUICSS_HwAttrs *PRUICSS_getAttrs(uint32_t instance);
716
727 int32_t PRUICSS_loadFirmware(PRUICSS_Handle handle, uint8_t pruIcssCore, const uint32_t pruFirmware[], uint32_t byteLength);
728 /* ========================================================================== */
729 /* Global Variables */
730 /* ========================================================================== */
731
734 #ifdef __cplusplus
735 }
736 #endif
737
738 #endif /* #ifndef PRUICSS_H_ */
PRUICSS_clearEvent
int32_t PRUICSS_clearEvent(PRUICSS_Handle handle, uint32_t eventnum)
This function clears an INTC event. It should be called only after successful execution of PRUICSS_in...
PRUICSS_INTC_NUM_CHANNELS
#define PRUICSS_INTC_NUM_CHANNELS
Number of Output Interrupt channels supported in PRUICSS Local INTC.
Definition: pruicss/m_v0/pruicss.h:108
PRUICSS_SysevtToChannelMap::channel
uint8_t channel
Definition: pruicss/m_v0/pruicss.h:240
PRUICSS_SysevtToChannelMap::sysevt
uint8_t sysevt
Definition: pruicss/m_v0/pruicss.h:238
PRUICSS_HwAttrs::baseAddr
uintptr_t baseAddr
Definition: pruicss/m_v0/pruicss.h:325
PRUICSS_configureCycleCounter
int32_t PRUICSS_configureCycleCounter(PRUICSS_Handle handle, uint8_t pruNum, uint8_t enable)
This function enables/disables the PRU Cycle Counter for a core.
PRUICSS_HwAttrs::sharedDramBase
uintptr_t sharedDramBase
Definition: pruicss/m_v0/pruicss.h:340
PRUICSS_HwAttrs::iep0RegBase
uintptr_t iep0RegBase
Definition: pruicss/m_v0/pruicss.h:331
PRUICSS_resetCore
int32_t PRUICSS_resetCore(PRUICSS_Handle handle, uint8_t pruNum)
This function resets the PRU.
PRUICSS_SysevtToChannelMap::type
uint8_t type
Definition: pruicss/m_v0/pruicss.h:244
PRUICSS_sendWaitClearEvent
int32_t PRUICSS_sendWaitClearEvent(PRUICSS_Handle handle, uint32_t sendEventNum, uint32_t pruEvtoutNum, uint32_t ackEventNum)
This function generates an INTC event, waits for AINTC event and clears an INTC event.
SystemP.h
PRUICSS_Config::object
PRUICSS_Object * object
Definition: pruicss/m_v0/pruicss.h:354
PRUICSS_HwAttrs::pru1DramSize
uint32_t pru1DramSize
Definition: pruicss/m_v0/pruicss.h:342
PRUICSS_close
int32_t PRUICSS_close(PRUICSS_Handle handle)
This function deletes the handle for a PRUICSS instance.
PRUICSS_readMemory
uint32_t PRUICSS_readMemory(PRUICSS_Handle handle, uint32_t pruicssMem, uint32_t wordoffset, uint32_t *dest_mem, uint32_t bytelength)
This function reads from PRU memory and stores in block of memory.
PRUICSS_IrqFunMap::semObj
SemaphoreP_Object semObj
Definition: pruicss/m_v0/pruicss.h:294
PRUICSS_HwAttrs::ecapRegBase
uintptr_t ecapRegBase
Definition: pruicss/m_v0/pruicss.h:332
PRUICSS_HwAttrs::miiMdioRegBase
uintptr_t miiMdioRegBase
Definition: pruicss/m_v0/pruicss.h:335
PRUICSS_setGpiMode
int32_t PRUICSS_setGpiMode(PRUICSS_Handle handle, uint8_t pruNum, uint8_t mode)
This API sets the GPI mode for a specific PRU.
PRUICSS_HwAttrs::miiRtCfgRegBase
uintptr_t miiRtCfgRegBase
Definition: pruicss/m_v0/pruicss.h:333
PRUICSS_enableCore
int32_t PRUICSS_enableCore(PRUICSS_Handle handle, uint8_t pruNum)
This function enables the PRU.
SemaphoreP.h
PRUICSS_IntcInitData::hostEnableBitmask
uint32_t hostEnableBitmask
Definition: pruicss/m_v0/pruicss.h:275
PRUICSS_HwAttrs::pru1IramBase
uintptr_t pru1IramBase
Definition: pruicss/m_v0/pruicss.h:339
PRUICSS_setIcssCfgTxFifo
int32_t PRUICSS_setIcssCfgTxFifo(PRUICSS_Handle handle, uint8_t fifoInstance, uint8_t enable)
This API configures the TX FIFO to be used.
PRUICSS_IrqFunMap::waitEnable
uint8_t waitEnable
Definition: pruicss/m_v0/pruicss.h:292
PRUICSS_HwAttrs::pru0DramSize
uint32_t pru0DramSize
Definition: pruicss/m_v0/pruicss.h:341
PRUICSS_init
int32_t PRUICSS_init(void)
This function initializes the PRUICSS module.
PRUICSS_setIcssCfgMiiMode
int32_t PRUICSS_setIcssCfgMiiMode(PRUICSS_Handle handle, uint8_t miiInstance, uint8_t mode)
This API sets the MII mode in MII_G_RT_ICSS_M_CFG register.
PRUICSS_HwAttrs::sharedDramSize
uint32_t sharedDramSize
Definition: pruicss/m_v0/pruicss.h:345
PRUICSS_HwAttrs::pru1DramBase
uintptr_t pru1DramBase
Definition: pruicss/m_v0/pruicss.h:337
PRUICSS_deinit
int32_t PRUICSS_deinit(void)
This function de-initializes the PRUICSS module.
PRUICSS_setIepCounterIncrementValue
int32_t PRUICSS_setIepCounterIncrementValue(PRUICSS_Handle handle, uint8_t iepInstance, uint8_t value)
This API sets the default increment value for counter in IEP module. This value is used when compensa...
HwiP.h
PRUICSS_HwAttrs
PRUICSS Hardware Attributes.
Definition: pruicss/m_v0/pruicss.h:323
PRUICSS_HwAttrs::pru1IramSize
uint32_t pru1IramSize
Definition: pruicss/m_v0/pruicss.h:344
PRUICSS_disableCore
int32_t PRUICSS_disableCore(PRUICSS_Handle handle, uint8_t pruNum)
This function disables the PRU.
PRUICSS_HwAttrs::pru0IramBase
uintptr_t pru0IramBase
Definition: pruicss/m_v0/pruicss.h:338
PRUICSS_IrqFunMap::hwiObj
HwiP_Object hwiObj
Definition: pruicss/m_v0/pruicss.h:290
PRUICSS_setSaMuxMode
int32_t PRUICSS_setSaMuxMode(PRUICSS_Handle handle, uint8_t mode)
This API sets the G_MUX_EN mux field in SA_MX_REG register.
PRUICSS_HwAttrs::pru0DramBase
uintptr_t pru0DramBase
Definition: pruicss/m_v0/pruicss.h:336
PRUICSS_HwAttrs::cfgRegBase
uintptr_t cfgRegBase
Definition: pruicss/m_v0/pruicss.h:329
PRUICSS_HwAttrs::intcRegBase
uintptr_t intcRegBase
Definition: pruicss/m_v0/pruicss.h:328
PRUICSS_setGpMuxSelect
int32_t PRUICSS_setGpMuxSelect(PRUICSS_Handle handle, uint8_t pruNum, uint8_t mode)
This API sets the GP Mux Select mode for a specific PRU.
PRUICSS_getVersion
uint32_t PRUICSS_getVersion(PRUICSS_Handle handle)
Get PRUICSS version number from ICSSCFG_REVID register.
PRUICSS_open
PRUICSS_Handle PRUICSS_open(uint32_t instance)
This function creates the handle for a PRUICSS instance.
PRUICSS_Config::hwAttrs
PRUICSS_HwAttrs const * hwAttrs
Definition: pruicss/m_v0/pruicss.h:356
PRUICSS_getAttrs
const PRUICSS_HwAttrs * PRUICSS_getAttrs(uint32_t instance)
Return PRUICSS attributes.
PRUICSS_Config
PRUICSS Global configuration structure.
Definition: pruicss/m_v0/pruicss.h:353
PRUICSS_HwAttrs::pru0CtrlRegBase
uintptr_t pru0CtrlRegBase
Definition: pruicss/m_v0/pruicss.h:326
PRUICSS_Object::pruicssVersion
uint32_t pruicssVersion
Definition: pruicss/m_v0/pruicss.h:308
PRUICSS_IrqFunMap::irqHandler
PRUICSS_IrqHandler irqHandler
Definition: pruicss/m_v0/pruicss.h:288
PRUICSS_waitEvent
int32_t PRUICSS_waitEvent(PRUICSS_Handle handle, uint32_t pruEvtoutNum)
This function waits for a system event to happen. It should be called only after successful execution...
PRUICSS_initMemory
uint32_t PRUICSS_initMemory(PRUICSS_Handle handle, uint32_t pruicssMem)
This function initializes the PRU memory to zero.
PRUICSS_IntcInitData
PRUICSS Interrupt controller initialisation data structure.
Definition: pruicss/m_v0/pruicss.h:265
PRUICSS_HwAttrs::instance
uint32_t instance
Definition: pruicss/m_v0/pruicss.h:324
PRUICSS_SysevtToChannelMap::polarity
uint8_t polarity
Definition: pruicss/m_v0/pruicss.h:242
PRUICSS_ChannelToHostMap::channel
int16_t channel
Definition: pruicss/m_v0/pruicss.h:254
PRUICSS_INTC_NUM_HOST_INTERRUPTS
#define PRUICSS_INTC_NUM_HOST_INTERRUPTS
Number of Host Interrupts supported in PRUICSS Local INTC.
Definition: pruicss/m_v0/pruicss.h:103
PRUICSS_ChannelToHostMap
Data structure used for channel to host map in PRUICSS.
Definition: pruicss/m_v0/pruicss.h:253
HwiP_Object
Opaque Hwi object used with the Hwi APIs.
Definition: HwiP.h:142
PRUICSS_setConstantTblEntry
int32_t PRUICSS_setConstantTblEntry(PRUICSS_Handle handle, uint8_t pruNum, int32_t constantTblEntry, uint32_t constantTblVal)
This API updates the constant table for specified constant table entry which have write permissions.
PRUICSS_loadFirmware
int32_t PRUICSS_loadFirmware(PRUICSS_Handle handle, uint8_t pruIcssCore, const uint32_t pruFirmware[], uint32_t byteLength)
This API disables pruIcssCore, loads IMEM, resets pruIcssCore, enables pruIcssCore.
PRUICSS_readEfuse
int32_t PRUICSS_readEfuse(PRUICSS_Handle handle, uint8_t *data)
This API reads the state of efuse bits from HWDIS_REG register.
PRUICSS_ChannelToHostMap::host
int16_t host
Definition: pruicss/m_v0/pruicss.h:256
PRUICSS_INTC_NUM_SYS_EVTS
#define PRUICSS_INTC_NUM_SYS_EVTS
Number of Events that can be captured in PRUICSS Local INTC.
Definition: pruicss/m_v0/pruicss.h:113
PRUICSS_Object
PRUICSS Object.
Definition: pruicss/m_v0/pruicss.h:307
PRUICSS_HwAttrs::miiGRtCfgRegBase
uintptr_t miiGRtCfgRegBase
Definition: pruicss/m_v0/pruicss.h:334
PRUICSS_IrqFunMap
PRUICSS IRQ handler mapping structure.
Definition: pruicss/m_v0/pruicss.h:287
PRUICSS_IrqHandler
void(* PRUICSS_IrqHandler)(void *buf)
Definition: pruicss/m_v0/pruicss.h:220
PRUICSS_HwAttrs::pru0IramSize
uint32_t pru0IramSize
Definition: pruicss/m_v0/pruicss.h:343
PRUICSS_setIepClkSrc
int32_t PRUICSS_setIepClkSrc(PRUICSS_Handle handle, uint32_t source)
This API configures the source of the IEP clock to be either IEP CLK as the source or ICSSM CORE CLK.
PRUICSS_sendEvent
int32_t PRUICSS_sendEvent(PRUICSS_Handle handle, uint32_t eventnum)
This function generates an INTC event. It should be called only after successful execution of PRUICSS...
PRUICSS_intcInit
int32_t PRUICSS_intcInit(PRUICSS_Handle handle, const PRUICSS_IntcInitData *intcInitData)
This function does Interrupt-Channel-host mapping.
PRUICSS_SysevtToChannelMap
Data structure used for system event to channel mapping in PRUICSS.
Definition: pruicss/m_v0/pruicss.h:237
PRUICSS_writeMemory
uint32_t PRUICSS_writeMemory(PRUICSS_Handle handle, uint32_t pruicssMem, uint32_t wordoffset, const uint32_t *source_mem, uint32_t bytelength)
This function writes the given data to PRU memory.
PRUICSS_controlIepCounter
int32_t PRUICSS_controlIepCounter(PRUICSS_Handle handle, uint8_t iepInstance, uint8_t enable)
This API enables/disables the counter in IEP module.
PRUICSS_HwAttrs::uartRegBase
uintptr_t uartRegBase
Definition: pruicss/m_v0/pruicss.h:330
PRUICSS_Handle
struct PRUICSS_Config_s * PRUICSS_Handle
A handle that is returned from a PRUICSS_open() call. This handle is required for calling other APIs.
Definition: pruicss/m_v0/pruicss.h:226
PRUICSS_IrqFunMap::pruicssHandle
PRUICSS_Handle pruicssHandle
Definition: pruicss/m_v0/pruicss.h:296
PRUICSS_HwAttrs::pru1CtrlRegBase
uintptr_t pru1CtrlRegBase
Definition: pruicss/m_v0/pruicss.h:327
PRUICSS_registerIrqHandler
int32_t PRUICSS_registerIrqHandler(PRUICSS_Handle handle, uint32_t pruEvtoutNum, int32_t intrNum, int32_t eventNum, uint8_t waitEnable, PRUICSS_IrqHandler irqHandler)
This function registers an Interrupt Handler for an event.