Teetkö hommia vielä tuolla perinteisellä C-kielellä (Ansi-C)? Millaisia hommia sillä nykyään tehdään ja käytetäänkö sitä vielä uusissa projekteissa toteutustyökaluna? Vain mennäänkö jo pelkästään C :n ja Javan tahdissa ...
Perinteisen C :n käyttö
nykyään
103055
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 10
Vanhimmat
.. mikrokontrollerit ovat eräs kohde käyttää 'perinteistä' Ceetä.
Ceetä käytän usein 'rungon' rakentamiseen ja saadulla assemblylistauksella viilaan lopullisen koodin puhtaasti assembly-kielisenä.
http://www.microchip.com/1010/index.htm
.. pseudokoodina (valitan:sisennykset menevät sekaisin!):
=============================================================================
; UPDATE
;
;
; bcf _empty_flg;
;
; for(sched_ptr = 0; sched_ptr < SHEDULETBL; sched_ptr )
; {
;
; if((round_tbl[sched_ptr] == '00') & (_empty_flg == FALSE))
; {
; bsf _empty_flg;
; tmpptr = sched_ptr;
; }
;
; else if((round_tbl[sched_ptr] > '00') & (sched_tbl[sched_ptr] == clock))
; {
; round_tbl[sched_ptr]--;
; if((_suko_flg == TRUE) & (_suko == TRUE))
; {
; sched_ptr = tmpptr;
; goto nibble_11;
; }
; }
;
; }
;
;
;nibble_11:
;
; if((_suko_flg == TRUE) and (_suko == TRUE))
; {
; round_tbl[sched_ptr] = '11';
; bcf _suko_flg;
; retlw TRUE;
; }
;
; retlw FALSE;
;
;
update: clrf sched_ptr ;
bcf _empty_flg ;
next_update: movf sched_ptr, w ;
movwf fsr
xorlw SHEDULETBL ;
btfss _z
goto test_nibble
btfss _shuko_flg
retlw FALSE
btfss _shuko
retlw FALSE
movf tmpptr, w ;
movwf sched_ptr
goto nibble_11
test_nibble
rrf fsr, f ; fsr-> round_tbl[], sched_ptr-> sched_tbl[]
rrf fsr, f ;
movlw ROUNDMASK ;
andwf fsr, f ;
movlw round_tbl ;
addwf fsr, f ;
movlw NIBBLEMASK ;
andwf sched_ptr, w ;
call and_mask ;
andwf indf, w ;
btfss _z ;
goto test_time ; round_tbl[sched_ptr] != 00.
btfsc _empty_flg
goto inc_ptr
bsf _empty_flg ; round_tbl[sched_ptr] == 00.
movf sched_ptr, w ;
movwf tmpptr ;
goto inc_ptr ;
test_time: movlw sched_tbl ; sched_tbl[sched_ptr] == clock?
addwf sched_ptr, w ;
movwf fsr ;
movf clock, w ;
xorwf indf, w ;
btfss _z ;
goto inc_ptr ; sched_tbl[sched_ptr] != clock.
dec_nibble movf sched_ptr, w ; sched_tbl[sched_ptr] == clock.
movwf fsr ; 'nibble'--
rrf fsr, f ;
rrf fsr, f ;
movlw ROUNDMASK ;
andwf fsr, f ;
movlw round_tbl ;
addwf fsr, f ; fsr-> round_tbl[], sched_ptr-> sched_tbl[]
movlw NIBBLEMASK ;
andwf sched_ptr, w ;
call add_mask ;
addwf indf, f ;
btfss _shuko_flg ;
goto inc_ptr ;
;
btfss _shuko ;
goto inc_ptr ;
nibble_11: movf sched_ptr, w ; 'nibble' = '11':
movwf fsr
rrf fsr, f ;
rrf fsr, f ;
movlw ROUNDMASK ;
andwf fsr, f ;
movlw round_tbl ;
addwf fsr, f ; fsr-> round_tbl[], sched_ptr-> sched_tbl[]
movlw NIBBLEMASK ;
andwf sched_ptr, w ;
call ior_mask ;
iorwf indf, f ;
movlw sched_tbl ;
addwf sched_ptr, w ;
movwf fsr ;
movf clock, w
movwf indf
bcf _shuko_flg ;
bcf _shuko_led
retlw TRUE ;
inc_ptr: incf sched_ptr, f ;
goto next_update
Alas olet vajonnut ja tunnut nauttivan siitä, tietämätön.
Otan osaa.
.. nyt meni hapot sekaisin.
:)
Tietenkin C on kovassa käytössä. Teen työkseni C:tä Linuxin kerneliin tulevaan tietoliikenneprotokollaan. Voin suoralta kädeltä listata ainakin nelisen samassa tilanteessa olevaa tuttua. Homma hoituu alusta asti ihan niillä samoilla työkaluilla, jotka tulevat käyttiksen asennuksen mukana. Mitään muita kieliä ei voi ajatellakaan tuohon hommaan. Jos joku tulisi ehdottamaan ko. hommaan Javaa tai C :aa, me varmaan nauraisimme tyypin pihalle..
että oikeeseen hommaan oikea työkalu. Reaaliaika-sovellukset ja sulautetut järjestelmät, niin kovasti mennän vielä C-llä.
" Teetkö hommia.."
Pakkohan niitä on tehdä, projektit kun on aikanaan tehty C:llä. Tai Fortranilla tai assemblerilla...
Mutta C :kin on jo väistyvä kieli. Nykyisin yleisin kieli jo tehdyissä projekteissa on Cobol. 10 vuoden päästä se on varmaan C . Mutta 10 vuoden päästä harvat enää koodaa C :lla.
Ehkä jo 5 vuoden päästä Java on väistyvä kieli (pythonin tai jonkun muun alta)
Mutta silloin kun tarvitaan suoritustehokasta kieltä, niin nämä vanhat jyyrätkin pääsevät oikeuksiinsa.
Eikös tuo Cobolin käytön lisääntyminen koske vain kaupallishallinnollisia sovelluksia?
ei tuo cobolin käyttö lisäänny, eiköhän ne nykyään väännä aika paljon pankkien ja vakuutusyhtiöiden softia VB:llä (kauhistuttava ajatus).
Ainakin joku vuosi sitten toiseksi yleisin ohjelmointikieli oli vielä REXX. Eipä ole moni varmaan kuullutkaan moisesta.
Yksi oikeaan osuva vastaus jo olikin: riippuu mitä softaa teet ja mihin ympäristöön, mitä kieliä voi edes kuvitella.
Pieniin mikrokontrolleriympäristöihin ei välttämättä edes löydy C++ kääntäjää, Javasta puhumattakaan. Esim. iso osa markkinoilla olevista puhelimista on 95%:sesti toteutettu C:llä, loput 5% assemblerilla.