Чт сен 28, 2017 20:48:26
Чт сен 28, 2017 20:59:22
Сб окт 07, 2017 18:07:17
/* это я закоментил
//ptr = malloc(sizeof(uint8_t) * BlockSize);
ptr = (uint8_t *) █
// if (ptr == NULL)
// {
// goto error;
// }
// visnet tut
memset(ptr, SD_DUMMY_BYTE, sizeof(uint8_t) * BlockSize);
*/
в этой процедурке зависало на строке
- Код:
memset(ptr, SD_DUMMY_BYTE, sizeof(uint8_t) * BlockSize);
заремил её и вроде как все полетело и без проблем! а что не так с этит мемсетом? это ж просто очистка буффера!? что тут я сделал не так?
- Код:
uint32_t ClrA = 0xFF << 16;
...
*buf = GPIOA->IDR&0xFF;
Сб окт 07, 2017 22:19:20
*buf = GPIOA->IDR&0xFF;
uint32_t ClrA = 0xFF << 16;
Вс окт 08, 2017 01:10:02
а что тут не то? мне надо положить в буффер часть порта а. у меня а0-а7 это шина данных оперативки. указатель буффера я инкрементирую вконце а это - ну читаю из входного регистра и накладываю маску чтоб попадало в фуффер только то что надо. Что в этом такого?
uint32_t ClrA = 0xFF << 16;
это были попытки оптимизации по скорости работы. кроме того это сейчас оно такой вид имеет а потом там будет битмаска покруче чем просто 8 единиц.
просто на макетке разводка не важна а вот в реальной плате для удобства разводки без переходных - прийдется переназначать и не факт что получится поподряд выбрать биты на порту - армы эти по-идиотически сделаны в плане распиновки.
По поводу маллок и мемсет я знаю что они делают но вопервых не я заремил маллок а во вторых какова хрена мемсет мне стек портит? ведь если есть буффер и есть его размер - почему налазит на стек? Эти либы не я писал - это в CubeMX FatFS и ведь у многих она ж работает без проблем..ну да нету sdio у f100 ну дак и что? spi режим запрещен?
Вс окт 08, 2017 11:24:01
Вс окт 08, 2017 12:30:43
Вс окт 08, 2017 12:34:05
Вс окт 08, 2017 12:48:32
// visnet tut
memset(ptr, SD_DUMMY_BYTE, sizeof(uint8_t) * BlockSize);
*/
ptr = (uint8_t *) █
...
memset(block, SD_DUMMY_BYTE, BlockSize);
...
SD_IO_WriteReadData((uint8_t *)&block, (uint8_t*) pData + offset, BlockSize);
...