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

Как указать размер стека и кучи в Makefile

Делаю простую програмку в ARM-linux для платки SAMA5d3-xplained

смысл в том, что я хочу открыть файловую систему /sys/class/gpio,

настроить GPIO на выходы и подавать на выход GPIO по желанию 0 или 1

написал функцию, которая инициализирует 8 выводов и устанавливает их в 1

однако при попытке запустить, получаю segmentation fault

начал разбираться, понял, что проблема в том, что надо как то инициализировать стек

вот так не работает:

/**
* Инициализация селекторов: все в 1-цу. Канал не выбран.
* ПИНы нумеруются с 137 для PE9 до 144 для PE16
*/
int sel_init(void)
{
   int fd, i;
   char str_pin[8];
   char str_dir[64];
   char str_val[64];
   int res = -1;

   do {

/* echo pin# > /sys/class/gpio/export - открываем только для записи */
for (i = PIN_START; i < PIN_STOP; i++) {
    sprintf(str_pin, "%d", i);	/* Номер пина */
    sprintf(str_dir, "/sys/class/gpio/gpio%d/direction", i);	/* направление пина */
    sprintf(str_val, "/sys/class/gpio/gpio%d/value", i);	/* Значение на выходе: 0 или 1 */

    printf("INFO: pin%d\n", i);

*****

 

а вот так - работает

 

/**
* Инициализация селекторов: все в 1-цу. Канал не выбран.
* ПИНы нумеруются с 137 для PE9 до 144 для PE16
*/
int sel_init(void)
{
   int fd, i;


static    char str_pin[8];
static    char str_dir[64];
static    char str_val[64];
   int res = -1;

 

проблема даже возникает в том случае, когда я даже не вызываю функцию sel_init() -

похоже она просто размещается в памяти и портит память

как это исправить?

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


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

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

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

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

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

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

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

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

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

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