Рефакторинг, комментарии

This commit is contained in:
Eugene 2023-11-28 17:04:28 +03:00
parent a60fcc5f52
commit 9e5a6e2abe
5 changed files with 46 additions and 65 deletions

View File

@ -7,6 +7,12 @@
#include "f28x_project.h"
uint16_t quant16bitWords(uint16_t bytes)
{
if((bytes) & 1) return (bytes + 1)/2; //если осталось нечётное число байт, то чтобы рассчитать кол-во 16-битных слов надо +1
else return (bytes)/2;
}
void copy16_to_8(uint16_t *Arr16, uint16_t *Arr8, uint16_t N)
{
uint16_t j=0;

View File

@ -10,7 +10,7 @@
void copy16_to_8(uint16_t *Arr16, uint16_t *Arr8, uint16_t N);
void copy8_to_16(uint16_t *Arr8, uint16_t *Arr16, uint16_t N);
uint16_t quant16bitWords(uint16_t bytes);
#endif /* SRC_EXTERNALEEPROM_ARR_H_ */

View File

@ -153,24 +153,21 @@ uint16_t Bl25cm1a_verify_8_bytes(uint32_t Addr, uint16_t * verify_data, uint16_
void Bl25cm1a_read_data(uint32_t Addr, uint16_t quant8, uint16_t * read_data)
{
uint32_t i=0;
uint32_t Addressfull8bit;
uint16_t addr_read_data[8];
if(quant8 > 8)
{
for(i = 0; i < (quant8-8); i += 8)
{
Addressfull8bit = Addr+i;
Bl25cm1a_read_8_bytes(Addressfull8bit, addr_read_data, 8);
{ //в этом цикле только полные посылки по 8 байт
Bl25cm1a_read_8_bytes(Addr+i, addr_read_data, 8);
copy8_to_16(addr_read_data, read_data, 4);
read_data+=4;
}
}
if(i < quant8)
{
Addressfull8bit = Addr+i;
Bl25cm1a_read_8_bytes(Addressfull8bit, addr_read_data, (quant8 - i));
if((quant8 - i) & 1) {addr_read_data[quant8] = 0; quant8++; }
{ //тут м.б. от 1 до 8 байт
Bl25cm1a_read_8_bytes(Addr+i, addr_read_data, (quant8 - i)); //читаем оставшиеся байты
if((quant8 - i) & 1) {addr_read_data[quant8] = 0; quant8++; } //если байт нечётное число, то дополняем до чётного нулём чтобы записать 16-битными словами в буфер
copy8_to_16(addr_read_data, read_data, (quant8 - i)/2);
}
}
@ -186,16 +183,15 @@ uint16_t Bl25cm1a_verify_data(uint32_t Addr, uint16_t quant8, uint16_t * verify_
if(quant8 > 8)
{
for(i = 0; i < (quant8-8); i += 8)
{
{ //в этом цикле только полные посылки по 8 байт
copy16_to_8(verify_data, addr_vfy_data, 4);
if(Bl25cm1a_verify_8_bytes(Addr+i, addr_vfy_data, 8)) return 1;
verify_data+=4;
}
}
if(i < quant8)
{
if((quant8 - i) & 1) quant16 = (quant8 + 1 - i)/2;
else quant16 = (quant8 - i)/2;
{ //тут м.б. от 1 до 8 байт
quant16 = quant16bitWords(quant8-i);
copy16_to_8(verify_data, addr_vfy_data, quant16);
if(Bl25cm1a_verify_8_bytes(Addr+i, addr_vfy_data, (quant8 - i))) return 1;
}
@ -206,26 +202,22 @@ void Bl25cm1a_write_1_page(uint32_t Addr, uint16_t quant8, uint16_t * write_data
{
uint32_t i=0;
uint16_t addr_write_data[8];
uint32_t Addressfull8bit;
uint16_t quant16;
if(quant8 > 8)
{
for(i = 0; i < (quant8-8); i += 8)
{
{ //в этом цикле только полные посылки по 8 байт
copy16_to_8(write_data, addr_write_data, 4);
Addressfull8bit = Addr+i;
Bl25cm1a_write_8_bytes(Addressfull8bit, addr_write_data, 8);
Bl25cm1a_write_8_bytes(Addr+i, addr_write_data, 8);
write_data += 4;
}
}
if(i < quant8)
{
if((quant8 - i) & 1) quant16 = (quant8 + 1 - i)/2;
else quant16 = (quant8 - i)/2;
{ //тут м.б. от 1 до 8 байт
quant16 = quant16bitWords(quant8-i);
copy16_to_8(write_data, addr_write_data, quant16);
Addressfull8bit = Addr+i;
Bl25cm1a_write_8_bytes(Addressfull8bit, addr_write_data, (quant8 - i));
Bl25cm1a_write_8_bytes(Addr+i, addr_write_data, (quant8 - i));
}
}

View File

@ -197,24 +197,21 @@ void GD25Q16ETIGR_write_8_bytes(uint32_t Addr, uint16_t * write_data, uint16_t n
void GD25Q16ETIGR_read_data(uint32_t Addr, uint16_t quant8, uint16_t * read_data)
{
uint32_t i=0;
uint32_t Addressfull8bit;
uint16_t addr_read_data[8];
if(quant8 > 8)
{
for(i = 0; i < (quant8-8); i += 8)
{
Addressfull8bit = Addr+i;
GD25Q16ETIGR_read_8_bytes(Addressfull8bit, addr_read_data, 8);
{//â ýòîì öèêëå òîëüêî ïîëíûå ïîñûëêè ïî 8 áàéò
GD25Q16ETIGR_read_8_bytes(Addr+i, addr_read_data, 8);
copy8_to_16(addr_read_data, read_data, 4);
read_data+=4;
}
}
if(i < quant8)
{
Addressfull8bit = Addr+i;
GD25Q16ETIGR_read_8_bytes(Addressfull8bit, addr_read_data, (quant8 - i));
if((quant8 - i) & 1) {addr_read_data[quant8] = 0; quant8++; }
{//òóò ì.á. îò 1 äî 8 áàéò
GD25Q16ETIGR_read_8_bytes(Addr+i, addr_read_data, (quant8 - i));
if((quant8 - i) & 1) {addr_read_data[quant8] = 0; quant8++; }//åñëè áàéò íå÷¸òíîå ÷èñëî, òî äîïîëíÿåì äî ÷¸òíîãî íóë¸ì
copy8_to_16(addr_read_data, read_data, (quant8 - i)/2);
}
}
@ -229,16 +226,15 @@ uint16_t GD25Q16ETIGR_verify_data(uint32_t Addr, uint16_t quant8, uint16_t * ver
if(quant8 > 8)
{
for(i = 0; i < (quant8-8); i += 8)
{
{//â ýòîì öèêëå òîëüêî ïîëíûå ïîñûëêè ïî 8 áàéò
copy16_to_8(verify_data, addr_vfy_data, 4);
if(GD25Q16ETIGR_verify_8_bytes(Addr+i, addr_vfy_data, 8)) return 1;
verify_data+=4;
}
}
if(i < quant8)
{
if((quant8 - i) & 1) quant16 = (quant8 + 1 - i)/2;
else quant16 = (quant8 - i)/2;
{//òóò ì.á. îò 1 äî 8 áàéò
quant16 = quant16bitWords(quant8-i);
copy16_to_8(verify_data, addr_vfy_data, quant16);
if(GD25Q16ETIGR_verify_8_bytes(Addr+i, addr_vfy_data, (quant8 - i))) return 1;
}
@ -249,26 +245,22 @@ void GD25Q16ETIGR_write_1_page(uint32_t Addr, uint16_t quant8, uint16_t * write_
{
uint32_t i=0;
uint16_t addr_write_data[8];
uint32_t Addressfull8bit;
uint16_t quant16;
if(quant8 > 8)
{
for(i = 0; i < (quant8-8); i += 8)
{
{ //â ýòîì öèêëå òîëüêî ïîëíûå ïîñûëêè ïî 8 áàéò
copy16_to_8(write_data, addr_write_data, 4);
Addressfull8bit = Addr+i;
GD25Q16ETIGR_write_8_bytes(Addressfull8bit, addr_write_data, 8);
GD25Q16ETIGR_write_8_bytes(Addr+i, addr_write_data, 8);
write_data += 4;
}
}
if(i < quant8)
{
if((quant8 - i) & 1) quant16 = (quant8 + 1 - i)/2;
else quant16 = (quant8 - i)/2;
{//òóò ì.á. îò 1 äî 8 áàéò
quant16 = quant16bitWords(quant8-i);
copy16_to_8(write_data, addr_write_data, quant16);
Addressfull8bit = Addr+i;
GD25Q16ETIGR_write_8_bytes(Addressfull8bit, addr_write_data, (quant8 - i));
GD25Q16ETIGR_write_8_bytes(Addr+i, addr_write_data, (quant8 - i));
}
}

View File

@ -38,29 +38,24 @@ uint16_t ZD24C02A_verify_16(uint16_t Addr, uint16_t * Array, uint16_t quant)
uint16_t ZD24C02A_write(uint32_t Addr, uint16_t quant8, uint16_t * write_data)
{
uint32_t i=0;
uint16_t addr_write_data[8];
uint32_t Addressfull8bit;
uint16_t quant16;
if(quant8 > 8)
{
for(i = 0; i < (quant8-8); i += 8)
{
{//â ýòîì öèêëå òîëüêî ïîëíûå ïîñûëêè ïî 8 áàéò
copy16_to_8(write_data, addr_write_data, 4);
Addressfull8bit = Addr+i;
if( ZD24C02A_write_8(Addressfull8bit, addr_write_data, 8)) return 1;
if( ZD24C02A_write_8(Addr+i, addr_write_data, 8)) return 1;
write_data += 4;
}
}
if(i < quant8)
{
if((quant8 - i) & 1) quant16 = (quant8 + 1 - i)/2;
else quant16 = (quant8 - i)/2;
{//òóò ì.á. îò 1 äî 8 áàéò
quant16 = quant16bitWords(quant8-i);
copy16_to_8(write_data, addr_write_data, quant16);
Addressfull8bit = Addr+2*i;
if( ZD24C02A_write_8(Addressfull8bit, addr_write_data, (quant8 - i))) return 1;
if( ZD24C02A_write_8(Addr+i, addr_write_data, (quant8 - i))) return 1;
}
return 0;
}
@ -68,24 +63,21 @@ uint16_t ZD24C02A_write(uint32_t Addr, uint16_t quant8, uint16_t * write_data)
uint16_t ZD24C02A_read(uint32_t Addr, uint16_t quant8, uint16_t * read_data)
{
uint32_t i=0;
uint32_t Addressfull8bit;
uint16_t addr_read_data[8];
if(quant8 > 8)
{
for(i = 0; i < (quant8-8); i += 8)
{
Addressfull8bit = Addr+i;
if( ZD24C02A_read_8(Addressfull8bit, addr_read_data, 8)) return 1;
{//â ýòîì öèêëå òîëüêî ïîëíûå ïîñûëêè ïî 8 áàéò
if( ZD24C02A_read_8(Addr+i, addr_read_data, 8)) return 1;
copy8_to_16(addr_read_data, read_data, 4);
read_data+=4;
}
}
if(i < quant8)
{
Addressfull8bit = Addr+i;
if( ZD24C02A_read_8(Addressfull8bit, addr_read_data, (quant8 - i))) return 1;
if((quant8 - i) & 1) {addr_read_data[quant8] = 0; quant8++; }
{//òóò ì.á. îò 1 äî 8 áàéò
if( ZD24C02A_read_8(Addr+i, addr_read_data, (quant8 - i))) return 1;
if((quant8 - i) & 1) {addr_read_data[quant8] = 0; quant8++; }//åñëè áàéò íå÷¸òíîå ÷èñëî, òî äîïîëíÿåì äî ÷¸òíîãî íóë¸ì
copy8_to_16(addr_read_data, read_data, (quant8 - i)/2);
}
return 0;
@ -101,7 +93,7 @@ uint16_t ZD24C02A_verify(uint32_t Addr, uint16_t quant8, uint16_t * verify_data)
if(quant8 > 8)
{
for(i = 0; i < (quant8-8); i += 8)
{
{//â ýòîì öèêëå òîëüêî ïîëíûå ïîñûëêè ïî 8 áàéò
copy16_to_8(verify_data, addr_vfy_data, 4);
Err_read = ZD24C02A_verify_16(Addr+i, addr_vfy_data, 8);
if(Err_read) return Err_read;
@ -109,9 +101,8 @@ uint16_t ZD24C02A_verify(uint32_t Addr, uint16_t quant8, uint16_t * verify_data)
}
}
if(i < quant8)
{
if((quant8 - i) & 1) quant16 = (quant8 + 1 - i)/2;
else quant16 = (quant8 - i)/2;
{//òóò ì.á. îò 1 äî 8 áàéò
quant16 = quant16bitWords(quant8-i);
copy16_to_8(verify_data, addr_vfy_data, quant16);
Err_read = ZD24C02A_verify_16(Addr+i, addr_vfy_data, (quant8 - i));
if(Err_read) return Err_read;