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

STM32F429 и 16-битная SDRAM 16MB /32 MB : практический опыт?

34 минуты назад, haker_fox сказал:

Вы же используете IAR, так почему бы не использовать static_assert? Правда придётся задействовать компилятор Си++, но он же переварит сишный код.

assert_static() у меня в списке есть. А ASSERT_STATIC() - это совсем другой макрос.  Посмотрите внимательнее. И компилятор тут не при чём, макросы - это препроцессор.

Цитата

Название макроса... мммм... мягко говоря опасное:acute: Слишком коррелирует с sizeof.

Ну и что? В чём опасность? Потому и название такое, само намекает на схожесть назначения (имена должны быть по возможности самокомментируемыми).

Цитата

Класс! Спасибо! Я думаю, для LPC4337 не слишком долго адаптировать, MPU-то всё равно платформенно независим:blum:

Достаточно поменять содержимое t[]. Больше ничего.

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


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

4 minutes ago, jcxz said:

static_assert() у меня в списке есть. А STATIC_ASSERT() - это совсем другой макрос.  Посмотрите внимательнее. И компилятор тут не при чём, макросы - это препроцессор.

Я имел в виду это. Вроде ваш STATIC_ASSERT то же самое делает.

7 minutes ago, jcxz said:

Достаточно поменять содержимое t[]. Больше ничего.

Ну да. Сейчас в процессе изучения MPU по книге Дж. Ю. Прихожу к выводу, что здоровенный проект, сделанный на MPU, с использованием динамической памяти, не так просто будет перетащить на MPU. Слишком много менять.

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


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

8 минут назад, haker_fox сказал:

Я имел в виду это. Вроде ваш STATIC_ASSERT то же самое делает.

Вы меня совсем запутали.... :wacko2:  Вы где в моих макросах STATIC_ASSERT и static_assert увидели??? Ещё раз: внимательно посмотрите список моих макросов. Нет там никаких STATIC_ASSERT и static_assert.

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


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

1 hour ago, jcxz said:

Нет там никаких STATIC_ASSERT и static_assert.

Да я сам в ваших макросах запутался... поменял местами половинки имён. Просто для меня привычен другой порядок. Ладно.

Я просто предложил использовать вот этот инструмент из Си++11. Он генерит ошибку на этапе компиляции с текстовым сообщением.

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


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

8 минут назад, haker_fox сказал:

Я просто предложил использовать вот этот инструмент из Си++11. Он генерит ошибку на этапе компиляции с текстовым сообщением.

Я не использую си++11

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


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

32 минуты назад, haker_fox сказал:

Я просто предложил использовать вот этот инструмент из Си++11. Он генерит ошибку на этапе компиляции с текстовым сообщением.

Очень удобная штука. Жаль в обычном C ее нет. Ну в C99 хотя бы - я обычно в настройках сразу ставлю этот стандарт.

Поэтому приходится исхитряться:wink:

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


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

4 hours ago, Arlleex said:

Жаль в обычном C ее нет.

странное утвеждение

https://gcc.gnu.org/wiki/C11Status

 _Static_assert GCC 4.6

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


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

6 часов назад, sasamy сказал:

странное утвеждение

Это расширение компилятора, как я понимаю, а не утвержденная Стандартом финтиклюшка.

Возможно, Вы меня не так поняли - я имел в виду C99... Я работаю в IAR (теперь), а там, как я понимаю, C11 нет.

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


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

14 minutes ago, Arlleex said:

а там, как я понимаю, C11 нет

Есть))) И Си11 и Си++14)

image.png.9caf258f0c0c2589aac4e304463fe523.png

 

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


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

О блин... Вот что значит скачать компилятор дома, а мануал читать на работе:mosking:

Ладно, приду домой - гляну... В мануале (EWSTM8), по крайней мере, не нашел ничего про _Static_assert...

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


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

2 minutes ago, Arlleex said:

В мануале (EWSTM8)

У меня IAR 8.22.2 ARM.

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


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

Только что, haker_fox сказал:

У меня IAR 8.22.2 ARM.

А, так это все меняет... У меня 3.10 - на STM8, это, видимо, был последний (по крайней мере он самый свежий на сайте). Покопаюсь с мелким контроллером под этой средой, раскурю ее потихоньку пока, привыкну, а потом, может быть, и скачаю под ARM:bb:

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


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

20 минут назад, haker_fox сказал:

У меня IAR 8.22.2 ARM.

"Уж сколько раз твердили миру..."  :wacko2:

И зачем пользуетесь таким кривым инструментом? Баги не напрягают? :dash2:

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


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

20 часов назад, jcxz сказал:

Я старался давать говорящие имена, но если что будет непонятно по макросам - спрашивайте.

А можно пояснить назначение и места использования следующих макроопределений (с остальными - понятно):

#define lenof(var)   (sizeof(var) * ((CHAR_BIT + 7) / 8))
#define ptrsizeof(m) (void *)&(m), sizeof(m)

 

Особенно интересует второе. Заранее благодарен:smile:

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


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

44 minutes ago, jcxz said:

Баги не напрягают? 

Впервую очередь напрягают баги оболочки, которую я вынужден использовать для отладки (пишу в Slick Edit). Качество и правильность кодогенерации не оценивал. Но сейчас в проекте как раз ищу пару плавающих багов. Есть подозрение, что портится память. Может быть и компилятор виновать. Но, с другой стороны, хардфолты не вылетают. Но это ни о чём не говорит.

А вы до сих пор 7.80.4 используете. Нашёл в вашем сообщении.

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


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

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

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

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

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

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

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

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

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

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