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

 
 
 
Reply to this topicStart new topic
> Функции ht-picc18, Функции ht-picc18
Danis
сообщение Feb 17 2009, 10:42
Сообщение #1


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Проблема с функциями в ht-picc18. Для решения специфических задач мне необходимо чтобы код заключенный внутри некоторой функции выполнялся в некотором отведенном блоке flash памяти для этой функции. В действительности если пошагово отслеживать программу в окне Program Memory, можно видеть, что в функциях происходят переходы(GOTO) по различным адресам во flesh. Например, в некоторой функции при операции умножения курсор выходит из блока данной функции на выше стоящие адреса flash, делает там некоторые действия и возвращается обратно в блок этой функции. Можно ли как-то этого избежать и заключить весь код данной функции внутри одного блока?


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Feb 17 2009, 10:52
Сообщение #2


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

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



Цитата(Danis @ Feb 17 2009, 13:42) *
можно видеть, что в функциях происходят переходы(GOTO) по различным адресам во flesh. Например, в некоторой функции при операции умножения курсор выходит из блока данной функции на выше стоящие адреса flash, делает там некоторые действия и возвращается обратно в блок этой функции. Можно ли как-то этого избежать и заключить весь код данной функции внутри одного блока?

На самом деле не GOTO, а CALL, это стандартный способ вызова подпрограммы.
При выполнении стандартных функций вызываются подпрограммы из стандартных библиотек.
Зачем нужно этого избегать?


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Danis
сообщение Feb 17 2009, 12:34
Сообщение #3


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(MrYuran @ Feb 17 2009, 14:52) *
На самом деле не GOTO, а CALL, это стандартный способ вызова подпрограммы.
При выполнении стандартных функций вызываются подпрограммы из стандартных библиотек.
Зачем нужно этого избегать?

Я пытаюсь реализовать загрузчик, который находится ниже основной программы. Мой Загрузчик по мере обновления flash стирает куски памяти по 1024 байта, доходит до места вызова подпрограмм из стандартных библиотек и как Вы понимаете прога просто зависает.

Сообщение отредактировал Danis - Feb 17 2009, 12:36


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 17:10
Рейтинг@Mail.ru


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