MPLAB C18 EEPROM initialization

Sep 02, 2009 358 Replies
ðÒÉ×ÅÔ, Alexander !

20 Sep 09 , 07:09 Alexander Zabairatsky ÐÉÓÁÌ Ë Nickita A Startcev:

NS>> ÞÉÓÌÏ ÁÒÇÕÍÅÎÔÏ×, ×ÅËÔÏÒ ÁÒÇÕÍÅÎÔÏ× -- ×ÐÏÌÎÅ ÌÏÇÉÞÎÏ. NS>> HÏ ÔÁËÉ ÄÁ, ÏÂÙÞÁÊ. :)

AZ> åÓÔÅÓÔ×ÅÎÎÏ - ×ÅÄØ ÔÁË ÎÁÐÉÓÁÎÏ Õ K & R.

NS>> ËÓÔÁÔÉ, Õ ÍÅÎÑ × ÏÄÎÏÍ ÉÚ ÐÒÏÅËÔÏ× ÓÔÁÒÔÁÐ ÓÁÍÏÐÉÓÎÙÊ É × ÍÜÊÎ NS>> ÎÉÞÅÇÏ ÎÅ ÐÅÒÅÄÁÅÔÓÑ.

AZ> ôÁË ÎÅÏÂÑÚÁÔÅÌØÎÏ ÂÙÌÏ É ÎÁÚÙ×ÁÔØ ÅÅ main(), ÍÏÖÎÏ ÂÙÌÏ É ÄÒÕÇÏÅ AZ> ÎÁÚ×ÁÎÉÅ ÐÒÉÌÅÐÉÔØ.

÷ ÜÔÏÍ ÐÒÏÅËÔÅ - ÎÅ ÏÂÑÚÁÔÅÌØÎÏ, ÉÂÏ ÏÎÏ É Ó ÓÔÁÎÄÁÒÔÎÙÍ ÚÁÒÁÂÏÔÁÅÔ.

AZ> á ÓËÏÒÅÅ ÄÁÖÅ _ÎÕÖÎÏ!_ þÔÏÂÙ, ÔÁË ÓËÁÚÁÔØ, ÎÅ AZ> ×ÙÚÙ×ÁÔØ ÎÅÎÕÖÎÙÈ ÁÓÓÏÃÉÁÃÉÊ, Á, ÚÁÏÄÎÏ, É ÞÔÏÂÙ ÞÅÒÅÚ 5 ÌÅÔ ÐÏ AZ> ÚÁÂÙ×ÞÉ×ÏÓÔÉ ÎÅ ×ÏÚÎÉËÌÏ ÖÅÌÁÎÉÑ ÚÁÐÕÓÔÉÔØ ÅÅ ÓÏ ÓÔÁÎÄÁÒÔÎÙÍ AZ> ÓÔÁÒÔÁÐÏÍ.

á × ÄÒÕÇÏÍ ÐÒÏÅËÔÅ ÔÁË É ÓÄÅÌÁÎÏ. ðÏÔÏÍÕ ÞÔÏ ÏÎ × ÐÒÉÎÃÉÐÅ ÎÅ ÂÕÄÅÔ ÒÁÂÏÔÁÔØ "ÐÏÄ ÄÏÓÏÍ".

AZ> ó×ÏÊ ÓÔÁÒÔÁÐ - ÓÁÍ ÈÏÚÑÉÎ.

éÍÅÎÎÏ ÔÁË.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ÎÏ ÎÅ ËÕÒÉÃÁ ÕÖ ÎÁÄ ÎÉÍ - ËÁÄÉÌØÎÉà ÂÌÁÇÏ×ÏÎÎÙÊ ÄÙÍ. HÅ ÓÌÙÛÎÏ ÐÅÎØÑ × ÐÏÚÄÎÉÊ ÞÁÓ.

äÏÂÒÏÇÏ ×ÒÅÍÅÎÉ ÓÕÔÏË, Slav!

19 Sep 09 22:09, Slav Matveev -> Michael Belousoff:

NS>>> ïÞÅÎØ ÞÁÓÔÏ × ÚÁÇÏÌÏ×ÏÞÎÉËÁÈ ÎÁÐÉÓÁÎÏ extern "C" int main(int, NS>>> char**); Á ×ÓÅ ÏÓÔÁÌØÎÙÅ ÐpÅÏÂpÁÚÏ×ÁÎÉÑ yÖÅ ÎÁ ÓÏ×ÅÓÔÉ ÀÚÅpÁ. :) MB>> ÷Ï-×Ï. ðÏÞÅÍy-ÔÏ ×ÓÅ yÐÏpÎÏ ÐÉÛyÔ argc É argv. üÔÏ, ÎÁ×ÅpÎÏ, ÎÅÞÔÏ MB>> ×pÏÄÅ "Hello world!" - ÔpÁÄÉÃÉÑ. SM> argument counter SM> argument values SM> ×ÓÅ ÖÄÕ: ÐÒÏ ÔÒÅÔØÀ ÐÅÒÅÍÅÎÎÕÀ ×ÓÐÏÍÎÑÔ ÉÌÉ ÎÅÔ.

äÙË char **envp, ×ÅÓÔÉÍÏ.
äÏÂÒÏÇÏ ×ÒÅÍÅÎÉ ÓÕÔÏË, Alexander!

20 Sep 09 07:09, Alexander Zabairatsky -> Nickita A Startcev:

NS>> ËÓÔÁÔÉ, Õ ÍÅÎÑ × ÏÄÎÏÍ ÉÚ ÐÒÏÅËÔÏ× ÓÔÁÒÔÁÐ ÓÁÍÏÐÉÓÎÙÊ É × ÍÜÊÎ NS>> ÎÉÞÅÇÏ ÎÅ ÐÅÒÅÄÁÅÔÓÑ. AZ> ôÁË ÎÅÏÂÑÚÁÔÅÌØÎÏ ÂÙÌÏ É ÎÁÚÙ×ÁÔØ ÅÅ main(), ÍÏÖÎÏ ÂÙÌÏ É ÄÒÕÇÏÅ AZ> ÎÁÚ×ÁÎÉÅ ÐÒÉÌÅÐÉÔØ.

gcc --entry=zhopa

AZ> á ÓËÏÒÅÅ ÄÁÖÅ _ÎÕÖÎÏ!_

åÓÌÉ ÕÖ ÄÅÌÁÔØ ÞÅÒÅÚ ()() - ÔÏ ÐÏ ÐÏÌÎÏÊ ÐÒÏÇÒÁÍÍÅ :-)

Hello, Alexey Vissarionov! You wrote in conference fido7.ru.embedded to Slav Matveev on Sun, 20 Sep

2009 20:57:42 +0400:

NS>>>> Очень часто в заголовочниках написано extern "C" int main(int, NS>>>> char**); а все остальные пpеобpазования yже на совести юзеpа. :)

MB>>> Во-во. Почемy-то все yпоpно пишyт argc и argv. Это, навеpно, нечто MB>>> вpоде "Hello world!" - тpадиция.

SM>> argument counter argument values все жду: про третью переменную SM>> вспомнят или нет.

AV> Дык char **envp, вестимо.

Что, однако, характерно, в subj прототип этой функции выглядит как

void mains(void);

dima

formatting link

Hello, Dmitry Orlov! You wrote in conference fido7.ru.embedded to Alexey Vissarionov on Sun, 20 Sep 2009 18:12:28 +0000 (UTC):

SM>>> argument counter argument values все жду: про третью переменную SM>>> вспомнят или нет.

AV>> Дык char **envp, вестимо.

DO> Что, однако, характерно, в subj прототип этой функции выглядит как

DO> void mains(void);

без s конечно :)

dima

formatting link

Hi Kirill!

22 Sep 09 14:06, Kirill Frolov wrote to Nickita A Startcev:

KF> ÷ ÒÅÁÌØÎÏÊ ÖÉÚÎÉ argc>=1 É argv ÓÏÄÅÒÖÉÔ ÈÏÔØ ÞÔÏ-ÔÏ ×ÒÏÄÅ KF> "./a.out"...

× ÒÅÁÌØÎÏÊ ÖÉÚÎÉ Õ ÍÅÎÑ ÂÙÌ ËÏÍÐÉÌÑÔÏÒ É ÌÉÎËÅÒ, ÎÏ ÎÅ ÂÙÌÏ ÂÉÂÌÉÏÔÅË, ÐÏÜÔÏÍÕ ÓÔÁÒÔÁÐ Ñ ÐÉÓÁÌ ÓÁÍ É main ÉÓËÌÀÞÉÔÅÌØÎÏ ÄÁÎØ Õ×ÁÖÅÎÉÑ ÔÒÁÄÉÃÉÑÍ. á ÐÏÓËÏÌØËÕ ÚÁÄÁÞÁ ÂÙÌÁ ÞÉÓÔÁÑ ÍÁÔÅÍÁÔÉËÁ, ÎÉÞÅÇÏ × main ÎÅ ÐÅÒÅÄÁ×ÁÌÏÓØ ÚÁ ÎÅÎÁÄÏÂÎÏÓÔØÀ. ÐÏÈÏÄÕ ÄÅÌÁ ÎÁ embeddeb-ÓÉÓÔÅÍÁÈ ÔÁËÏÅ ×ÓÔÒÅÞÁÅÔÓÑ ÅÝÅ ÞÁÝÅ.

ps. ÓÔÁÒÔÁÐ, ÐÏ-ÍÏÅÍÕ, ÂÙÌ ÔÉÐÁ

start: mov #1000,sp jsr pc,_main emt 377 .end start

Slav.

Sat Sep 19 2009 04:03, Alexander Zabairatsky wrote to Kirill Frolov:

AZ>>> Впрочем, int main(int argc, char *argv[]) тоже весьма полезная AZ>>> вещь. KF>> Абаснуй, зачем оно нужно и чем отличается от точно такого варианта KF>> без ++ ? AZ> А не бывает такого без плюсов. Без них оно будет: AZ> int main(argc, argv) AZ> int argc; AZ> char **argv; AZ> {

Я про т.н. ANSI-C говорю, а не C им. Кернигана и Ритчи образца 1970-го года.

Sat Sep 19 2009 00:10, Dmitry Orlov wrote to Nickita A Startcev:

DO> Впрочем, в DO> мелком embedded жесткое следование стандартам не слишком актуально. DO> Перенос на другую платформу дело в любом случае ручное и трудоемкое и не DO> из-за расширений компиляторов.

Ага. Из-за рук писавших говнокод. За редкими исключениями, когда софт написан исключительно под железо.

Mon Oct 19 2009 14:51, Michael Belousoff wrote to Dmitry Orlov:

MB> Интеpесно, а называть их именно argc и argv - это тоже тpебования MB> стандаpта, или компилятоpа? Кто-то запpещает писать так: MB> int main(int chush, char *fignya[]) MB> { MB> ..... MB> }

MB> ?

Всю жизнь писал вместо argc и argv, соответственно, ac и av. Многабукофниасилел. Это, в принципе, пофиг...

MB> Пpотив main ничего не имею :-)))

И не получится. Майн жоска в _start закодирован, типа jp _main...

Sat Sep 19 2009 23:09, Slav Matveev wrote to Michael Belousoff:

NS>>> Очень часто в заголовочниках написано extern "C" int main(int, NS>>> char**); а все остальные пpеобpазования yже на совести юзеpа. :) MB>> Во-во. Почемy-то все yпоpно пишyт argc и argv. Это, навеpно, нечто SM> argument counter SM> argument values SM> все жду: про третью переменную вспомнят или нет.

char **environment_variables ? Hе ясно только, на кой чёрт его туда передавать.

Sun Sep 20 2009 02:14, Nickita A Startcev wrote to Michael Belousoff:

NAS> кстати, у меня в одном из проектов стартап самописный и в мэйн ничего не NAS> передается.

В реальной жизни argc>=1 и argv содержит хоть что-то вроде "./a.out"...

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 22 Sep

2009 09:58:00 +0000 (UTC):

DO>> Впрочем, в мелком embedded жесткое следование стандартам не DO>> слишком актуально. DO>> Перенос на другую платформу дело в любом случае ручное и DO>> трудоемкое и не из-за расширений компиляторов.

KF> Ага. Из-за рук писавших говнокод. За редкими исключениями, когда KF> софт написан исключительно под железо.

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

dima

formatting link

ðÒÉ×ÅÔ, Kirill !

22 Sep 09 , 14:06 Kirill Frolov ÐÉÓÁÌ Ë Nickita A Startcev:

NAS>> ËÓÔÁÔÉ, Õ ÍÅÎÑ × ÏÄÎÏÍ ÉÚ ÐÒÏÅËÔÏ× ÓÔÁÒÔÁÐ ÓÁÍÏÐÉÓÎÙÊ É × ÍÜÊÎ NAS>> ÎÉÞÅÇÏ ÎÅ ÐÅÒÅÄÁÅÔÓÑ.

KF> ÷ ÒÅÁÌØÎÏÊ ÖÉÚÎÉ argc>=1 É argv ÓÏÄÅÒÖÉÔ ÈÏÔØ ÞÔÏ-ÔÏ ×ÒÏÄÅ KF> "./a.out"...

HÅ ×ÓÅÇÄÁ É ÎÅ ×ÅÚÄÅ, Ë ÓÏÖÁÌÅÎÉÀ. ÎÏ ÏÂÙÞÎÏ ÔÁËÉ ÄÁ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... HÁÄÏ ÌÉ ×ÙÂÒÁÔØ ËÁÝÅÎÉÔÁ × ÍÏÄÅÒÁÔÏÒÙ ÍÉÓÔÒÅÓÏ×?

ðÒÉ×ÅÔ, Slav !

22 Sep 09 , 14:46 Slav Matveev ÐÉÓÁÌ Ë Kirill Frolov:

SM> ps. ÓÔÁÒÔÁÐ, ÐÏ-ÍÏÅÍÕ, ÂÙÌ ÔÉÐÁ

SM> start: SM> mov #1000,sp SM> jsr pc,_main SM> emt 377 SM> .end start

ïÂÙÞÎÏ Åݣ BSS ÚÁÎÕÌÑÀÔ É ÓÔÅË ÎÁÓÔÒÁÉ×ÁÀÔ. HÏ × ÎÅËÏÔÒÙÈ ÓÌÕÞÁÑÈ ÍÏÖÎÏ É ÂÅÚ ÜÔÏÇÏ ÏÂÏÊÔÉÓØ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ÐÒÏÂÌÅÍÙ ÛÅÒÉÆÁ ×ÏÌÎÕÀÔ ÉÎÄÅÊÃÅ×

Hi Nickita!

22 Sep 09 20:43, Nickita A Startcev wrote to Slav Matveev:

SM>> mov #1000,sp SM>> jsr pc,_main SM>> emt 377 SM>> .end start

NS> ïÂÙÞÎÏ Åݣ BSS ÚÁÎÕÌÑÀÔ É ÓÔÅË ÎÁÓÔÒÁÉ×ÁÀÔ. NS> HÏ × ÎÅËÏÔÒÙÈ ÓÌÕÞÁÑÈ ÍÏÖÎÏ É ÂÅÚ ÜÔÏÇÏ ÏÂÏÊÔÉÓØ.

ÎÅ ÚÎÁÀ ÞÔÏ ÔÁËÏÅ bss, ÎÏ ÓÔÅË ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÐÅÒ×ÏÊ ÓÔÒÏËÏÊ.

Slav.

äÏÂÒÏÇÏ ×ÒÅÍÅÎÉ ÓÕÔÏË, Kirill!

22 Sep 09 14:01, Kirill Frolov -> Michael Belousoff:

MB>> ðpÏÔÉ× main ÎÉÞÅÇÏ ÎÅ ÉÍÅÀ :-))) KF> é ÎÅ ÐÏÌÕÞÉÔÓÑ. íÁÊÎ ÖÏÓËÁ × _start ÚÁËÏÄÉÒÏ×ÁÎ, ÔÉÐÁ jp _main...

îÅ ÔÁË ÕÖ É ÖïÓÔËÏ - ÐÁÒÁÍÅÔÒ gcc --entry ÎÉËÔÏ ÎÅ ÏÔÍÅÎÑÌ.
ðÒÉ×ÅÔ, Slav !

22 Sep 09 , 22:36 Slav Matveev ÐÉÓÁÌ Ë Nickita A Startcev:

SM>>> mov #1000,sp SM>>> jsr pc,_main SM>>> emt 377 SM>>> .end start

NS>> ïÂÙÞÎÏ Åݣ BSS ÚÁÎÕÌÑÀÔ É ÓÔÅË ÎÁÓÔÒÁÉ×ÁÀÔ. NS>> HÏ × ÎÅËÏÔÒÙÈ ÓÌÕÞÁÑÈ ÍÏÖÎÏ É ÂÅÚ ÜÔÏÇÏ ÏÂÏÊÔÉÓØ.

SM> ÎÅ ÚÎÁÀ ÞÔÏ ÔÁËÏÅ bss,

ÜÔÏ ÎÅÓÔÅËÏ×ÙÅ (ÓÔÁÔÉÞÅÓËÉÅ É ÇÌÏÂÁÌØÎÙÅ) ÐÅÒÅÍÅÎÎÙÅ, ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÅ ÎỌ̃Í.

SM> ÎÏ ÓÔÅË ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÐÅÒ×ÏÊ ÓÔÒÏËÏÊ.

íÎÏÇÉÅ ËÏÍÐÉÌÑÔÏÒÙ ÅÝÅ ÈÏÔÑÔ sp=bp, ÎÏ ÒÁÚ ÐÒÏËÁÔÉÌÏ - ÚÎÁÞÉÔ ÐÒÏËÁÔÉÌÏ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ÷ÁÚÅÌÉÎ, ÚÁÒÑÖÅÎÙÊ ëÁÛÐÉÒÏ×ÓËÉÍ

Hi Nickita!

23 Sep 09 08:52, Nickita A Startcev wrote to Slav Matveev:

SM>> ÎÅ ÚÎÁÀ ÞÔÏ ÔÁËÏÅ bss,

NS> ÜÔÏ ÎÅÓÔÅËÏ×ÙÅ (ÓÔÁÔÉÞÅÓËÉÅ É ÇÌÏÂÁÌØÎÙÅ) ÐÅÒÅÍÅÎÎÙÅ, NS> ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÅ ÎỌ̃Í.

ÜÔÏ ÄÏÌÖÎÏ ÂÙÔØ × ÓÔÁÒÔÁÐÅ, ËÏÔÏÒÙÊ ÐÏÄËÌÀÞÁÅÔÓÑ ÉÚ ÂÉÂÌÉÏÔÅËÉ?

SM>> ÎÏ ÓÔÅË ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÐÅÒ×ÏÊ ÓÔÒÏËÏÊ.

NS> íÎÏÇÉÅ ËÏÍÐÉÌÑÔÏÒÙ ÅÝÅ ÈÏÔÑÔ sp=bp, ÎÏ ÒÁÚ ÐÒÏËÁÔÉÌÏ - ÚÎÁÞÉÔ NS> ÐÒÏËÁÔÉÌÏ.

Á ÍÎÏÇÉÅ ËÏÍÐÉÌÑÔÏÒÙ ÎÅ ÈÏÔÑÔ ÏÂÌÏÍÉÔÓÑ × ×ÉÄÕ ÏÔÓÕÔÓÔ×ÉÑ bp ÎÁ ÜÔÏÊ ÁÒÈÉÔÅËÔÕÒÅ? :)

Slav.

ðÒÉ×ÅÔ, Slav !

23 Sep 09 , 12:36 Slav Matveev ÐÉÓÁÌ Ë Nickita A Startcev:

SM>>> ÎÅ ÚÎÁÀ ÞÔÏ ÔÁËÏÅ bss,

NS>> ÜÔÏ ÎÅÓÔÅËÏ×ÙÅ (ÓÔÁÔÉÞÅÓËÉÅ É ÇÌÏÂÁÌØÎÙÅ) ÐÅÒÅÍÅÎÎÙÅ, NS>> ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÅ ÎỌ̃Í.

SM> ÜÔÏ ÄÏÌÖÎÏ ÂÙÔØ × ÓÔÁÒÔÁÐÅ, ËÏÔÏÒÙÊ ÐÏÄËÌÀÞÁÅÔÓÑ ÉÚ ÂÉÂÌÉÏÔÅËÉ?

áÇÁ. ÉÍÑ ÓÅËÃÉÉ Ó BSS ÉÚ×ÅÓÔÎÏ, ÒÁÚÍÅÒÙ - ÓÔÁÎÕÔ ÉÚ×ÅÓÔÎÙ ÐÏÓÌÅ ÌÉÎËÏ×ËÉ.

SM>>> ÎÏ ÓÔÅË ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÐÅÒ×ÏÊ ÓÔÒÏËÏÊ.

NS>> íÎÏÇÉÅ ËÏÍÐÉÌÑÔÏÒÙ ÅÝÅ ÈÏÔÑÔ sp=bp, ÎÏ ÒÁÚ ÐÒÏËÁÔÉÌÏ - ÚÎÁÞÉÔ NS>> ÐÒÏËÁÔÉÌÏ.

SM> Á ÍÎÏÇÉÅ ËÏÍÐÉÌÑÔÏÒÙ ÎÅ ÈÏÔÑÔ ÏÂÌÏÍÉÔÓÑ × ×ÉÄÕ ÏÔÓÕÔÓÔ×ÉÑ SM> bp ÎÁ ÜÔÏÊ ÁÒÈÉÔÅËÔÕÒÅ? :)

HÕ, ÜÔÁ, ÉÚ×ÉÎÉÔÅ. :)

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ËÕÐÁÅÔÓÑ Ó ËÒÕÇÌÙÍÉ ÕÔËÁÍÉ

Hello, Slav Matveev! You wrote in conference fido7.ru.embedded to Nickita A Startcev on Wed, 23 Sep 2009 11:36:07 +0400:

SM>>> не знаю что такое bss,

NS>> это нестековые (статические и глобальные) переменные, NS>> инициализированные нулём.

SM> это должно быть в стартапе, который подключается из библиотеки?

Hу да, а где же этому еще быть?

dima

formatting link

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required