Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Programming stuff. And stuff.
JTrace adaptér v Ozone umí zaznamenat do 10 milionů posledních vykonaných instrukcí, takže víte, kudy přesne kód jel. JTrace je bohužel jediný multiplatformní JTAG/SWD adaptér, který funguje i pod Linuxem a Mac OS (Keil Ulink a Lauterbach jen pod Windows a ty nástroje vůbec neumí pracovat s nějakými Makefile nebo ELF souborama).
Především s interrupty je to neocenitelný debugovací nástroj, protože na interruptech nelze dělat breakpointy bez toho, že se to komplet rozbije.
Proti další ukázce z ITM trace (z orbtop je méně presná, statistický sampling) to neumí měřit spánek procesoru (ITM trace to umí), ale to až tak moc nevadí:
Zde je např. celkem jasně vidět, kde se pálí čas procesoru, i když se tak trochu předpokládá, že každá instrukce trvá stejně dlouho. A neumí to počítat do celkového času sleep (WFI a podobné instrukce).
Pokud se budete snažit rozběhnout ETM na vývojových deskách STM Discovery, budete velmi sklamáni. Nemají správně vyveden ETM port (zlé časování, zlé kapacity, ... - ETM běží na 200+ MHz na 4 linkách + hodiny). Prý se to samým inženýrům z ST povedlo max na 8 MHz clock speed procesoru. Tudíž to rozhodně chce správnou desku.
void TargetReset (void) {
unsigned int AIRCR;
unsigned int SCB_AIRCR_VECTKEY;
unsigned int SCB_AIRCR_VECTRESET;
AIRCR = 0xE000ED0C;
SCB_AIRCR_VECTKEY = 0x5fa0000;
SCB_AIRCR_VECTRESET = 0x1;
*AIRCR = SCB_AIRCR_VECTRESET | SCB_AIRCR_VECTRESET;
//
// unsigned int SP;
// unsigned int PC;
// unsigned int VectorTableAddr;
//
// VectorTableAddr = Program.GetBaseAddr();
//
// if (VectorTableAddr != 0xFFFFFFFF) {
// SP = Target.ReadU32(VectorTableAddr);
// Target.SetReg("SP", SP);
// } else {
// Util.Log("Project file error: failed to get program base");
// }
//
// PC = Elf.GetEntryPointPC();
//
// if (PC != 0xFFFFFFFF) {
// Target.SetReg("PC", PC);
// } else if (VectorTableAddr != 0xFFFFFFFF) {
// PC = Target.ReadU32(VectorTableAddr + 4);
// Target.SetReg("PC", PC);
}
void AfterTargetReset (void) {
unsigned int SP;
unsigned int PC;
unsigned int VectorTableAddr;
VectorTableAddr = 0x8000000; //boardloader vector offset
if (VectorTableAddr != 0xFFFFFFFF) {
SP = Target.ReadU32(VectorTableAddr);
Target.SetReg("SP", SP);
} else {
Util.Log("Project file error: failed to get program base");
}
PC = Target.ReadU32(VectorTableAddr + 4);
Target.SetReg("PC", PC);
}
Špatná indentace i ten komentář tam musí zůstat, jinak se z toho rozbije parser z nějakého důvodu. Don't ask. No idea why.
Nespoléhejte se na to, co je napsáno v obecné ARM dokumentaci nebo dokumentaci ke konkrétnímu procesoru. Např. System Control Block by měl být writable, ale není writable zevnitř procesoru, jenom přes JTAG adaptér. (Důvod této nekonečné srandy je že hledám úplne jiný hack na úplně jinou blbost, kde je user přílíš líný vytáhnout kabel).
Tiskni
Sdílej: