| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| C & ASM заедно http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=3026 |
Страница 1 от 1 |
| Автор: | mndsl [ Пет Окт 06, 2006 4:01 pm ] |
| Заглавие: | C & ASM заедно |
Заглавието на темата не е много подходящо ама не се сетих за друго. Както и да е, ще опиша какво ми трябва. Имам една програма писана на ASM, която е доста дълга. Искам към нея да вмъкна една функция, която обаче е писана на C. Вероянтно при компилирането може да се укажа нещо на линкера да свърже двата файла ама хич не ми е ясно как става и дали изобщо може да стане. А да пренапиша ASM програмата на C e много трудно, щото първо е доста голяма, и второ нямам толкова време на разположение. Дайте някаква идея как става номера. Компилатора, който ползвам е Hi-tech PICC-18 v.9.50 a процесора е 18F458, ако има някакво значение. |
|
| Автор: | Nikola Kirov [ Пет Окт 06, 2006 5:11 pm ] |
| Заглавие: | |
Ами може да си компилираш отделно функцията да вземеш листинга който ти генерира компилатора за нея и да си го сложиш в асемблерския код. Има и друг подход но е по сложен. |
|
| Автор: | mndsl [ Пет Окт 06, 2006 5:20 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
Това става за по-прости функции. При мен функцията прави операции с числа с плаваща запетая и кода става доста обемен, а и доста разпръснат. Отделно че извиква функции, които са дефинирани в различни библиотеки, трябва да компилирам и библиотеките и т.н... много играчка става и се съмнявам, че ще стане без грешки.
Слушам |
|||||||||||||||||||
| Автор: | Nikola Kirov [ Пет Окт 06, 2006 5:49 pm ] |
| Заглавие: | |
Явно ще се зориш. Не съм правил такова нещо с Hi-Tech -а. Но при IAR става като си сложиш в проекта и асемблерския код и C кода. И компилацията на асемблерския сорс се прави с асемблера на IAR. Импортваш C функцията и си я ползваш в асемблера. Но има преправяне на това онова за асемблерския сорс заради разлика в някои дреболии между Microchip i IAR асм компилаторите. IAR си има един pdf,Mising C and Asember Code и там детаилно е описано кое как се прави. Но това е за IAR. Подобен трябва да е подхода и при Hi-Tech. |
|
| Автор: | Gogo [ Пет Окт 06, 2006 7:30 pm ] |
| Заглавие: | |
Заради всичко описано до тука се прави точно обратно - пише се на С и се вмъкват функции на асемблер. Това (обратното) дето си решил да направиш, ако стане, ще стане със 1000 (не 300) зора... Най-малкото с което трябва да се съобразиш са адресните пространства. При Hi-Tech директивите за управление на паметта са малко шибани |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|