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