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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> MSPGCC->Проблема->Нид Хелп, Кто реально работал с MSPGCC - помогите плз
msalov
сообщение Mar 4 2008, 06:47
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Цитата(MrYuran @ Mar 4 2008, 08:17) *
Одного не могу понять: чё за хрень насовали в стартап?
На мой взгляд, единственная рабочая инструкция в нём останавливает WDT, далее идёт переход на мэйн.
Так какого было огород городить, хотя может я не понимаю всех тонкостей.
Например, как вам такая конструкция?

110a: 3e 40 00 02 mov #512, r14 ;#0x0200
110e: 3d 40 00 02 mov #512, r13 ;#0x0200
1112: 0d 9e cmp r14, r13 ;

Какой смысл сравнивать 2 одинаковых регистра?
Причём в случае неравенства выполняется другой код, не менее загадочный.
Я не понимаю.

В вашем случае этот код не имеет смысла, а в полноценном проекте перед переходом к main() происходит инициализация данных и стека.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 4 2008, 10:18
Сообщение #17


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(MrYuran @ Mar 4 2008, 11:17) *
Например, как вам такая конструкция?

110a: 3e 40 00 02 mov #512, r14 ;#0x0200
110e: 3d 40 00 02 mov #512, r13 ;#0x0200
1112: 0d 9e cmp r14, r13 ;

Какой смысл сравнивать 2 одинаковых регистра?
Причём в случае неравенства выполняется другой код, не менее загадочный.
Я не понимаю.


Это инициализация инициализированных переменных. Просто у вас их нет. :-)


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Mar 5 2008, 14:59
Сообщение #18


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Прочитайте в документации к GCC про секции .init, .finit


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 25 2008, 08:45
Сообщение #19


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Всё вроде отлично, проект полностью портировал с ИАРа на GCC, но осталась одна такая мелочь, которую я сначала закомментировал, чтоб не мешала, а теперь вот всплыла.

КАК ВЫЧИСЛИТЬ ЛОГАРИФМ?

Библиотека math.h подключена, а вот на log() и pow() линкер ругается - чё, грит, за андефайнед?

Где взять эти функции или как сделать чтобы они работали?
PS: В math.h они прописаны, с самой библиотекой чего-то не то


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 25 2008, 09:00
Сообщение #20


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(MrYuran @ Mar 25 2008, 10:45) *
Библиотека math.h подключена, а вот на log() и pow() линкер ругается - чё, грит, за андефайнед?
math.h - это не библиотека, это заголовочный файл. В нем описывается, что "существуют такие функции, они берут такие-то аргументы и возвращают такие-то значения" чтобы компилятор мог проверить, правильные ли аргументы вы пытаетесь передать в функцию и знал, какие преобразования надо (если надо) сделать с результатом функции. Код самих функций может находиться где угодно - в других объектных файлах, в этом же файле, в библиотеках. В вашем случае надо подключить библиотеку математики libm.a


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
msalov
сообщение Mar 25 2008, 10:23
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Цитата(MrYuran @ Mar 25 2008, 10:45) *
Где взять эти функции или как сделать чтобы они работали?

На этапе линковки добавте параметр -lm и получите эффект, который описал Сергей Борщ
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 25 2008, 10:41
Сообщение #22


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(gotty @ Mar 25 2008, 13:23) *
На этапе линковки добавте параметр -lm и получите эффект, который описал Сергей Борщ

Да, я так и сделал в конце концов. И ещё -lc добавил на всякий.
Правда, log и pow он опять не видит, зато видит logf и powf.

Я так понял, это одно и то же, только аргументы float, а не double.

Мне в общем-то без разницы , только б работало. А чё-то вот не хочет...
Буду копать дальше.

Давеча вон тоже глючило чё-то, пока переменные char в функции не заменил на int.
В мануале по mspgcc почему-то так настоятельно рекомендуют - использовать где можно int вместо char и unsigned int.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 08:13
Рейтинг@Mail.ru


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