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

 
 
 
Reply to this topicStart new topic
> HT-PIC C Compiler и переключение памяти программ., HT-PIC C Compiler и переключение памяти
amok
сообщение Aug 26 2005, 10:39
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 31
Регистрация: 26-08-05
Пользователь №: 7 994



Как в HT-PIC C Compiler переключать страницы памяти программ?
Есть ли способ делать это в HI-TECH C Compiler на Си без применения ассемблера?
Go to the top of the page
 
+Quote Post
VAI
сообщение Aug 26 2005, 10:51
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



Он сам все переключит как надо, не волнуйтесь.
Включите генерацию листинга, и посмотрите результат.
ИМХО асм использовать нет нужды, смотрите листинг, оптимизируйте Сишный текст, чтоб результат компиляции был компактным и оптимальным.


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
amok
сообщение Aug 26 2005, 13:19
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 31
Регистрация: 26-08-05
Пользователь №: 7 994



А есть способ, чтобы в пределах одной функции банки переключать из Си?
Go to the top of the page
 
+Quote Post
VAI
сообщение Aug 26 2005, 14:34
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



Посмотрите во вложеном файле.
Я так делал, когда использовал ПИКи.
Функции для работы с eeprom. В функцию передается указатель на массив в ОЗУ. Он может быть в разных банках.
Пример объявления переменных в разных банках в Global.zip


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
amok
сообщение Aug 26 2005, 15:02
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 31
Регистрация: 26-08-05
Пользователь №: 7 994



Спасибо.

Я имел в виду память программ(страницы памяти программ по 2k, FLASH память).
Go to the top of the page
 
+Quote Post
VAI
сообщение Aug 27 2005, 04:45
Сообщение #6


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



Посмотрите пример бутлодыря в папке ...\HT-PIC\example, там что-то должно быть. Почитайте доку на компилятор, на сайте разработчика есть.
Смысл в том, чтоб как и в "настоящих" компиляторах объявить сегмент и в нем расположить свои функции.
Я уже 3 года пиками не занимаюсь и вспоминаю их, как страшный сон, а проведение программно-аппаратной доработки в старом приборе воспринимаю как кошмар, от которого никуда не деться, и все из-за проклятых банков и убогости системы команд... Но на эту тему я спорить не с кем не буду, у каждого своя религия...

Это кусок из старых исходников для pic16f877.
Код
// и в опциях линкера эту секцию поместим с адреса 0x0800 (-pspline=0800h) и эту область протект не будем!
#pragma psect const%%u=spline

// Код поместим в секцию spl - во второй половине программной памяти, закрытой от чтения
#pragma psect text%%u=spl


P.S.
Странно получилось, вложеные файлы переместились из прошлого моего поста в этот! Неисповедимы пути господни...
Прикрепленные файлы
Прикрепленный файл  1.zip ( 2.34 килобайт ) Кол-во скачиваний: 61
Прикрепленный файл  24lc256.zip ( 1.88 килобайт ) Кол-во скачиваний: 62
Прикрепленный файл  Global.zip ( 1.23 килобайт ) Кол-во скачиваний: 71
 


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
amok
сообщение Aug 27 2005, 12:13
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 31
Регистрация: 26-08-05
Пользователь №: 7 994



Спасибо большое.

Попробую.
Go to the top of the page
 
+Quote Post
Born
сообщение Sep 29 2005, 21:37
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 29-09-05
Пользователь №: 9 073



Сам то он конечно переключает...
Только я вот пытался заставить его сделать sprintf() с указателем на строку в bank2 - в результате - полная ерунда получилась...
С bank0 и bank1 все работает)))
Go to the top of the page
 
+Quote Post
VAI
сообщение Sep 30 2005, 04:05
Сообщение #9


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



2 Born

Все локальные переменные только в банке 0.
Если Вам необходим особый sprintf, посмотрите мой укороченый myprintf (я использую его для мелких MSP430, а раньше использовал для ПИКов).
На его основе и на основе ранее вложеных мной в этой теме файлов (1.zip - пример работы с EEPROM и использования разных банков ОЗУ) можно соорудить необходимый Вам принтф.

Мой Вам совет, бросайте Вы эти ПИКи - МСП, АРМ не труднее в изучении, но намного мощнее и удобнее.
Работать с ПИКами решая более-менее сложную задачу, это трахаться стоя в ластах в гамаке.
Прикрепленные файлы
Прикрепленный файл  myprintf.zip ( 2.81 килобайт ) Кол-во скачиваний: 46
 


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
Born
сообщение Sep 30 2005, 05:21
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 29-09-05
Пользователь №: 9 073



Цитата(VAI @ Sep 30 2005, 10:05)
...
Мой Вам совет, бросайте Вы эти ПИКи - МСП, АРМ не труднее в изучении, но намного мощнее и удобнее.
Работать с ПИКами решая более-менее сложную задачу, это трахаться стоя в ластах в гамаке.
*


Да, я уже и сам к такому выводу пришел...
Для мелочевки AVR, для задач посложнее - ARM...
Я с пиками давно работаю, с тех пор, когда по цене/производительности/доступности они были вне конкуренции...
Go to the top of the page
 
+Quote Post

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

 


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


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