Разделил протокол на CPU1 b CPU2
This commit is contained in:
parent
186bc8a6ef
commit
fe71486eae
@ -121,7 +121,7 @@ uint16_t j = 0;
|
||||
//
|
||||
// Function to send data over I2C.
|
||||
//
|
||||
void I2CWrite(uint16_t slaveAddr, uint16_t byteCount, bool sendStopCondition, uint16_t * I2C_TXdata)
|
||||
void I2CWrite(uint16_t slaveAddr, uint16_t byteCount, bool sendStopCondition, char * I2C_TXdata)
|
||||
{
|
||||
|
||||
//
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
void I2CMasterInit(uint16_t I2CSlave_OwnAddress, uint16_t I2CSlave_Address);
|
||||
void I2CWrite(uint16_t slaveAddr, uint16_t byteCount, bool sendStopCondition, uint16_t * I2C_TXdata);
|
||||
void I2CWrite(uint16_t slaveAddr, uint16_t byteCount, bool sendStopCondition, char * I2C_TXdata);
|
||||
uint16_t I2CRead(uint16_t slaveAddr, uint16_t byteCount, bool sendStopCondition, uint16_t * I2C_RXdata);
|
||||
uint16_t I2CWriteRead(uint16_t slaveAddr, uint16_t byteCount, bool sendStopCondition, uint16_t * I2C_RXdata);
|
||||
void I2CMasterGpioInit(void);
|
||||
|
@ -14,7 +14,11 @@
|
||||
#include "ipc.h"
|
||||
#include "flash_programming_f2838x_c28x.h"
|
||||
#include "internal_flash.h"
|
||||
|
||||
#ifdef CPU1
|
||||
#include "ZD24C02A.h"
|
||||
#include "BL25CM1A.h"
|
||||
#include "GD25Q16ETIGR.h"
|
||||
#endif
|
||||
//#pragma DATA_SECTION(readData, "MSGRAM_CPU_TO_CM")
|
||||
//uint32_t readData[10];
|
||||
|
||||
@ -167,9 +171,13 @@ void getMessage_from_Cm_Flash(void)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifdef CPU1
|
||||
void getMessage_from_Cm_EMIF(void)
|
||||
{
|
||||
if(InData > 2048) {IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, WRONG_LENGHT, 0, 0); return;}
|
||||
if((InAddr+InData) > 0x100000) {IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, WRONG_ADDR, 0, 0); return;}
|
||||
IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, COMMAND_ACCEPTED, 0, 0);
|
||||
|
||||
switch(InCommand >> 16)
|
||||
{
|
||||
case READ:
|
||||
@ -191,6 +199,10 @@ void getMessage_from_Cm_EMIF(void)
|
||||
|
||||
void getMessage_from_Cm_BL25CM1A(void)
|
||||
{
|
||||
if(InData > 2048) {IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, WRONG_LENGHT, 0, 0); return;}
|
||||
if((InAddr+InData) > 0x10000) {IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, WRONG_ADDR, 0, 0); return;}
|
||||
IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, COMMAND_ACCEPTED, 0, 0);
|
||||
|
||||
switch(InCommand >> 16)
|
||||
{
|
||||
case READ:
|
||||
@ -212,6 +224,10 @@ void getMessage_from_Cm_BL25CM1A(void)
|
||||
|
||||
void getMessage_from_Cm_GD25Q16E(void)
|
||||
{
|
||||
if(InData > 2048) {IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, WRONG_LENGHT, 0, 0); return;}
|
||||
if((InAddr+InData) > 0x100000) {IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, WRONG_ADDR, 0, 0); return;}
|
||||
IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, COMMAND_ACCEPTED, 0, 0);
|
||||
|
||||
switch(InCommand >> 16)
|
||||
{
|
||||
case READ:
|
||||
@ -233,13 +249,17 @@ void getMessage_from_Cm_GD25Q16E(void)
|
||||
|
||||
void getMessage_from_Cm_ZD24C02A(void)
|
||||
{
|
||||
if(InData > 2048) {IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, WRONG_LENGHT, 0, 0); return;}
|
||||
if((InAddr+InData) > 0x80) {IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, WRONG_ADDR, 0, 0); return;}
|
||||
IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, COMMAND_ACCEPTED, 0, 0);
|
||||
|
||||
switch(InCommand >> 16)
|
||||
{
|
||||
case READ:
|
||||
|
||||
ZD24C02A_read(InData, (char *)CPUXTOCMMSGRAM0_BASE);
|
||||
break;
|
||||
case WRITE:
|
||||
//ZD24C02A_write(NByte, ArrayForTests);
|
||||
ZD24C02A_write(InData, (char *)CMTOCPUXMSGRAM0_BASE);
|
||||
break;
|
||||
case VERIFY:
|
||||
|
||||
@ -251,7 +271,7 @@ void getMessage_from_Cm_ZD24C02A(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
__interrupt void IPC_ISR0()
|
||||
{
|
||||
@ -262,6 +282,7 @@ __interrupt void IPC_ISR0()
|
||||
case Flash:
|
||||
getMessage_from_Cm_Flash();
|
||||
break;
|
||||
#ifdef CPU1
|
||||
case EMIF:
|
||||
getMessage_from_Cm_EMIF();
|
||||
break;
|
||||
@ -274,33 +295,36 @@ __interrupt void IPC_ISR0()
|
||||
case ZD24C02A_2K_I2C:
|
||||
getMessage_from_Cm_ZD24C02A();
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, WRONG_COMMAND, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
IPC_ackFlagRtoL(IPC_CPU1_L_CM_R, (1<<0));
|
||||
PieCtrlRegs.PIEACK.all = PIEACK_GROUP11;
|
||||
}
|
||||
|
||||
|
||||
__interrupt void IPC_ISR1()
|
||||
{
|
||||
//__interrupt void IPC_ISR1()
|
||||
//{
|
||||
|
||||
// getMessage_from_Cm();
|
||||
|
||||
|
||||
if(WriteToCm != 2)
|
||||
{
|
||||
// if(WriteToCm != 2)
|
||||
// {
|
||||
//putMessage_to_Cm();
|
||||
//IPC_sendCommand(IPC_CPU1_L_CM_R, 0, 0, Command, Address, Data);
|
||||
}
|
||||
else WriteToCm = 0;
|
||||
// }
|
||||
// else WriteToCm = 0;
|
||||
//
|
||||
// Acknowledge the flag
|
||||
//
|
||||
IPC_ackFlagRtoL(IPC_CPU1_L_CM_R, (1<<1));
|
||||
PieCtrlRegs.PIEACK.all = PIEACK_GROUP11;
|
||||
}
|
||||
// IPC_ackFlagRtoL(IPC_CPU1_L_CM_R, (1<<1));
|
||||
// PieCtrlRegs.PIEACK.all = PIEACK_GROUP11;
|
||||
//}
|
||||
|
||||
|
||||
void ipc_init(void)
|
||||
@ -312,13 +336,13 @@ void ipc_init(void)
|
||||
|
||||
EALLOW;
|
||||
PieVectTable.CMTOCPUXIPC0_INT = &IPC_ISR0;
|
||||
PieVectTable.CMTOCPUXIPC1_INT = &IPC_ISR1;
|
||||
// PieVectTable.CMTOCPUXIPC1_INT = &IPC_ISR1;
|
||||
EDIS;
|
||||
|
||||
|
||||
IER |= M_INT11;
|
||||
PieCtrlRegs.PIEIER11.bit.INTx9 = 1;
|
||||
PieCtrlRegs.PIEIER11.bit.INTx10 = 1;
|
||||
// PieCtrlRegs.PIEIER11.bit.INTx10 = 1;
|
||||
|
||||
//
|
||||
// Initialize message queue
|
||||
|
Loading…
Reference in New Issue
Block a user