Use -pedantic compile time option to find and correct several minor code errors.
This commit is contained in:
		
							parent
							
								
									307ba254d5
								
							
						
					
					
						commit
						3705330dd3
					
				
					 16 changed files with 121 additions and 66 deletions
				
			
		| 
						 | 
				
			
			@ -218,7 +218,14 @@ static void PDIProtocol_ReadMemory(void)
 | 
			
		|||
	Endpoint_ClearOUT();
 | 
			
		||||
	Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN);
 | 
			
		||||
	
 | 
			
		||||
	// TODO: Send read command here via PDI protocol
 | 
			
		||||
	if (ReadMemory_XPROG_Params.MemoryType == XPRG_MEM_TYPE_USERSIG)
 | 
			
		||||
	{
 | 
			
		||||
		PDITarget_SendByte(PDI_CMD_STS | (PDI_DATSIZE_1BYTE << 2));
 | 
			
		||||
		PDITarget_SendAddress(DATAMEM_BASE | DATAMEM_NVM_CMD);
 | 
			
		||||
		PDITarget_SendByte(NVM_CMD_READUSERSIG);
 | 
			
		||||
 | 
			
		||||
		
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	Endpoint_Write_Byte(CMD_XPROG);
 | 
			
		||||
	Endpoint_Write_Byte(XPRG_CMD_READ_MEM);
 | 
			
		||||
| 
						 | 
				
			
			@ -233,15 +240,46 @@ static void PDIProtocol_ReadMemory(void)
 | 
			
		|||
static void PDIProtocol_ReadCRC(void)
 | 
			
		||||
{
 | 
			
		||||
	uint8_t ReturnStatus = XPRG_ERR_OK;
 | 
			
		||||
 | 
			
		||||
	uint8_t CRCType = Endpoint_Read_Byte();
 | 
			
		||||
	
 | 
			
		||||
	struct
 | 
			
		||||
	{
 | 
			
		||||
		uint8_t CRCType;
 | 
			
		||||
	} ReadCRC_XPROG_Params;
 | 
			
		||||
	
 | 
			
		||||
	Endpoint_Read_Stream_LE(&ReadCRC_XPROG_Params, sizeof(ReadCRC_XPROG_Params));
 | 
			
		||||
	Endpoint_ClearOUT();
 | 
			
		||||
	Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN);
 | 
			
		||||
	
 | 
			
		||||
	uint32_t MemoryCRC = 0;
 | 
			
		||||
	uint8_t  CRCReadCommand;
 | 
			
		||||
 | 
			
		||||
	if (ReadCRC_XPROG_Params.CRCType == XPRG_CRC_APP)
 | 
			
		||||
	  CRCReadCommand = NVM_CMD_APPCRC;
 | 
			
		||||
	else if (ReadCRC_XPROG_Params.CRCType == XPRG_CRC_BOOT)
 | 
			
		||||
	  CRCReadCommand = NVM_CMD_BOOTCRC;
 | 
			
		||||
	else
 | 
			
		||||
	  CRCReadCommand = NVM_CMD_FLASHCRC;
 | 
			
		||||
	
 | 
			
		||||
	// TODO: Read device CRC for desired memory via PDI protocol
 | 
			
		||||
	/* Set the NVM command to the correct CRC read command */
 | 
			
		||||
	PDITarget_SendByte(PDI_CMD_STS | (PDI_DATSIZE_1BYTE << 2));
 | 
			
		||||
	PDITarget_SendAddress(DATAMEM_BASE | DATAMEM_NVM_CMD);
 | 
			
		||||
	PDITarget_SendByte(CRCReadCommand);
 | 
			
		||||
 | 
			
		||||
	/* Set CMDEX bit in NVM CTRLA register to start the CRC generation */
 | 
			
		||||
	PDITarget_SendByte(PDI_CMD_STS | (PDI_DATSIZE_1BYTE << 2));
 | 
			
		||||
	PDITarget_SendAddress(DATAMEM_BASE | DATAMEM_NVM_CTRLA);
 | 
			
		||||
	PDITarget_SendByte(1 << 0);
 | 
			
		||||
 | 
			
		||||
	/* Wait until the NVM bus and controller is no longer busy */
 | 
			
		||||
	PDITarget_WaitWhileNVMBusBusy();
 | 
			
		||||
	PDITarget_WaitWhileNVMControllerBusy();
 | 
			
		||||
	
 | 
			
		||||
	/* Read the three byte generated CRC value */
 | 
			
		||||
	PDITarget_SendByte(PDI_CMD_LDS | (PDI_DATSIZE_3BYTES << 2));
 | 
			
		||||
	PDITarget_SendAddress(DATAMEM_BASE | DATAMEM_NVM_DAT0);
 | 
			
		||||
	MemoryCRC  = PDITarget_ReceiveByte();
 | 
			
		||||
	MemoryCRC |= ((uint16_t)PDITarget_ReceiveByte() << 8);
 | 
			
		||||
	MemoryCRC |= ((uint32_t)PDITarget_ReceiveByte() << 16);
 | 
			
		||||
	
 | 
			
		||||
	Endpoint_Write_Byte(CMD_XPROG);
 | 
			
		||||
	Endpoint_Write_Byte(XPRG_CMD_CRC);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -304,7 +304,7 @@ void PDITarget_WaitWhileNVMControllerBusy(void)
 | 
			
		|||
	for (;;)
 | 
			
		||||
	{
 | 
			
		||||
		PDITarget_SendByte(PDI_CMD_LDS | (PDI_DATSIZE_1BYTE << 2));
 | 
			
		||||
		PDITarget_SendAddress(DATAMEM_BASE | DATAMEM_NVM_BASE | 0x0F);
 | 
			
		||||
		PDITarget_SendAddress(DATAMEM_BASE | DATAMEM_NVM_STATUS);
 | 
			
		||||
		
 | 
			
		||||
		if (!(PDITarget_ReceiveByte() & (1 << 7)))
 | 
			
		||||
		  return;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,6 +104,23 @@
 | 
			
		|||
		#define USER_SIGNATURE_BASE      0x008E0400
 | 
			
		||||
		
 | 
			
		||||
		#define DATAMEM_NVM_BASE         0x01C0
 | 
			
		||||
		#define DATAMEM_NVM_ADDR0        (DATAMEM_NVM_BASE | 0x00)
 | 
			
		||||
		#define DATAMEM_NVM_ADDR1        (DATAMEM_NVM_BASE | 0x01)
 | 
			
		||||
		#define DATAMEM_NVM_ADDR2        (DATAMEM_NVM_BASE | 0x02)
 | 
			
		||||
		#define DATAMEM_NVM_DAT0         (DATAMEM_NVM_BASE | 0x04)
 | 
			
		||||
		#define DATAMEM_NVM_DAT1         (DATAMEM_NVM_BASE | 0x05)
 | 
			
		||||
		#define DATAMEM_NVM_DAT2         (DATAMEM_NVM_BASE | 0x06)
 | 
			
		||||
		#define DATAMEM_NVM_CMD          (DATAMEM_NVM_BASE | 0x0A)
 | 
			
		||||
		#define DATAMEM_NVM_CTRLA        (DATAMEM_NVM_BASE | 0x0B)
 | 
			
		||||
		#define DATAMEM_NVM_CTRLB        (DATAMEM_NVM_BASE | 0x0C)
 | 
			
		||||
		#define DATAMEM_NVM_INTCTRL      (DATAMEM_NVM_BASE | 0x0D)
 | 
			
		||||
		#define DATAMEM_NVM_STATUS       (DATAMEM_NVM_BASE | 0x0F)
 | 
			
		||||
		#define DATAMEM_NVM_LOCKBITS     (DATAMEM_NVM_BASE | 0x10)
 | 
			
		||||
		
 | 
			
		||||
		#define NVM_CMD_APPCRC           0x38
 | 
			
		||||
		#define NVM_CMD_BOOTCRC          0x39
 | 
			
		||||
		#define NVM_CMD_FLASHCRC         0x78
 | 
			
		||||
		#define NVM_CMD_READUSERSIG      0x03
 | 
			
		||||
				
 | 
			
		||||
	/* Function Prototypes: */
 | 
			
		||||
		void    PDITarget_EnableTargetPDI(void);
 | 
			
		||||
| 
						 | 
				
			
			@ -112,8 +129,8 @@
 | 
			
		|||
		uint8_t PDITarget_ReceiveByte(void);
 | 
			
		||||
		void    PDITarget_SendBreak(void);
 | 
			
		||||
		
 | 
			
		||||
		void PDITarget_SendAddress(uint32_t Address);
 | 
			
		||||
		bool PDITarget_WaitWhileNVMBusBusy(void);
 | 
			
		||||
		void PDITarget_WaitWhileNVMControllerBusy(void);
 | 
			
		||||
		void    PDITarget_SendAddress(uint32_t Address);
 | 
			
		||||
		bool    PDITarget_WaitWhileNVMBusBusy(void);
 | 
			
		||||
		void    PDITarget_WaitWhileNVMControllerBusy(void);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue