Initial public release.
This commit is contained in:
parent
7b169e8116
commit
dac4af8d25
255 changed files with 68595 additions and 2 deletions
297
2020TPCApp1.cydsn/debug.c
Normal file
297
2020TPCApp1.cydsn/debug.c
Normal file
|
@ -0,0 +1,297 @@
|
|||
/*******************************************************************************
|
||||
* File Name: debug.c
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Description:
|
||||
* This file contains functions for printf functionality.
|
||||
*
|
||||
* Hardware Dependency:
|
||||
* CY8CKIT-062 PSoC6 BLE Pioneer Kit
|
||||
*
|
||||
********************************************************************************
|
||||
* Copyright 2017, Cypress Semiconductor Corporation. All rights reserved.
|
||||
* You may use this file only in accordance with the license, terms, conditions,
|
||||
* disclaimers, and limitations in the end user license agreement accompanying
|
||||
* the software package with which this file was provided.
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
#include "common.h"
|
||||
#include "user_interface.h"
|
||||
|
||||
#if (DEBUG_UART_ENABLED == ENABLED)
|
||||
|
||||
#if defined(__ARMCC_VERSION)
|
||||
|
||||
/* For MDK/RVDS compiler revise fputc function for printf functionality */
|
||||
struct __FILE
|
||||
{
|
||||
int handle;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
STDIN_HANDLE,
|
||||
STDOUT_HANDLE,
|
||||
STDERR_HANDLE
|
||||
};
|
||||
|
||||
FILE __stdin = {STDIN_HANDLE};
|
||||
FILE __stdout = {STDOUT_HANDLE};
|
||||
FILE __stderr = {STDERR_HANDLE};
|
||||
|
||||
int fputc(int ch, FILE *file)
|
||||
{
|
||||
int ret = EOF;
|
||||
|
||||
switch( file->handle )
|
||||
{
|
||||
case STDOUT_HANDLE:
|
||||
UART_DEB_PUT_CHAR(ch);
|
||||
ret = ch ;
|
||||
break ;
|
||||
|
||||
case STDERR_HANDLE:
|
||||
ret = ch ;
|
||||
break ;
|
||||
|
||||
default:
|
||||
file = file;
|
||||
break ;
|
||||
}
|
||||
return ret ;
|
||||
}
|
||||
|
||||
#elif defined (__ICCARM__) /* IAR */
|
||||
|
||||
/* For IAR compiler revise __write() function for printf functionality */
|
||||
size_t __write(int handle, const unsigned char * buffer, size_t size)
|
||||
{
|
||||
size_t nChars = 0;
|
||||
|
||||
if (buffer == 0)
|
||||
{
|
||||
/*
|
||||
* This means that we should flush internal buffers. Since we
|
||||
* don't we just return. (Remember, "handle" == -1 means that all
|
||||
* handles should be flushed.)
|
||||
*/
|
||||
return (0);
|
||||
}
|
||||
|
||||
for (/* Empty */; size != 0; --size)
|
||||
{
|
||||
UART_DEB_PUT_CHAR(*buffer);
|
||||
++buffer;
|
||||
++nChars;
|
||||
}
|
||||
|
||||
return (nChars);
|
||||
}
|
||||
|
||||
#else /* (__GNUC__) GCC */
|
||||
|
||||
/* For GCC compiler revise _write() function for printf functionality */
|
||||
int _write(int file, char *ptr, int len)
|
||||
{
|
||||
int i;
|
||||
file = file;
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
UART_DEB_PUT_CHAR(*ptr);
|
||||
++ptr;
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
|
||||
#endif /* (__ARMCC_VERSION) */
|
||||
|
||||
#endif /* DEBUG_UART_ENABLED == ENABLED */
|
||||
|
||||
void ShowValue(cy_stc_ble_gatt_value_t *value)
|
||||
{
|
||||
int16_t i;
|
||||
|
||||
for(i = 0; i < value->len; i++)
|
||||
{
|
||||
DBG_PRINTF("%2.2x ", value->val[i]);
|
||||
}
|
||||
DBG_PRINTF("\r\n");
|
||||
}
|
||||
|
||||
|
||||
void Set32ByPtr(uint8_t ptr[], uint32_t value)
|
||||
{
|
||||
ptr[0u] = (uint8_t) value;
|
||||
ptr[1u] = (uint8_t) (value >> 8u);
|
||||
ptr[2u] = (uint8_t) (value >> 16u);
|
||||
ptr[3u] = (uint8_t) (value >> 24u);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name: ShowError
|
||||
********************************************************************************
|
||||
*
|
||||
* Summary:
|
||||
* Shows error condition: Turn On all LEDs - white color will indicate error.
|
||||
*
|
||||
*******************************************************************************/
|
||||
void ShowError(void)
|
||||
{
|
||||
EnableAllLeds();
|
||||
|
||||
/* Halt CPU in Debug mode */
|
||||
CY_ASSERT(0u != 0u);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name: HexToAscii
|
||||
********************************************************************************
|
||||
*
|
||||
* Summary:
|
||||
* Hexadecimal to ASCII converter
|
||||
*
|
||||
* Parameters:
|
||||
* value: Hexadecimal value
|
||||
* digit: Which nibble to be obtained
|
||||
*
|
||||
* Return:
|
||||
* char: the ASCII equivalent of that nibble
|
||||
*
|
||||
* Theory:
|
||||
* Converts hexadecimal to ASCII
|
||||
*
|
||||
*******************************************************************************/
|
||||
char HexToAscii(uint8_t value, uint8_t nibble)
|
||||
{
|
||||
if(nibble == 1)
|
||||
{
|
||||
value = value & 0xf0;
|
||||
value = value >> 4;
|
||||
|
||||
/* bit-shift the result to the right by four bits (i.e. quickly divides by 16) */
|
||||
if (value > 9)
|
||||
{
|
||||
value = value - 10 + 'A';
|
||||
}
|
||||
else
|
||||
{
|
||||
value = value + '0';
|
||||
}
|
||||
}
|
||||
else if (nibble == 0)
|
||||
{
|
||||
/* means use a bitwise AND to take the bottom four bits from the byte,
|
||||
0x0F is 00001111 in binary */
|
||||
value = value & 0x0F;
|
||||
if (value > 9)
|
||||
{
|
||||
value = value - 10 + 'A';
|
||||
}
|
||||
else
|
||||
{
|
||||
value = value + '0';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
value = ' ';
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name: PrintStackVersion
|
||||
********************************************************************************
|
||||
*
|
||||
* Summary:
|
||||
* Prints the BLE Stack version if the PRINT_STACK_VERSION is defined.
|
||||
*
|
||||
*******************************************************************************/
|
||||
void PrintStackVersion(void)
|
||||
{
|
||||
cy_stc_ble_stack_lib_version_t stackVersion;
|
||||
cy_en_ble_api_result_t apiResult;
|
||||
|
||||
apiResult = Cy_BLE_GetStackLibraryVersion(&stackVersion);
|
||||
if(apiResult != CY_BLE_SUCCESS)
|
||||
{
|
||||
DBG_PRINTF("Cy_BLE_GetStackLibraryVersion API Error: ");
|
||||
PrintApiResult(apiResult);
|
||||
}
|
||||
else
|
||||
{
|
||||
DBG_PRINTF("BLE Stack Version: %d.%d.%d.%d\r\n", stackVersion.majorVersion,
|
||||
stackVersion.minorVersion,
|
||||
stackVersion.patch,
|
||||
stackVersion.buildNumber);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name: PrintApiResult
|
||||
********************************************************************************
|
||||
*
|
||||
* Summary:
|
||||
* Decodes and prints the apiResult global variable value.
|
||||
*
|
||||
*******************************************************************************/
|
||||
void PrintApiResult(cy_en_ble_api_result_t apiResult)
|
||||
{
|
||||
DBG_PRINTF("0x%2.2x ", apiResult);
|
||||
|
||||
switch(apiResult)
|
||||
{
|
||||
case CY_BLE_SUCCESS:
|
||||
DBG_PRINTF("ok\r\n");
|
||||
break;
|
||||
|
||||
case CY_BLE_ERROR_INVALID_PARAMETER:
|
||||
DBG_PRINTF("invalid parameter\r\n");
|
||||
break;
|
||||
|
||||
case CY_BLE_ERROR_INVALID_OPERATION:
|
||||
DBG_PRINTF("invalid operation\r\n");
|
||||
break;
|
||||
|
||||
case CY_BLE_ERROR_NO_DEVICE_ENTITY:
|
||||
DBG_PRINTF("no device entity\r\n");
|
||||
break;
|
||||
|
||||
case CY_BLE_ERROR_NTF_DISABLED:
|
||||
DBG_PRINTF("notification is disabled\r\n");
|
||||
break;
|
||||
|
||||
case CY_BLE_ERROR_IND_DISABLED:
|
||||
DBG_PRINTF("indication is disabled\r\n");
|
||||
break;
|
||||
|
||||
case CY_BLE_ERROR_CHAR_IS_NOT_DISCOVERED:
|
||||
DBG_PRINTF("characteristic is not discovered\r\n");
|
||||
break;
|
||||
|
||||
case CY_BLE_ERROR_INVALID_STATE:
|
||||
DBG_PRINTF("invalid state");
|
||||
break;
|
||||
|
||||
case CY_BLE_ERROR_GATT_DB_INVALID_ATTR_HANDLE:
|
||||
DBG_PRINTF("invalid attribute handle\r\n");
|
||||
break;
|
||||
|
||||
case CY_BLE_ERROR_FLASH_WRITE_NOT_PERMITED:
|
||||
DBG_PRINTF("flash write not permitted\r\n");
|
||||
break;
|
||||
|
||||
default:
|
||||
DBG_PRINTF("other api result\r\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* [] END OF FILE */
|
Loading…
Add table
Add a link
Reference in a new issue