реклама на сайте
подробности

 
 
> Алгоритм вычесления page overflow
Jenya7
сообщение Feb 18 2018, 07:40
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Есть несколько структу которые я записываю на флеш в камне
Код
if (status == FLASH_COMPLETE)
    {  
        size = sizeof(GLOB_MOTOR_DATA);
        addr = (uint32_t *)(flash_page + offset);
        status = WriteFlash(&glob_mot_data, addr, size);
        offset += (size + SEPARATOR);
        
        size = sizeof(IR_DATA);
        addr = (uint32_t *)(flash_page + offset);
    status = WriteFlash(&ir_data, addr, size);
        offset += (size + SEPARATOR);  
        
        size = sizeof(MOTOR_TASK) * MAX_TASKS;
        addr = (uint32_t *)(flash_page + offset);
        status = WriteFlash(&mot_task, addr, size);
        offset += size + SEPARATOR;
    }

размер данных постоянно растет, добавляются новые структуры и я задумался - нужно же как то мониторить переполнение страницы, она же не резиновая.
и чо то у меня какие то громоздкие вычисления получаются, что мне очень не нравиться. как бы это сделать покрасивше?

если последняя структура не влезает на страницу - дописать то что влезает и перескочить на следующую страницу или не париться и всю структуру записать на следующей странице?
а где хранить информацию что у меня данные раскинуты на нескольких страницах?

я тут нашел старый код для внешней памяти
Код
if(((address & (AT25_PAGE_SIZE - 1)) + lenght) >= AT25_PAGE_SIZE)
    {
        bytes_to_write = AT25_PAGE_SIZE - (address & (AT25_PAGE_SIZE - 1));
        //page_overflow = 1;
    }
    else
    {
        bytes_to_write = lenght;
        //page_overflow = 0;
    }

с какого перепугу я эндил, нифига не помню. сижу мучаю калькулятор, ничего не выходит. можно воспользоваться этим алгоритмом?

упс. только сейчас заметил. я offset вычисляю в байтах а надо size/4.

Сообщение отредактировал Jenya7 - Feb 18 2018, 11:11
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jenya7
сообщение Feb 18 2018, 14:31
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



ребята вы шутите или как? при чем здесь какая флеш и сколько раз я на нее пишу? изначальный вопрос - Алгоритм вычисления page overflow. неужели нельзя внимательно прочитать и проанализировать пару строчек? я пишу конфигурационные структуры, один раз при настройке системы, ну может пару раз для точной подстройки. какой лог файл? во флеш камня лог файл? да и вообще это не имеет никакого отношения к вопросу. давайте отделять зерна от плевел.
Go to the top of the page
 
+Quote Post
Baser
сообщение Feb 18 2018, 16:57
Сообщение #3


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Jenya7 @ Feb 18 2018, 16:31) *
ребята вы шутите или как? при чем здесь какая флеш и сколько раз я на нее пишу? изначальный вопрос - Алгоритм вычисления page overflow. неужели нельзя внимательно прочитать и проанализировать пару строчек? я пишу конфигурационные структуры, один раз при настройке системы, ну может пару раз для точной подстройки. какой лог файл? во флеш камня лог файл? да и вообще это не имеет никакого отношения к вопросу. давайте отделять зерна от плевел.

А по моему мнению, это вы всех троллите wacko.gif

Если это пару раз для конфигурации прибора, то:
1) Вы не знаете размер страницы флеш и размер записываемых данных?
2) Вы не можете поделить одно на другое и принять решение влазит/не влазит?
3) Вы не можете придумать "шапку" конфигурации с параметрами, описывающими её длину и расположение?

з.ы. а разбираться с вашими "портянками" из-за вопроса на одно деление вряд-ли кто будет, они тут совершенно излишни...
з.з.ы. звиняйте за резкий тон, но это уже перебор, имхо
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Feb 18 2018, 17:35
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(Baser @ Feb 18 2018, 23:57) *
з.ы. а разбираться с вашими "портянками" из-за вопроса на одно деление вряд-ли кто будет, они тут совершенно излишни...

Он наверное ждет что сейчас появится какой-нибудь энтузазист и напишет для него код. wink.gif Чего там писать - 5 минут....
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 20:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01305 секунд с 7
ELECTRONIX ©2004-2016