Goto page Previous 1, 2, 3, 4, 5, 6, 7 Next
MichaĹ Lankosz
Guest
Fri Oct 11, 2013 2:25 pm
W dniu 2013-10-11 16:13, Michał Lankosz pisze:
Fragment od wyrazów
Quote:
Pytanie jednak, jak głęboko...
nie wyszedł mi, rozproszyło mnie kilka 'lokalnych zakłóceń', reszta OK.
--
Michał
Marek
Guest
Fri Oct 11, 2013 2:31 pm
On Fri, 11 Oct 2013 16:04:23 +0200, Sylwester Łazar<info@alpro.pl>
wrote:
Quote:
Od 4 marca do 4 kwietnia.
No to masz bardzo dużo czasu albo Twój czas jest niewiele wart, bo
wartość poświęconych roboczogodzin ma się nijak do wartości projektu
(tak, wiem zdobywane doświadczenie też się liczy). Nawet poświęcając
1 roboczogodzinę dziennie.
Taki projekt w C robi się w weekend (od zera bez bibliotek do 1wire).
Nie wyobrażam sobie już ile czasu zajęłoby Ci zrobienie logera tej
temperatury np. na karcie sd z systemem plików vfat lub transmisją po
USB. Zakładam, że raczej trudno byłoby znaleźć lib vfat (usb) w asm
na konkretny mcu i na pewno zacząłbyś pisać własną implementację,
albo niedaj Bóg, skompilowałbyś jakiś istniejący lib vfat a kod
wynikowy byś "zaincludował" do swojego kodu w asm ;-)
--
Marek
Sylwester Ĺazar
Guest
Fri Oct 11, 2013 2:35 pm
Quote:
Co do objętości kodu to się zgodzę, że w C jest większy, ale bez
przesady - nie 5kB->10MB! Jeśli w bibliotece są niewykorzystane funkcje
to linker może je po prostu wyciąć z automatu.
Czasem jedna błędna deklaracja typu w C powoduje, że brakuje Ci pamięci.
No może to skrajny przykład,
ale 5kB w ASM i 50kb w C to chyba się zgodzisz?
Quote:
Wymaga jednak w części znajomości tematu, czyli procesora.
Nie jest to jednak złe, gdyż wszystkie procesory mają bardzo podobną
budowę.
Różnią się szczegółami i liczbą stron karty katalogowych wraz z
erratami.
To jest na plus. Zawsze dogłębna wiedza jest cenna. Pytanie jednak, jak
głęboko powinniśmy sięgać. No bo kupując w sklepie mleko, lody, chleb,
płatki kukurydziane, czekoladę, wodę powinniśmy czytać ich skład.
Ty tego nie robisz?
Mleko dzisiaj kupowałem od kobiety, która ma gospodarstwo,
chleb też mamy sprawdzony. Czekolada - tylko Terravita i to gorzka.
Woda - są tego hektolitry w sklepie. Dzisiaj żona przeczytała,
że na wodzie "Czar Mazowsza" jest napisane, że jest wzbogacona (!)
ozonem.
Quote:
Napotykając powiedzmy karagen zgłębić wiedzę o nim czy jest rakotwórczy
czy nie. Wiedza bardzo cenna dla Twojego zdrowia - wybierasz pod tym
kątem wszystkie produkty, czy zdajesz się na odgórne przepisy, które nie
pozwalają na sprzedaż żywności zagrażającej życiu? Takich obszarów z
naszego otoczenia jest za dużo, żeby je zgłębiać.
Im więcej zgłębisz, tym lepiej dla Ciebie.
Zazwyczaj nie zdaję się tylko na odgórne przepisy,
bo to by oznaczało 100% zaufania do polityków, którzy je ustalają.
A w przypadku kompilatora... to samo.
S.
Sylwester Ĺazar
Guest
Fri Oct 11, 2013 2:45 pm
Quote:
No to masz bardzo dużo czasu albo Twój czas jest niewiele wart, bo
wartość poświęconych roboczogodzin ma się nijak do wartości projektu
(tak, wiem zdobywane doświadczenie też się liczy). Nawet poświęcając
1 roboczogodzinę dziennie.
Daleki jestem od oceny jakości czyjegoś czasu na podstawie określenia czasu
w jakim powstał projekt.
W szczególności daleki jestem od przeliczenia pracy projektanta na
roboczogodziny.
Kilka razy mi się tak zdażyło, zlecając pracę innym.
Zawsze podziwiam kogoś, kto w 20 roboczogodzin potrafi napisać
kod do dowolnego urządzenia z wybranym procesorem, które ktoś postawi Ci na
stole z adnotacją:
mi się to nie udało - może spróbujesz?
Czyli koszt tego zlecenia według Ciebie powinien wynosić?
20x ile?
--
-- .
pozdrawiam
Sylwester Łazar
http://www.alpro.pl Systemy elektroniczne.
http://www.rimu.pl -oprogramowanie do edycji schematów
i projektowania PCB.
Sylwester Ĺazar
Guest
Fri Oct 11, 2013 2:57 pm
Quote:
USB. Zakładam, że raczej trudno byłoby znaleźć lib vfat (usb) w asm
na konkretny mcu i na pewno zacząłbyś pisać własną implementację,
Chcesz powiedzieć, że dla Ciebie typową praktyką, jest szukanie
gotowych programów/bibliotek, dopisanie 100 linijek kodu, wspólne
kompilowanie w pudełko i do widzenia?
S.
J.F
Guest
Fri Oct 11, 2013 2:57 pm
Użytkownik "Michał Lankosz" napisał w wiadomości
W dniu 2013-10-11 14:11, J.F pisze:
Quote:
Hm, a ile czasu trzeba aby przeniesc program mocno wykorzystujacy
system
na inny procesor, z innymi timerami, licznikami, przerwaniami, a
takze
innym wyswietlaczem, ekranem dotykowym zamiast klawiatury itp,
nawet jak
jest napisany w C ?
Na pewno dużo mniej niż w asemblerze.
Podajesz mocno skrajny przykład. Jeśli program jest dobrze napisany
wtedy podmienia się tylko HAL.
Bo ja wiem czy taki wydumany ... robisz np sterownik silnika
spalinowego.
Albo windy, czy serwonapedu, albo plottera, UPS, ... czy np sterownik
PLC (tzn nie uzyc gotowego, tylko robic wlasny).
Quote:
Jeśli nie, to i tak sporą część kodu, zawierającą logikę działania
urządzenia, można skopiować.
Mozna, ale mozna sie tez zastanowic czy teraz nie mozna/trzeba zrobic
lepiej i napisac od poczatku :-)
Owszem, teraz takie czasy ze warto sie zastanowic czy nie zaczac od
wyboru ARM z linuxem i qt, a jak sie okaze ze on nie bardzo RT, to sie
wstawi 300MHz zamiast planowanych 100.
Ale dawniej ... trzeba sie bylo zmiescic w rynkowej cenie i znacznie
mniejszym hardware.
I na HAL nie bylo miejsca. I teraz nie ma z czego kopiowac :-)
J.
Piotrek
Guest
Fri Oct 11, 2013 2:58 pm
On 2013-10-11 16:57, Sylwester Łazar wrote:
Quote:
Chcesz powiedzieć, że dla Ciebie typową praktyką, jest szukanie
gotowych programów/bibliotek, dopisanie 100 linijek kodu, wspólne
kompilowanie w pudełko i do widzenia?
S.
Czy budowę domu też zaczynasz od wytopienia stali na łopatę, którą
wykopiesz glinę na cegły? ;-)
Piotrek
Sebastian BiaĹy
Guest
Fri Oct 11, 2013 3:28 pm
On 2013-10-11 08:43, Zbych wrote:
Quote:
Słaby przykład, w gcc można zrobić destruktor w C.
I wtedy mamy jaki język?
Jeśli pijesz do tego, że nie jest to czyste C, to argument jest
chybiony. Przerwań też nie masz w C (ani w C++).
Rozróżnij:
a) implementacje funckjonalności od idiomu RAII.
b) implementacje w C++ od impelmentacji w "czymś" nieprzenośnym.
ad a) Muszę wypełnić idiom RAII jakimś kodem, cli/sei nadawało się
najlepiej.
ad b) Pisanie w wynalazkach kończy się nieprzenosnym kodem, a na
horyzoncie sprintem zapierd... clang.
Sylwester Ĺazar
Guest
Fri Oct 11, 2013 3:31 pm
Quote:
Czy budowę domu też zaczynasz od wytopienia stali na łopatę, którą
wykopiesz glinę na cegły? ;-)
Piotrek
To jest zły przykład. Ja nie hoduje sobie kryształka kwarcu, a potem z niego
robię procka.
Zapytam tak:
Czy kupujesz gotowy projekt domu z muratora za 1000zł,
czy projektujesz sobie dom w taki sposób jakim chciałbyś go mieć?
S.
Marek
Guest
Fri Oct 11, 2013 3:31 pm
On Fri, 11 Oct 2013 16:57:07 +0200, Sylwester Łazar<info@alpro.pl>
wrote:
Quote:
Chcesz powiedzieć, że dla Ciebie typową praktyką, jest szukanie
gotowych programów/bibliotek, dopisanie 100 linijek kodu, wspólne
kompilowanie w pudełko i do widzenia?
Oczywiście, bo ma to ekonomiczne uzasadnienie, liczy się czas od
pomysłu do gotowego produktu. Poza tym po co wymyślać coś, co już
jest wymyślone i przede wszystkim przetestowane i sprawdzone?
Jak myślisz dlaczego w Androidzie użyto kernel Linuxa? Najprostszy
przykład jaki mi przyszedł do głowy.
--
Marek
Piotrek
Guest
Fri Oct 11, 2013 3:41 pm
On 2013-10-11 17:31, Sylwester Łazar wrote:
Quote:
To jest zły przykład. Ja nie hoduje sobie kryształka kwarcu, a potem z niego
robię procka.
Zapytam tak:
Czy kupujesz gotowy projekt domu z muratora za 1000zł,
czy projektujesz sobie dom w taki sposób jakim chciałbyś go mieć?
S.
Może zostawmy analogie budowlane na boku - to nie był zbyt szczęśliwy
pomysł.
Generalnie to jest tak, że przy programach (systemach) nieco bardziej
skomplikowanych niż "Hello world" wybudowanie wszystkiego od początku
nie ma ani sensu ekonomicznego, ani (najczęściej) nie spełnia kryteriów
jakościowych. Przy czym przez kryteria jakościowe rozumiem również
dotrzymanie terminów.
Dlatego między innymi wymyślono takie "wynalazki" jak biblioteki,
komponenty, frameworki i inne cuda wianki.
Piotrek
Sylwester Ĺazar
Guest
Fri Oct 11, 2013 3:43 pm
Quote:
Jak myślisz dlaczego w Androidzie użyto kernel Linuxa? Najprostszy
przykład jaki mi przyszedł do głowy.
--
Marek
To akurat proste.
Główny projektant nie miał swoich własnych bibliotek do obsługi
4''wyświetlacza LCD,
rezystancyjnego panelu dotykowego, Wi-Fi, USB i karty SD.
Uznał, że skoro tak, to potrzebuje systemu operacyjnego, bo tam ma już
uruchomione wszystkie biblioteki razem, które jakoś działają.
Tutaj miał do wyboru:
Windows ze swoimi bibliotekami - razem ze 300MB
Linux, gdzieś ze 30MB
Jego syn, będący w 1 klasie podstawówki, słusznie zauważył:
"Tato bierz ten Linux! Tylko głupiec pakowałby się w system 10x większy i
bardziej zawodny."
No i dorzucił trochę koloru do Linuxa i zmieścił się w procku.
Teraz po naciśnięciu książki telefonicznej czeka tylko 100ms i już ma 10
pierwszych numerów z bazy danych na ekranie.
A mógł mieć to wszystko w ASM przy 1MB i czasie reakcji na wyjątek 1ms
S.
Piotrek
Guest
Fri Oct 11, 2013 3:44 pm
On 2013-10-11 17:43, Sylwester Łazar wrote:
Quote:
A mógł mieć to wszystko w ASM przy 1MB i czasie reakcji na wyjątek 1ms
Chyba nie doceniasz znaczenia testowania. Zwłaszcza przy deploymencie na
miliony (różnych) urządzeń ...
Piotrek
Sylwester Ĺazar
Guest
Fri Oct 11, 2013 3:51 pm
Quote:
Dlatego między innymi wymyślono takie "wynalazki" jak biblioteki,
komponenty, frameworki i inne cuda wianki.
Piotrek
Zauważ, że te biblioteki możesz mieć swoje lub obce, a nawet swojo-obce,
czyli kolegi, z którym jeszcze się nie pokłóciłeś.
Jeżeli ja mam bazę swoich projektów/bibliotek, do których interfejsy mam
znane,
potrzebuję tyle samo lub mniej czasu, niż ktoś kto wchodzi do zasobów
globalnych,
szuka biblioteki, wgłebia się w interfejs, includuje a na koniec
uruchamia....
Jeżeli jednak ktoś, kto pisał 10 lat w C i 3 razy w asm,
pragnąłby napisać kod na 32-bitowy uC w ASM - nie da rady.
Polegnie na opisie sprzętowego 8xPWM.
Jeden lubi Hi-level z milionami kolegów, a inny Extream z małą ekipą.
Nic nie poradzisz. Dopóki nie musisz...
S.
Sylwester Ĺazar
Guest
Fri Oct 11, 2013 3:55 pm
Quote:
A mógł mieć to wszystko w ASM przy 1MB i czasie reakcji na wyjątek 1ms
Chyba nie doceniasz znaczenia testowania. Zwłaszcza przy deploymencie na
miliony (różnych) urządzeń ...
Piotrek
Może.
Skomentuj proszę te 100ms.
S.
Goto page Previous 1, 2, 3, 4, 5, 6, 7 Next