Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Témata - prezek

Stran: 1 [2]
16
Zdravím, většinou píšu programy pro mikroprocesory v NetBeans a jednotlivé programy spravuji pomocí subversion (v NetBeans stačí 3 kliknutí na commit, nebo update a jednoduše se dostanu k historickým souborům). Pracuji ve Windows XP a rád bych si zautomatizoval synchronizaci s notebookem a zálohování (často zapomenu z notebooku zazálohovat data a když je potřebuji, tak notebook leží vypnutý 10 km ode mě).
Zatím synchronizuji a zálohuji ručně přes svn server (který běží na Rapsberry Pi). Svn adresář na serveru občas zabalím do tar.gz a zazálohuji na email. Co doporučujete? Zůstat u svn, nebo přejít na git či jiný správce verzí? Synchronizovat a zálohovat pomocí správy verzí a adresář občas zabalit a uložit na jiný HW, nebo používat rsync, rdiff-backup apod?
Díky, Petr

17
Vývoj / Sync namountované SD karty
« kdy: 11. 11. 2013, 12:12:02 »
Pomocí Linuxu se snažím logovat data na SD kartu, ale neukládají se mi pořádně soubory.
Po vytvoření souboru a zapsání dat do souboru zavolám funkci fflush, zkontroluju pomocí ls -l, že soubor existuje a má odpovídající velikost. Pak odpojím napájení, nastartuju znova systém, a něky tam ten nový soubor je a někdy není. Vím, že by šlo mountovat kartu s parametrem sync, a pak by se měly soubory ukládat na disk synchronně se zápisem do souboru, ale to by prý snižovalo životnost karty. Můžete mi někdo poradit, jak vyvolat synchronizaci požadovaného souboru a kdy probíhá automatická synchronizace?

18
Software / Sháním modul g_ether.ko pro ARM
« kdy: 08. 11. 2013, 12:46:51 »
Zdravím, mám ARMovou desku s Linuxem (jádro 2.6.28) a chtěl bych s ním komunikovat po USB, ale nebsahuje modul g_ether, který by snad mi umožnit propojení s počítačem pomocí ethernetu. Dá se někde sehnat?

19
Vývoj / Jak zamezit, aby byla funkce inline
« kdy: 23. 09. 2013, 14:10:59 »
U mikrokontroleru potřebuju porovnávat 2 čísla (aktuální čas a čas události), která se mohou měnit v přerušení a problém je, když dojde k přerušení v době porovnávání čísel. Proto jsem chtěl porovnávání oddělit funkcí, která zajistí, že se budou proměnné načítat ve správném pořadí. Představa byla takováto:
1) načte se globální proměnná (čas události) z RAM do registru
2) registr se předá funkci k porovnání
3) funkce přebere parametr
4) načte z RAM do registru druhé číslo (aktuální čas v ms)
5) porovná registry a vrátí výsledek.
Problém je v tom, že funkce se mi překládá jako inline a překladač si vybírá jako optimální opačné načítání, než bych si jí přál a tak může dojít ke kolizi. Dá se to nějak vylepšit, aby se tomu zabránilo? (Napevno stanovit pořadí načítání, nebo zabránit aby se funkce vložila jako inline....)
Aktuálně používaná funkce pro zjištění uplynulého času:
Kód: [Vybrat]
u32 getDelay(u32 timeVal) {
    return cas - timeVal;
}

20
Vývoj / Jak na výpis stacku při chybě?
« kdy: 27. 04. 2013, 11:29:33 »
Na desce s ARMem mi běží Linux a občas se mi objeví chyba segmentace, tak bych si chtěl pořídit její výpis. Na PC mi funguje toto:
Kód: [Vybrat]
#include <execinfo.h>
void show_stackframe() {       
    void *trace[16];
    char **messages = (char **) NULL;
    int i, trace_size = 0;
    trace_size = backtrace(trace, 16);
    messages = backtrace_symbols(trace, trace_size);
    printf("[bt] Execution path:\n");
    for (i = 0; i < trace_size; ++i)
        printf("[bt] %s\n", messages[i]);
}
Vypišou se mi názvy funkcí s posledními spuštěnými řádky, které vedly až k výpisu, ale na té desce to vypíše pouze:
Kód: [Vybrat]
[bt] Execution path:
[bt] /lib/ld-linux.so.3 [0x40025000]
Pro ARM kompiluju pomocí Sourcery_CodeBench_Lite_for_ARM_GNU_Linux ve  Windows XP
Kód: [Vybrat]
arm-none-linux-gnueabi-gcc -c -Wall -Werror -pg -g -rdynamic  -funwind-tables  -I./inc -I./include ... -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_REENTRANT -D_LINUX_ -o main.o main.c
arm-none-linux-gnueabi-gcc -pg -rdynamic  -funwind-tables  -o prog2 main.o graphic.o ... -lpthread -lrt -lfreetype -lm
Co dělám špatně?

21
Vývoj / Jak se zbavit zombíků
« kdy: 18. 04. 2013, 17:56:36 »
Ve zdrojáku mám na přehrávání zvuku toto:
Kód: [Vybrat]
int pid = fork();
if (pid == 0) {
  int pid2 = fork();
  if (pid2) {
    exit(0);
  } else if (!pid2) {
    execl("/usr/bin/aplay", "aplay", "muzika.wav", (char *) 0);
  } else {
    /* error */
  }
} else {
  int status;
  waitpid(pid, &status, 0);
}
Dvojitým forkováním bych se měl zbavit zombie bez nutnosti čekání na ukončení přehrávání. Většinou to funguje, ale po několika desítkách spuštění zvuku mi zůstalo několik zombee procesů. Ve výpisu ps -a byly pojmenované jako původní proces. Nevíte jakto, že zůstávají a jak se jich zbavit?

22
Vývoj / Callback funkce z kernel modulu
« kdy: 14. 03. 2013, 15:14:14 »
Zdravím, potřeboval bych předávat data z kernel modulu do uživatelského programu.
Kernel modul by v přerušení od přijatých znaků z GPS přečetl a dekódoval NMEA zprávu a do programu předával souřadnice. Poradíte mi někdo, prosím, jaký zvolit přístup k předávání dat z modulu do uživatelské aplikace?

23
Vývoj / Kde zjistit funkce a proměnné jádra?
« kdy: 07. 01. 2013, 11:48:28 »
Zdravím, snažím se vytvořit kernel modul a při jeho načítání skončím na tomto:
Kód: [Vybrat]
my_module: Unknown symbol irq_desc

Ve zdrojovém kódu modulu se to způsobují tyto řádky:
Kód: [Vybrat]
 
extern struct irq_desc irq_desc[NR_IRQS];

static inline struct irq_desc *irq_to_desc(unsigned int irq)
{
return (irq < nr_irqs) ? irq_desc + irq : NULL;
}
...
struct irq_desc *desc;
desc = irq_to_desc(IRQ_TC0);
Odhadoval bych, že to bude tím, že nemám přesně stejné zdrojové kódy jádra, jako ty, ze kterých je jádro zkompilováno. Dá se nějak zjistit z běžícího linuxu, jaké funkce, konstanty, proměnné atd. jsou dostupné pro kernel moduly?

24
Software / Příkazy do spuštěného programu screen
« kdy: 12. 12. 2012, 11:08:28 »
Zdravím,
pomocí Linuxu a programu screen jsem přes sériový port připojený k dalšímu stroji. Potřeboval bych ale po sériové lince posílat příkazy i od jinud, než přes screen, ten ale sériovou linku blokuje. Dají se nějak poslat data na vstup programu - aby se zachovala možnost práce s programem screen pomocí klávesnice, ale v případě potřeby bych tam mohl poslat příkazy i odjinud? Ve windows se to dalo například pomocí PostMessage, kdy se dala simulovat klávesnice.
Dík Petr

Stran: 1 [2]