RTV forum PL | NewsGroups PL

PIC czy AVR? Doświadczenia z kompilatorami HiTech i GCC w programowaniu uC

PIC vs AVR

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - PIC czy AVR? Doświadczenia z kompilatorami HiTech i GCC w programowaniu uC

Goto page Previous  1, 2, 3 ... , 14, 15, 16  Next

Sylwester Łazar
Guest

Tue Apr 08, 2014 9:38 pm   



Quote:
A czego oczekujesz od kogos kto ma wszytko napisane w asm na PICa ? Smile
To wlasnie najwieksza "zaleta" asmeblera ktora go IMHO calkowicie
dyskwalifikuje w komercyjnym uzyciu - nie zmienisz rodziny
mikrokontrolero chyba ze napiszesz sobie wszystko od nowa.
Szanowny Kolego!

Twoja wiedza na temat mojej osoby powiedzmy delikatnie,
jest mało precyzyjna.
Ja pisałem w C 20 lat temu, jak Twoi koledzy na PW nie umieli
sklecić prostego kodu w ASM na laborce, który działa szybciej niż kod w C.
Jest to o tyle zastanawiające, że źródła C można było podglądnąć po
przekompilowaniu.
Jeśli, jak piszesz, to była grupa osób i wszystkie stwierdziły, że nie da
się zrobić tego co zrobił kompilator,
to coś w tej historii się nie klei.
Nie wiem jak to wygląda w tej chwili z rankingiem uczelni wyższych
technicznych, ale
jeśli jest tak jak piszesz, to znaczy, że przynajmniej ta grupa robiła złą
robotę.

Oprócz tego napisałem trochę kodu na uC innych firm niż Microchip.
Poza tym, nie wiem, czy wiesz, ale Microchip ma uC 16-bitowe oraz 32-bitowe.
32MX są z rdzeniem MIPS.
O ile 12F, 16F, 18F stanowią pewną wspólna grupę,
to z pewnością nie można tego powiedzieć o dsPIC30/33,
którego budowa jest zupełnie inna.
Z MX32 jest jeszcze inaczej, gdyż montują rdzeń kupiony od firmy na literkę
N, H, S lub innej.
Więc jak widzę, kiedy ludzie mówią:
"ten to co pisze na te PICi", to wzrusza mnie prostota myślenia.
Pamiętam, jak kiedyś pewna osoba zapytała:
"A te PICi mają już przerwania?"
Znam takie sformułowania i mnie nie bawią, bo świadczą tylko o pokazaniu,
kto chce być górą.
W szczególności śmieszne się wydaje, kiedy ktoś ma doświadczenia w A, B i C,
F, H, I, P, M, Z,
a drugi liznął tylko a i C i śmieje się z doświadczeń z literki A.
Przy czym jego C polega na korzystaniu z H.
Konkretnie ".h" i to cudzych Smile
W nauce liczy się prawda, a nie rodzaj procka.
Żaden uC nie nadrobi umiejętności kodera-programisty,
mimo, że da się wybrać taki, który wykona kiepski kod x razy szybciej.
S.

Sylwester Łazar
Guest

Tue Apr 08, 2014 9:50 pm   



Quote:
Równie dobrze mógłbyś spojrzeć na temperaturę za oknem i jak ci wyjdzie
1,
to oznacza, że
nie warto pisać w ASM, bo to to samo co w C.

A warto ? Pytam powaznie bo mimo ze lubie assembler to nijak mi nie
wychodzi ze warto.
Zależy czym się zajmujesz.

Ja lubię w ASM, dlatego, że podziwiam pracę inżynierów, któzy projektują
takie skomplikowane rdzenie.
Traktuje to jako swego rodzaju wyzwanie.
Jeżeli trzeba dodatkowo zrobić coś szybko, to cieszę się, że mogę
wykorzystać swoje umiejętności.
Lubię też w C, ale to głównie dlatego, że fajnie się pisze i wygodnie.
Ale realizacji wyzwań tam nie widzę.
Chyba w walce, aby zmieścić się w zasobach i prędkościach.

Np. teraz.
Zastanawiam się, w jakich przypadkach kompilator C używa takiego rozkazu z
dsPIC30:
np.
MAC W4*W5, A, W4, [W8]+=2, W5, [W10]+=2, [W13]+=2

1) pomnożyć 2 rejestry 16-bitowe
2) dodać je do 40-bitowego akumulatora
3) pobrać komórkę (16-bitów ma się rozumieć) z pamięci do rejestru
4) i jeszcze jedną - tak samo
5) zaokrąglić do 16-bitów i zapisać drugi akumulator B do rejestru lub
pamięci
6) zwiększyć wskaźnik na pobieraną z pamięci daną
7) i drugiego wskaźnika także.
Cool zwiększyć też i ten wskaźnik zapisywania B do pamięci

To wszystko w 1 instrukcji. dla 30F4011@ fcy=30MHz trwa 33 ns.
S.

Pszemol
Guest

Tue Apr 08, 2014 10:13 pm   



"Sylwester Łazar" <info@alpro.pl> wrote in message
news:li1r2c$vua$1@mx1.internetia.pl...
Quote:
W nauce liczy się prawda, a nie rodzaj procka.

W jakiej nauce?

Quote:
Żaden uC nie nadrobi umiejętności kodera-programisty,
mimo, że da się wybrać taki, który wykona kiepski kod x razy szybciej.

I wykonanie kiepskiego kodu x razy szybciej to jest właśnie
sposób na nadrobienie braku umiejętności kodera-programisty.
Niestety.

Ale - najważniejsze "w nauce" są założenia projektowe...
Jeśli projekt masz ukończyć w zadanym czasie za zadaną
kwotę kosztów przy zadanej efektywności/wydajności
końcowego programu to czasem trzeba użyć C/C++
a czasem trzeba użyć assemblera i warto znac oba aby
nie mieć ograniczonego wyboru.
Nie jest prawdą że ZAWSZE opłaca się dopieszczać kod
z dokładnością do każdej instrukcji assemblera. Tym bardziej
jeśli konsekwencją jest np. wyjście poza budżet pieniężny
lub czasowy całego projektu.
A więc można tą długą dyskusję podsumować twierdzeniem
że nie należy podchodzić do tego zbyt fanatycznie i stosować
takie narzędzia aby osiągnąć zamierzony cel w zamierzonym czasie.

Sylwester Łazar
Guest

Tue Apr 08, 2014 10:23 pm   



Quote:
W nauce liczy się prawda, a nie rodzaj procka.

W jakiej nauce?

Żaden uC nie nadrobi umiejętności kodera-programisty,
mimo, że da się wybrać taki, który wykona kiepski kod x razy szybciej.

I wykonanie kiepskiego kodu x razy szybciej to jest właśnie
sposób na nadrobienie braku umiejętności kodera-programisty.
Niestety.

Ale - najważniejsze "w nauce" są założenia projektowe...
Jeśli projekt masz ukończyć w zadanym czasie za zadaną
kwotę kosztów przy zadanej efektywności/wydajności
końcowego programu to czasem trzeba użyć C/C++
a czasem trzeba użyć assemblera i warto znac oba aby
nie mieć ograniczonego wyboru.
Nie jest prawdą że ZAWSZE opłaca się dopieszczać kod
z dokładnością do każdej instrukcji assemblera. Tym bardziej
jeśli konsekwencją jest np. wyjście poza budżet pieniężny
lub czasowy całego projektu.
A więc można tą długą dyskusję podsumować twierdzeniem
że nie należy podchodzić do tego zbyt fanatycznie i stosować
takie narzędzia aby osiągnąć zamierzony cel w zamierzonym czasie.

Tym razem zgadzam się w 100%.
Co do pytania o naukę.
Mi się wydaję, że wiedza typu Know-how, jest jak najbardziej nauką.
Nie wyobrażam sobie programisty-kodera, któremu zada się pracę:
Napisz kod od 20 do 300 linijki kody,
a ten robi po kolei:20, 21, 23 itp.
To nie kopanie rowu, choć lubię czasem jakiś rów wykopać Smile
Nie trzeba myśleć zbyt wiele.
S.

Pszemol
Guest

Tue Apr 08, 2014 11:21 pm   



"Sylwester Łazar" <info@alpro.pl> wrote in message
news:li1tn5$8vs$1@mx1.internetia.pl...
Quote:
Ale - najważniejsze "w nauce" są założenia projektowe...
Jeśli projekt masz ukończyć w zadanym czasie za zadaną
kwotę kosztów przy zadanej efektywności/wydajności
końcowego programu to czasem trzeba użyć C/C++
a czasem trzeba użyć assemblera i warto znac oba aby
nie mieć ograniczonego wyboru.
Nie jest prawdą że ZAWSZE opłaca się dopieszczać kod
z dokładnością do każdej instrukcji assemblera. Tym bardziej
jeśli konsekwencją jest np. wyjście poza budżet pieniężny
lub czasowy całego projektu.
A więc można tą długą dyskusję podsumować twierdzeniem
że nie należy podchodzić do tego zbyt fanatycznie i stosować
takie narzędzia aby osiągnąć zamierzony cel w zamierzonym czasie.

Tym razem zgadzam się w 100%.

No to fajnie.

Quote:
Co do pytania o naukę.
Mi się wydaję, że wiedza typu Know-how, jest jak najbardziej nauką.
Nie wyobrażam sobie programisty-kodera, któremu zada się pracę:
Napisz kod od 20 do 300 linijki kody,
a ten robi po kolei:20, 21, 23 itp.
To nie kopanie rowu, choć lubię czasem jakiś rów wykopać Smile
Nie trzeba myśleć zbyt wiele.

A mi się wydaje, że pisanie kodu (tworzenie programów) to rodzaj
rzemiosła. Dobry programista to tak jak dobry szewc lub spawacz.
Do naukowca to mu jednak trochę brakuje, choć przyznaję że nauka
i inżynieria często sobie nawzajem pomaga i idzie w parze...

Sylwester Łazar
Guest

Tue Apr 08, 2014 11:35 pm   



Quote:
A mi się wydaje, że pisanie kodu (tworzenie programów) to rodzaj
rzemiosła. Dobry programista to tak jak dobry szewc lub spawacz.
Do naukowca to mu jednak trochę brakuje, choć przyznaję że nauka
i inżynieria często sobie nawzajem pomaga i idzie w parze...
Tym razem zgadzam się w 50%.

Just swap it!
Łatwo to sprawdzisz, jak każesz szewcowi czy spawaczowi napisać prosty kod w
C.
W drugą stronę:
Ja nie mam problemu z prostym szyciem buta czy pospawaniem palnikiem
acetylenowo-tlenowym
prostej konstrukcji.
S.

Pszemol
Guest

Wed Apr 09, 2014 12:49 am   



"Sylwester Łazar" <info@alpro.pl> wrote in message
news:li21th$ms3$1@mx1.internetia.pl...
Quote:
A mi się wydaje, że pisanie kodu (tworzenie programów) to rodzaj
rzemiosła. Dobry programista to tak jak dobry szewc lub spawacz.
Do naukowca to mu jednak trochę brakuje, choć przyznaję że nauka
i inżynieria często sobie nawzajem pomaga i idzie w parze...
Tym razem zgadzam się w 50%.
Just swap it!
Łatwo to sprawdzisz, jak każesz szewcowi czy spawaczowi napisać
prosty kod w C.
W drugą stronę:
Ja nie mam problemu z prostym szyciem buta czy pospawaniem
palnikiem acetylenowo-tlenowym prostej konstrukcji.

Napisać prosty kod w C lub pospawać prostą konstrukcję potrafi amator.

Dobry rzemieślnik, naprawdę dobry specjalista, tym różni się od amatora
że potrafi DOBRZE i niezawodnie zrobić nawet najtrudniejsze zadania,
projekty w swym fachu...

Jestem pewny, że nie każdy dobry programista-fachowiec będzie umiał
pospawać nawet prostą konstrukcję stalową, bo do tego trzeba znać
choć podstawy, czyli być hobbystą-spawaczem, spawaczem amatorem.

Jestem też pewny, że znajdziesz takiego dobrego spawacza-fachowca,
który będzie umiał napisać prosty kod w C, bo jest akurat hobbystą,
programistą-amatorem.

Wyczuwam w Twoim tonie sugestię o jakiejś wyższości programistów
nad spawaczami czy szewcami, jakbyś nie doceniał kunsztu z jakim pracę
wykonuje DOBRY rzemieślnik. Ja się z tym tonem nie zgadzam nawet w 1%.

Sylwester Łazar
Guest

Wed Apr 09, 2014 1:11 am   



Quote:
Wyczuwam w Twoim tonie sugestię o jakiejś wyższości programistów
nad spawaczami czy szewcami, jakbyś nie doceniał kunsztu z jakim pracę
wykonuje DOBRY rzemieślnik. Ja się z tym tonem nie zgadzam nawet w 1%.
Cenię każdego dobrego spawacza (wiem, jak trudno jest pospawać, bo robiłem).

Cenię każdego dobrego szewca (wiem, bo mój dziadek był szewcem, budowlańcem,
nauczycielem, cukiernikiem, pracował w hucie szkła i był super dziadkiem).
Jednak, wiesz chyba co to jest drabina społeczna i dlaczego istnieje?
S.

Pszemol
Guest

Wed Apr 09, 2014 1:21 am   



"Sylwester Łazar" <info@alpro.pl> wrote in message
news:li27ht$a7q$1@mx1.internetia.pl...
Quote:
Wyczuwam w Twoim tonie sugestię o jakiejś wyższości programistów
nad spawaczami czy szewcami, jakbyś nie doceniał kunsztu z jakim pracę
wykonuje DOBRY rzemieślnik. Ja się z tym tonem nie zgadzam nawet w 1%.
Cenię każdego dobrego spawacza (wiem, jak trudno jest pospawać, bo
robiłem).
Cenię każdego dobrego szewca (wiem, bo mój dziadek był szewcem,
budowlańcem,
nauczycielem, cukiernikiem, pracował w hucie szkła i był super dziadkiem).
Jednak, wiesz chyba co to jest drabina społeczna i dlaczego istnieje?

Ale ja nie o drabinie społecznej mówię...

Ja postawiłem tezę, że programista jest rzemieślnikiem a nie naukowcem.
I próbuję tą tezę Ci objaśnić na przykładzie innych rzemieślników.
Naukowcem być to jednak coś dużo więcej niż tylko wytworzyć kolejną
parę butów albo kolejny program do sortowania tablicy danych...

Abstrahując już od tego ile czasu trzeba i ile nauki trzeba aby stać się
dobrym szewcem czy dobrym spawaczem czy dobrym programistą
i gdzie na drabinie społecznej się te zawody znajdują żaden z nich nie
jest naukowcem jeśli tylko implementuje znane już i stosowane
rozwiązania (w swojej branży). Wybacz jeśli Cię rozczaruję, ale nie ma
tu nic naukowego w tym że ktoś napisze sortowanie bąbelkowe w C++
czy nawet w ASM - to tylko implementacja znanej i szeroko-stosowanej
technologii i w istocie swojej niczym nie różni się w zaimplementowaniu
metody spawania w osłonie argonu. Tu rzemiosło i tam rzemiosło.
Różnica między C++ a ASM może być porównana do różnicy w szyciu
butów ręcznie czy na maszynie do szycie... Albo spawaniu iskrowym
czy w płomieniu...

Co innego gdy spawacz-naukowiec zacznie eksperymentować i w toku
swoich poszukiwań opracuje nowe metody, nowe technologie, nowe
materiały do spawania, wtedy otrze się o naukę tak samo jak taki koder
rzemieślnik, który zacznie wymyślać nowe, nieznane wcześniej algorytmy
sortowania danych czy też nowe nieznane wcześniej algorytmy szyfrowania.
Czujesz teraz lepiej moją tezę?

Sylwester Łazar
Guest

Wed Apr 09, 2014 1:39 am   



Quote:
Co innego gdy spawacz-naukowiec zacznie eksperymentować i w toku
swoich poszukiwań opracuje nowe metody, nowe technologie, nowe
materiały do spawania, wtedy otrze się o naukę tak samo jak taki koder
rzemieślnik, który zacznie wymyślać nowe, nieznane wcześniej algorytmy
sortowania danych czy też nowe nieznane wcześniej algorytmy szyfrowania.
Czujesz teraz lepiej moją tezę?
Teraz tak.

Ale weżmy takiego pana, co się nazywał Henry Ford.
On to bowiem napisał, że:
"In short, the result is this: by the aid of
SCIENTIFIC STUDY one man is now able to do somewhat more than four did
only a comparatively few years ago. That line established the efficiency
of the method and we now use it everywhere. The assembling of the motor,
formerly done by one man, is now divided into eighty-four
operations--those men do the work that three times their number formerly
did."
Co się tłumaczy, że dzięki badaniom naukowym pewne algorytmy wykonywane są
szybciej.
Jednak wszystkie czynności, które były wykonywane wcześniej przez tych
czterech,
były znane. Problem był tylko jak te same czynności wykonać miał jeden.

S.

Pszemol
Guest

Wed Apr 09, 2014 3:03 am   



"Sylwester Łazar" <info@alpro.pl> wrote in message
news:li2964$fq2$1@mx1.internetia.pl...
Quote:
Co innego gdy spawacz-naukowiec zacznie eksperymentować i w toku
swoich poszukiwań opracuje nowe metody, nowe technologie, nowe
materiały do spawania, wtedy otrze się o naukę tak samo jak taki koder
rzemieślnik, który zacznie wymyślać nowe, nieznane wcześniej algorytmy
sortowania danych czy też nowe nieznane wcześniej algorytmy szyfrowania.
Czujesz teraz lepiej moją tezę?

Teraz tak.
Ale weżmy takiego pana, co się nazywał Henry Ford.
On to bowiem napisał, że:
"In short, the result is this: by the aid of
SCIENTIFIC STUDY one man is now able to do somewhat more than four did
only a comparatively few years ago. That line established the efficiency
of the method and we now use it everywhere. The assembling of the motor,
formerly done by one man, is now divided into eighty-four
operations--those men do the work that three times their number formerly
did."
Co się tłumaczy, że dzięki badaniom naukowym pewne algorytmy
wykonywane są szybciej.
Jednak wszystkie czynności, które były wykonywane wcześniej
przez tych czterech, były znane. Problem był tylko jak te same
czynności wykonać miał jeden.

No i jaka jest Twoja puenta w związku z tym "ale"?
Bo napisałeś coś, co zgadza się z tym co napisałem ja wyżej...

Podałeś przykład przedsiębiorcy, który opracował nową metodę
(assembly line) na robienie tego co było już robione wcześniej,
dającą 4x większą efektywność pracy ludzkiej. Ten przedsiębiorca
przez to że eksperymentował i udoskonalał stał się w efekcie
naukowcem ale nie znaczy to wcale że każdy przedsiębiorca
(czy programista, czy szewc, czy spawacz) takim naukowcem będzie...

Marek
Guest

Wed Apr 09, 2014 6:11 am   



On Tue, 8 Apr 2014 18:21:02 -0500, "Pszemol" <Pszemol@PolBox.com>
wrote:
Quote:
A mi się wydaje, że pisanie kodu (tworzenie programów) to rodzaj
rzemiosła. Dobry programista to tak jak dobry szewc lub spawacz.

Przy rozważaniach czym jest programowanie, a szczególnie ile ma
wspólnego z komputerami i nauką zawsze mam skojarzenia z wstępem do
tego wykładu:
http://www.youtube.com/watch?v=2Op3QLzMgSY

--
Marek

Michał Lankosz
Guest

Wed Apr 09, 2014 6:22 am   



W dniu 2014-04-08 22:41, jacek pozniak pisze:
Quote:
ja pie..ole, to nie miało być takie długie Smile

"Jak rozpętałem wojnę PICowo AVRową" :)

--
Michał

Marek
Guest

Wed Apr 09, 2014 6:39 am   



On Wed, 09 Apr 2014 08:22:20 +0200, Michał Lankosz<mike2001@tlen.pl>
wrote:
Quote:
"Jak rozpętałem wojnę PICowo AVRową" Smile

Ale tak na prawdę nie był to flame pics vs avr a raczej
programowanie w asm vs. reszta świata.

--
Marek

Michał Lankosz
Guest

Wed Apr 09, 2014 7:01 am   



W dniu 2014-04-09 08:39, Marek pisze:
Quote:
On Wed, 09 Apr 2014 08:22:20 +0200, Michał Lankosz<mike2001@tlen.pl> wrote:
"Jak rozpętałem wojnę PICowo AVRową" :)

Ale tak na prawdę nie był to flame pics vs avr a raczej programowanie w
asm vs. reszta świata.

Jak się już rozpęta to nikt nie patrzy kto z kim, jak i czym wojuje.

--
Michał

Goto page Previous  1, 2, 3 ... , 14, 15, 16  Next

elektroda NewsGroups Forum Index - Elektronika Polska - PIC czy AVR? Doświadczenia z kompilatorami HiTech i GCC w programowaniu uC

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map