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

37 минут назад, ericN сказал:

Может какой-нибудь директивой сказать компилятору, чтоб он не оптимизировал и сделал то, что от него просят? Ни как не могу заставить компилятор пройти по циклу 4 раза!

Попробуйте скомпилировать модуль с отключенной оптимизацией (опция -O0).

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


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

В 21.03.2023 в 14:15, makc сказал:

Попробуйте скомпилировать модуль с отключенной оптимизацией (опция -O0).

помогло. добавил 

#pragma GCC optimize("O0")
static int ch423_probe(struct i2c_client *client)
{

Тело for стало выполняться как положено 4 раза. 

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


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

1 час назад, ericN сказал:

помогло. добавил 

#pragma GCC optimize("O0")
static int ch423_probe(struct i2c_client *client)
{

Тело for стало выполняться как положено 4 раза. 

Какая у вас версия компилятора, который творит такой беспредел?

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


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

вообще собираю на хосте с помощью buildroot. в опциях билрута стоит версия 10. этим же buildroot-ом собрал кросскомпилятор для хоста. кросскомпилятор выдает следующее

Цитата

~/tools/arm-rez2-linux-gnueabihf_sdk-buildroot/bin/arm-linux-gcc --version
arm-linux-gcc.br_real (Buildroot 2021.11-1126-gfeb9185fc1-dirty) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

думаю, что этим же gcc собирается ядро. 

 

ps удалил лишние printk, несколько раз собрал с прагмой O0 и без неё. результат подтвердился. с прагмой O0 цикл выполняется 4 раза, без неё - 5 раз.  

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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