Причёсываю код помаленьку.
Добился, казалось, невозможного - всего 3 предупреждения при сборке!
Код:
[cc] E:\Repositories\ARMaDa\FirmWare\trunk\Projects\LaserTag\ARMada_from_git\rtos_103_SDIO_FAT_complite\main.c:2916:3: warning: implicit declaration of function 'memmem' [-Wimplicit-function-declaration]
[cc] if (memmem(record,record_len,parametersPointers[index],param_len)!='\0'/*NULL*/)
[cc] E:\Repositories\ARMaDa\FirmWare\trunk\Projects\LaserTag\ARMada_from_git\rtos_103_SDIO_FAT_complite\FATFS\src\option\syscall.c:15:1: warning: "/*" within comment [-Wcomment]
[cc] ^
[cc] // ret = TRUE; /* uITRON (nothing to do) */
[cc] E:\Repositories\ARMaDa\FirmWare\trunk\Projects\LaserTag\ARMada_from_git\rtos_103_SDIO_FAT_complite\FATFS\src\option\syscall.c:61:20: warning: "/*" within comment [-Wcomment]
[cc] ^
[cc] /*------------------------------------------------------------------------*/
Два вообще не в моих файлах, а в syscall.c
Одно тоже непонятное, так как все что надо подключено, а компилятор говорит - не задекларирована функция.
Ну и сам код становиться куда более читабельным.
Было
Код:
bool configure_bluetooth(void)//настраиваем блютус модуль
{
bool at_res;
#ifdef COLOR_LCD
static volatile TextParamStruct TS;
TS.XPos = 0;
TS.YPos = 10;
TS.Size = 0;
TS.Font = StdFont;
TS.TxtCol = iWhite;//iGreen;//iRed;
TS.BkgCol =iBlack;//iWhite;
#endif
USART_DeInit(USART1);
InitCOM1(38400);
bt_set_at_commands_mode(true);
vTaskDelay(100);
bt_reset();
BL_ON;
at_res = send_test_at_command();
if(!at_res){
#ifndef COLOR_LCD
lcd8544_putstr(0, 8, "38400 тест не прошел", 0); // вывод первой строки
if (!screen_auto_refresh) lcd8544_dma_refresh(); // вывод буфера на экран ! без этого ничего видно не будет !
#else
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
PStr("38400: Test error", &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#endif
USART_DeInit(USART1);
InitCOM1(9600);
vTaskDelay(100);
}
if(strlen(armadaSystem.bluetooth.name))//если строка с именем не пустая
{
#ifndef COLOR_LCD
lcd8544_putstr(0, 16, "Имя: ", 0); // вывод первой строки
lcd8544_putstr(8, 16, armadaSystem.bluetooth.name, 0); // вывод первой строки
if (!screen_auto_refresh) lcd8544_dma_refresh(); //
#else
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
TS.XPos = 0;
TS.YPos +=10;
PStr( "Name: ", &TS);
PStr(armadaSystem.bluetooth.name, &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#endif
at_res = send_set_at_command(at_name,armadaSystem.bluetooth.name);
#ifdef COLOR_LCD
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
TS.XPos = 0;
TS.YPos +=10;
if (at_res) PStr( "OK", &TS);
else PStr( "ERROR", &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#else
if (at_res)
{
lcd8544_putstr(0, 24, "Имя успешно задано ", 0); // вывод первой строки
if (!screen_auto_refresh) lcd8544_dma_refresh(); //
}
#endif
}
if(strlen(armadaSystem.bluetooth.cmode))//если строка с именем не пустая
{
#ifdef COLOR_LCD
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
TS.XPos = 0;
TS.YPos +=10;
PStr( at_cmode, &TS);
PStr( "=", &TS);
PStr( armadaSystem.bluetooth.cmode, &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#endif
at_res = send_set_at_command(at_cmode,armadaSystem.bluetooth.cmode);
#ifdef COLOR_LCD
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
TS.XPos = 0;
TS.YPos +=10;
if (at_res) PStr( "OK", &TS);
else PStr( "ERROR", &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#endif
}
if(strlen(armadaSystem.bluetooth.role))//если строка с именем не пустая
{
#ifdef COLOR_LCD
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
TS.XPos = 0;
TS.YPos +=10;
PStr( at_role, &TS);
PStr( "=", &TS);
PStr( armadaSystem.bluetooth.role, &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#endif
at_res = send_set_at_command(at_role,armadaSystem.bluetooth.role);
#ifdef COLOR_LCD
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
TS.XPos = 0;
TS.YPos +=10;
if (at_res) PStr( "OK", &TS);
else PStr( "ERROR", &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#endif
}
if(strlen(armadaSystem.bluetooth.mac_adress_for_bind))//если строка с именем не пустая
{
#ifdef COLOR_LCD
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
TS.XPos = 0;
TS.YPos +=10;
PStr( "BIND:", &TS);
// PStr( "=", &TS);
PStr( armadaSystem.bluetooth.mac_adress_for_bind, &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#endif
at_res = send_set_at_command(at_bind,armadaSystem.bluetooth.mac_adress_for_bind);
#ifdef COLOR_LCD
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
TS.XPos = 0;
TS.YPos +=10;
if (at_res) PStr( "OK", &TS);
else PStr( "ERROR", &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#endif
}
if(strlen(armadaSystem.bluetooth.pswd))//если строка с именем не пустая
{
#ifdef COLOR_LCD
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
TS.XPos = 0;
TS.YPos +=10;
PStr( "PASSWORD:", &TS);
// PStr( "=", &TS);
PStr( armadaSystem.bluetooth.pswd, &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#endif
at_res = send_set_at_command(at_pswd,armadaSystem.bluetooth.pswd);
#ifdef COLOR_LCD
if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
{
while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
while (SPI3->SR & SPI_SR_BSY);
init_spi3();
SB(0x36, Reg); //Set Memory access mode
#if LCD_MODUL_VERSION == 2
SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif LCD_MODUL_VERSION == 1
SB((0x08 /*|(1<<7)*/), Dat);
#endif
TS.XPos = 0;
TS.YPos +=10;
if (at_res) PStr( "OK", &TS);
else PStr( "ERROR", &TS);
xSemaphoreGive(xColorLCDSemaphore);
}
#endif
}
bt_set_at_commands_mode(false);
USART_DeInit(USART1);
if(armadaSystem.bluetooth.baudrate) InitCOM1(armadaSystem.bluetooth.baudrate);
else InitCOM1(BAUDRATE);
bt_reset();
vTaskDelay(TIC_FQR*2);
#ifndef COLOR_LCD
BL_OFF;
#endif
}
Стало
Код:
void configure_bluetooth(void)//настраиваем блютус модуль
{
bool at_res;
unsigned char line_counter=0;
unsigned char line_on_screen=display_vertical_screen_resolution()/display_standard_symbol_height();
USART_DeInit(USART1);
InitCOM1(38400);
bt_set_at_commands_mode(true);
vTaskDelay(100);
bt_reset();
BL_ON;
display_put_string(0,line_counter++, (const unsigned char *)"Set BT");
at_res = send_test_at_command();
if(!at_res){
if(!(line_counter<line_on_screen)){
vTaskDelay(150);
line_counter=0;
display_clear_screen();
}
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"38400: Test error");
USART_DeInit(USART1);
InitCOM1(9600);
vTaskDelay(100);
}
if(strlen((const char*)armadaSystem.bluetooth.name))//если строка с именем не пустая
{
if(!((line_counter+1)<line_on_screen)){
vTaskDelay(150);
line_counter=0;
display_clear_screen();
}
at_res = send_set_at_command((char*)at_name,(char*)armadaSystem.bluetooth.name);
display_put_string(0,display_standard_symbol_height()*(line_counter),(const unsigned char*)"Name: ");
display_put_string(display_standard_symbol_width()*5,display_standard_symbol_height()*(line_counter++),(const unsigned char*)armadaSystem.bluetooth.name);
if (at_res)
{
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"OK");
}
else
{
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"ERROR");
}
}
if(strlen((const char*)armadaSystem.bluetooth.cmode))//если строка с именем не пустая
{
if(!((line_counter+1)<line_on_screen)){
vTaskDelay(150);
line_counter=0;
display_clear_screen();
}
at_res = send_set_at_command((char*)at_cmode,(char*)armadaSystem.bluetooth.cmode);
display_put_string(0,display_standard_symbol_height()*(line_counter),at_cmode);
display_put_string(display_standard_symbol_width()*8,display_standard_symbol_height()*(line_counter),(const unsigned char*)"=");
display_put_string(display_standard_symbol_width()*9,display_standard_symbol_height()*(line_counter++),(const unsigned char*)armadaSystem.bluetooth.cmode);
if (at_res)
{
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"OK");
}
else
{
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"ERROR");
}
}
if(strlen((const char*)armadaSystem.bluetooth.role))//если строка с именем не пустая
{
if(!((line_counter+1)<line_on_screen)){
vTaskDelay(150);
line_counter=0;
display_clear_screen();
}
at_res = send_set_at_command((char*)at_role,(char*)armadaSystem.bluetooth.role);
display_put_string(0,display_standard_symbol_height()*(line_counter),at_role);
display_put_string(display_standard_symbol_width()*7,display_standard_symbol_height()*(line_counter),(const unsigned char*)"=");
display_put_string(display_standard_symbol_width()*8,display_standard_symbol_height()*(line_counter++),(const unsigned char*)armadaSystem.bluetooth.role);
if (at_res)
{
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"OK");
}
else
{
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"ERROR");
}
}
if(strlen((const char*)armadaSystem.bluetooth.mac_adress_for_bind))//если строка с именем не пустая
{
if(!((line_counter+1)<line_on_screen)){
vTaskDelay(150);
line_counter=0;
display_clear_screen();
}
at_res = send_set_at_command((char*)at_bind,( char*)armadaSystem.bluetooth.mac_adress_for_bind);
display_put_string(0,display_standard_symbol_height()*(line_counter),(const unsigned char*)"BIND:");
display_put_string(display_standard_symbol_width()*5,display_standard_symbol_height()*(line_counter++),(const unsigned char*)armadaSystem.bluetooth.mac_adress_for_bind);
if (at_res)
{
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"OK");
}
else
{
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"ERROR");
}
}
if(strlen((const char*)armadaSystem.bluetooth.pswd))//если строка с именем не пустая
{
if(!((line_counter+1)<line_on_screen)){
vTaskDelay(150);
line_counter=0;
display_clear_screen();
}
at_res = send_set_at_command((char*)at_pswd,(char*)armadaSystem.bluetooth.pswd);
display_put_string(0,display_standard_symbol_height()*(line_counter),(const unsigned char*)"PASSWORD:");
display_put_string(display_standard_symbol_width()*9,display_standard_symbol_height()*(line_counter++),(const unsigned char*)armadaSystem.bluetooth.pswd);
if (at_res)
{
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"OK");
}
else
{
display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"ERROR");
}
}
bt_set_at_commands_mode(false);
GPIO_ResetBits(GPIOC, GPIO_Pin_4);//
USART_DeInit(USART1);
if(armadaSystem.bluetooth.baudrate) InitCOM1(armadaSystem.bluetooth.baudrate);
else InitCOM1(BAUDRATE);
// bt_reset();
vTaskDelay(TIC_FQR*2);
#ifndef COLOR_LCD
BL_OFF;
#endif
}
Работы ещё много, но процесс идет...