Выбираем HEX редактор
- Информация о материале
- Автор: Super User
- Родительская категория: Заметки
- Категория: Компьютерная повседневность
- Просмотров: 2672
Заметки по программированию взаимодействия с FatFS применительно к SD карте
- Информация о материале
- Автор: Super User
- Родительская категория: Заметки
- Категория: Программирование микроконтроллеров
- Просмотров: 1358
Участки инициальзации - запись файла на карточку
FATFS fs;
FRESULT res;
BYTE buff[32]; //буфер для чтения файлаWORD br; //счетчик прочитанных байт
MX_SDMMC1_SD_Init();
MX_FATFS_Init();
res = BSP_SD_Init();
MX_FATFS_Init();
res = BSP_SD_Init();
res = disk_initialize(0); ///try use the 0 number
void WriteNewTextFileSD(u8 * buff, char const * NameOfFile, u32 NumberOfBytes){
u8 res; //variable for return values
FATFS fs; //fat object FATFS
FIL OurFile; // this is our file here
UINT br; //just counter
//try to mount disk
res = f_mount(&fs,"0:",1);
if (res == FR_OK){
//open the file
res = f_open(&OurFile,(char const*)NameOfFile,FA_WRITE | FA_CREATE_ALWAYS);
f_lseek(&OurFile,0); //pointer to the first byte
f_write(&OurFile,buff, NumberOfBytes, &br); //write the file
f_close(&OurFile);//close the file
f_mount(NULL, "0:", 0);//unmount the drive
}
else{
//не удалось смонтировать диск
}
}
---------
Использованы ресурсы:
Таблица синусов с помощью Scilab. Создаём хидер с массивом
- Информация о материале
- Автор: Super User
- Родительская категория: Заметки
- Категория: Программирование
- Просмотров: 2181
Например, сегодня потребовался массив синусов в 16- битной форме.
1. Создаём файл sinetab.sci
pi_2 = 1.5707963;
function [Sinetable]=sinetable(sizetab)
f=mopen('sinetable.h','w'); //открываем файл
mfprintf(f,'uint_16t SineTable[%d] = {\n', sizetab);
for i = 1 : sizetab
Sinetable(i) = round(sin((i-1)*pi_2/sizetab)*65535); //округляем до целого
mfprintf(f,'\t0x%04x,',Sinetable(i)); // форматирование в 0xNNNN
if (pmodulo(i,8) == 0)
mfprintf(f,'\n');
end
end
mfprintf(f,'};\n');
mclose('sinetable.h'); //закрываем файл
endfunction
2. Открываем Sci-lab и выполняем магическую команду
-->exec('E:\SCI\sinetab.sci',-1);
тут E:\SCI\sinetab.sci - путь к нашему файлу3. Запускаем функцию
-->sinetable(256);4. Забираем готовый файл sinetable.h, который будет в той же папке, где скрипт (E:\SCI\sinetab.sci)
uint_16t SineTable[256] = {
0x0000, 0x0192, 0x0324, 0x04b6, 0x0648, 0x07da, 0x096c, 0x0afe,
0x0c90, 0x0e21, 0x0fb3, 0x1144, 0x12d5, 0x1466, 0x15f7, 0x1787,
0x1918, 0x1aa8, 0x1c37, 0x1dc7, 0x1f56, 0x20e5, 0x2274, 0x2402,
0x2590, 0x271e, 0x28ab, 0x2a38, 0x2bc4, 0x2d50, 0x2edc, 0x3067,
0x31f1, 0x337b, 0x3505, 0x368e, 0x3817, 0x399f, 0x3b26, 0x3cad,
0x3e34, 0x3fb9, 0x413f, 0x42c3, 0x4447, 0x45ca, 0x474d, 0x48cf,
0x4a50, 0x4bd0, 0x4d50, 0x4ecf, 0x504d, 0x51cb, 0x5347, 0x54c3,
0x563e, 0x57b8, 0x5932, 0x5aaa, 0x5c22, 0x5d98, 0x5f0e, 0x6083,
0x61f7, 0x636a, 0x64dc, 0x664d, 0x67bd, 0x692d, 0x6a9b, 0x6c08,
0x6d74, 0x6edf, 0x7049, 0x71b2, 0x7319, 0x7480, 0x75e5, 0x774a,
0x78ad, 0x7a0f, 0x7b70, 0x7cd0, 0x7e2e, 0x7f8b, 0x80e7, 0x8242,
0x839c, 0x84f4, 0x864b, 0x87a1, 0x88f5, 0x8a48, 0x8b9a, 0x8cea,
0x8e39, 0x8f87, 0x90d3, 0x921e, 0x9368, 0x94b0, 0x95f6, 0x973b,
0x987f, 0x99c1, 0x9b02, 0x9c41, 0x9d7f, 0x9ebb, 0x9ff6, 0xa12f,
0xa267, 0xa39d, 0xa4d1, 0xa604, 0xa736, 0xa865, 0xa993, 0xaac0,
0xabeb, 0xad14, 0xae3b, 0xaf61, 0xb085, 0xb1a7, 0xb2c8, 0xb3e7,
0xb504, 0xb620, 0xb739, 0xb851, 0xb968, 0xba7c, 0xbb8e, 0xbc9f,
0xbdae, 0xbebb, 0xbfc7, 0xc0d0, 0xc1d8, 0xc2dd, 0xc3e1, 0xc4e3,
0xc5e3, 0xc6e1, 0xc7de, 0xc8d8, 0xc9d0, 0xcac7, 0xcbbb, 0xccae,
0xcd9e, 0xce8d, 0xcf79, 0xd064, 0xd14c, 0xd233, 0xd317, 0xd3fa,
0xd4da, 0xd5b9, 0xd695, 0xd76f, 0xd847, 0xd91e, 0xd9f2, 0xdac3,
0xdb93, 0xdc61, 0xdd2c, 0xddf6, 0xdebd, 0xdf82, 0xe045, 0xe106,
0xe1c5, 0xe281, 0xe33b, 0xe3f4, 0xe4a9, 0xe55d, 0xe60f, 0xe6be,
0xe76b, 0xe816, 0xe8be, 0xe965, 0xea09, 0xeaab, 0xeb4a, 0xebe7,
0xec82, 0xed1b, 0xedb2, 0xee46, 0xeed8, 0xef67, 0xeff5, 0xf07f,
0xf108, 0xf18e, 0xf212, 0xf294, 0xf313, 0xf390, 0xf40b, 0xf483,
0xf4f9, 0xf56d, 0xf5de, 0xf64d, 0xf6b9, 0xf723, 0xf78b, 0xf7f0,
0xf853, 0xf8b4, 0xf912, 0xf96d, 0xf9c7, 0xfa1e, 0xfa72, 0xfac4,
0xfb14, 0xfb61, 0xfbac, 0xfbf4, 0xfc3a, 0xfc7e, 0xfcbf, 0xfcfd,
0xfd3a, 0xfd73, 0xfdab, 0xfde0, 0xfe12, 0xfe42, 0xfe70, 0xfe9b,
0xfec3, 0xfeea, 0xff0d, 0xff2f, 0xff4d, 0xff6a, 0xff84, 0xff9b,
0xffb0, 0xffc3, 0xffd3, 0xffe0, 0xffeb, 0xfff4, 0xfffa, 0xfffe,
};
5. Удаляем лишнюю запятую в конце массива :)
11.04.16 Московская область. Ожидается солнечная погода
- Информация о материале
- Автор: Super User
- Родительская категория: Погода
- Категория: Альтернативная погода от wow-only.ru
- Просмотров: 2287

Давление вырасло
STM32F7xx пробуем разобраться с подключением NAND
- Информация о материале
- Автор: Super User
- Родительская категория: Заметки
- Категория: Программирование микроконтроллеров
- Просмотров: 3433
1. Стоит изучить вот это чтобы понять организацию памяти
Там на восьмой странице обратите внимание на организацию памяти.
В частности
- Адресное протранство разбито на БЛОКИ (Blocks)
- БЛОКИ разбиты на СТРАНИЦЫ (Pages)
- Внутри каждой СТРАНИЦЫ 2 области памяти ОСНОВНАЯ и ДОПОЛНИТЕЛЬНАЯ
- Разные NAND микросхемы могут содержать разное количество блоков, разное количество страниц в блоке, страницы могут иметь разный размер
2. Драйверы HAL в области инициализации выглядят несколько странно. В частности:
PageSize - NAND memory page (without spare area) size measured in K. bytes
(размер страницы памяти без дополнительной области в Килобайтах)
Но как быть если размер страницы 512 байт (для очень распространённой NAND512W3A)?
SpareAreaSize - NAND memory spare area size measured in K. bytes
ещё интереснее, в этой памяти лишь 16 байт ДОПОЛНИТЕЛЬНОЙ памяти в каждой странице
Страница 155 из 196
