Перейти к содержанию
    

Да не заметил.

 

Я думаю под себя перепишите. Пример.

Спасибо. Попробую, отпишусь.

 

P.S. Да первый модуль который я разбираю и столько граблей, то ли нужно глубже вникать, то ли сыроват еще.

Родственные сомнения..

Рано ещё этот проц в какие-то серъёзные вещи ставить имхо ... Так, чисто поизучать, поиграться.

F1/F4, помню, с полпинка заводилось всё. С SDRAM и LTDC на F439, помню, года 4 назад промучился, но во всём оказалась виновата хреновая разводка платы. Сделали другую - все мгновенно заработало как надо.

Тут на форуме даже тема моя есть про "неработающий" LTDC :biggrin:

 

У меня есть свободная QSPI флэшка, думаю, следующими блоками на изучение будут QSPI и уарты :rolleyes:

Ну и USB c сетевухой, раз уж они есть на NUCLEO. Не пропадать же добру :biggrin: С сетью и lwIP на МК я вообще никогда не работал. Ну всякие там ESP8266 не в счёт конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня план ковыряний примерно такой же, QSPI давно хотел попробовать. Доделаю ДМА и начну USART (вроде как в F7 1 в 1, так что не сложно), с ДМА пришла в голову мысль (раз уж каналы стали полностью идентичные) динамически раздавать каналы по запросу периферии, все-равно запуск от полной инициализации отличаеться не сильно по размеру, но страдаю с общими регистрами (RCC, и общие ДМА, особенно с ДМА, совсем не красиво). Пока в голову пришли одни таблицы, зависимостей не видать совсем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

MasterElectric, удачи. Мои эксприменты, похоже, откладываются - см. вложение. При простом подключении всё прекрасно читает. Ошибка только после Erase.

 

Atollic True Studio тож ругается "flash error". Хз, чё с ней стряслось. Пытался +5в со своего БП подавать, другой программатор подключал - без разницы.

Прошивается и работает не знаю с какого раза.

 

2 недели всего проработала :crying:

 

Если оно всё же будет работать, я тоже буду продолжать изучение всего вышесказанного.

post-7980-1532623433_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Печалька, а где вы ее кстати покупали, в китае? у нас поискал еще нет в продаже. Может полетел встроенный стабилизатор (на 400 тоже не стабильно подключался поэтому сижу на HSI, но я настраивал по мануалу режим стабилизатора установил, память настроил, делители, PLL и то стремно пока что), иногда во время экспериментов неудачных, проц попав видимо в исключение не реагирует на отладчик, помогает только ресет подключить от программатора. Попробуйте загнать его в заводской бут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Печалька, а где вы ее кстати покупали, в китае? у нас поискал еще нет в продаже. Может полетел встроенный стабилизатор (на 400 тоже не стабильно подключался поэтому сижу на HSI, но я настраивал по мануалу режим стабилизатора установил, память настроил, делители, PLL и то стремно пока что), иногда во время экспериментов неудачных, проц попав видимо в исключение не реагирует на отладчик, помогает только ресет подключить от программатора. Попробуйте загнать его в заводской бут.

 

Покупал не я, а знакомый. Говорил, вроде где-то в США... Кстати, мы с ним тоже подумали на хреновое питание +3.3в. Я ж подавал на неё 5 вольт, т.е. конечный 3в стабилизатор всё равно работал родной.

Стабилизатор завтра осциллом потыкаю, отпишусь.

Готовых внешних 3.3в у меня щас нету, спаять внешний стаб смогу только на выходных, т.к. у меня это хобби, в рабочее время я паять не шибко могу.

 

Атоллик после ругани на флэш всё-таки заходит в отладку, но ещё во время блужданий по стартовому коду попадает в DefaultHandler. Т.е. до активации PLL и HSE там дело не доходит.

 

Там действительно что-то странное. Добавил в ту же тестовую прошивку с SPI мигание светодиодиком, залил ST-Link utility - замигал нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну скорее всего ошибка в коде и он уходит в стоп режим. Я бы пока малоизучена система тактирования не разгонял бы его. Я имел в виду стабилизатор что в чипе, но раз признаки жизни подает значит живой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Осциллом 3.3 платы посмотрел - чисто. Может иголки какие, хз, моим хилым UT-81B их фиг найдёшь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот так нормально работает опросом:

 

// Чтение/запись байта SPI
uint8_t spi1_sendByte ( uint8_t data_out )
{
    uint8_t data_in = 0;

    // старт передаем неопределенное кол-во байт
    // Disable SPI
    SPI_PORT->CR1 &= ~SPI_CR1_SPE;
    SPI_PORT->CR2 = 0;
    // Enable SPI
    SPI_PORT->CR1 |= SPI_CR1_SPE;
    SPI_PORT->CR1 |= SPI_CR1_CSTART;

    while (!(SPI_PORT->SR & SPI_SR_TXP));
    *((__IO uint8_t *)&SPI_PORT->TXDR) = data_out;

    // Ждать завершения приёма
    while(!(SPI_PORT->SR & SPI_SR_RXP));
    data_in = *(volatile uint8_t *) &(SPI_PORT->RXDR);
    return data_in;
} // SPI_sendByte

 

Попробую ещё перенести это на другой SPI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Небольшой оффтоп в теме про SPI:

 

Покопался ещё на предмет флэша.

Пустышка вида

 

char sBuffer[256];

int main(void)
{
  float temp = 656.89F;
  int i = 78;

  sprintf ( sBuffer, "%d; %.02fv", i, temp );
  while ( 1 )
  {
  } // while
} // main

 

При использовании newlib standard даёт размер кода:

 

Print size information
   text      data       bss       dec       hex   filename
  17644      1660     10772     30076      757c   STM32H7_ILI9163.elf

 

Ошибка записи во флэш есть.

Если эту же программу перекомпилить с newlib nano, то получаю:

Print size information
   text      data       bss       dec       hex   filename
   5180       112     10720     16012      3e8c   STM32H7_ILI9163.elf

 

Ошибки флэша нет, всё гуд. Но в sBuffer я вижу: "78; v", т.е. видно, что sprintf не поддерживает плавающую точку, что меня лично меня категорически не устраивает.

 

Чтобы отсечь вопрос о "битости" некоторых участков флэша проца приведу следующий пример:

Прошивка размером

 

Print size information
   text      data       bss       dec       hex   filename
  18480        36     10876     29392      72d0   STM32H7_ILI9163.elf

 

 

без sprintf шьётся, отлаживается и работает совершенно нормально.

 

Стек в обоих случаях одинаковый:

 

/* 0x2800 == 10K */
_Min_Stack_Size = 0x2800;

 

 

 

Какие соображения, товарищи? И чем можно заменить sprintf? Я нашёл только это - https://github.com/torvalds/linux/blob/master/lib/vsprintf.c , но пока не пытался затащить её в проц.

Увеличение размера прошивки меня совершенно не волнует. Кто-то делал что-либо подобное?

 

Штуки типа itoa, ltoa я знаю, они нормально работают, но результирующие строки надо дополнительно склеивать, но самое главное, чего-то родственного для плавающей точки я не знаю.

Писать самому?

 

Что касается периферии - запустил UART - отправка опросом, приём прерыванием в буфер. Перешёл к USB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё-таки это косяки в либах атоллика (я про sprintf).

 

Та же самая пустышка в STM32 SystemWorkbench завелась с полпинка.

Правда пришлось разобраться, как включить в нём поддержку float output в spintf. По умолчанию она отключена, %f полностью игнорится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё-таки это косяки в либах атоллика (я про sprintf).

 

Та же самая пустышка в STM32 SystemWorkbench завелась с полпинка.

Правда пришлось разобраться, как включить в нём поддержку float output в spintf. По умолчанию она отключена, %f полностью игнорится.

 

никогда не использую sprintf() , использую набор минимальных самописных функций, отдельно для числовых данных, отдельно для строк etc...

Изменено пользователем nanorobot

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...