Nerre skrev:Det är ju just såna där grejer som de som designar moderna processorer tänker på.
Men även många väldigt tidiga processorer så var kod och data separarerade, helt enkelt eftersom det var olika ordlängd. Instruktionerna kunder vara 12 bitar men data bara 7. Dessa måste då onekligen lagras i olika minnen och det finns alltså ingen möjlighet för data att skriva över kod.
Det var när man började läsa in programvara till samma minne som man lagrade data i som det kunde hända. Men där använder man idag alltså "memory management" i processorn, som ser till att separera data från kod (och även separera processer från varandra, så en process inte kan läsa eller skriva data som hör till en annan process).
https://en.wikipedia.org/wiki/Memory_management_unit
Nyckeln är väl främst om data och kod adresseras av samma adressbuss. Har de separata adressbussar så är det omöjligt att skriva över kod med data.
Delar de adressbuss och processorn saknar "memory management" så finns risken att kod skrivs över med data, men det beror då på buggar och borde ge rena krascher och hängningar snarare är instabilitet.
Du skriver bra Nerre, väldigt sakligt och intressant (HUGGBÄVERN kanske kan ta sig en titt på hur man diskuterar).
På bussen idag spånade jag på följande enkla (för att göra det begripligt) mikrodatorsystem:
1) PROM, detta kan också kallas programminne för här ligger den utbytbara "permanenta" programkoden.
2) EPROM, detta kan också kallas systeminställnings-minne (E låter vi här bara indikera att det är raderbart)
3) RAM, här lagras mest alla (flyktiga) variabler (i modern tid laddas väl också programmen in här för exekvering men på 6809-tiden tror jag BARA variabler existerar i RAM, variabler plus en liten stack för hopp-adresser och registerstatus).
Jag vet inte riktigt vad jag snackar om här men ungefär
Om vi nu tittar på en omprogrammering av EXAKT samma programkod så borde inte det hjälpa för dom permanenta variablerna nås inte, dom befinner sig ju i ett annat "block" (läs adressarea ty fysiskt ett annat minne dvs EPROM).
Fast om PROM och EPROM slås ihop så kan vi få problem, vi får problem om det går snett men vi får det bra och det inte gör det för då kommer alla systeminställningar programmeras till fabriksdefault.
Säg att det går bra, då har vi fräscha systeminställningar efter en omprogrammering av EXAKT samma programvara.
Nu är bara frågan VARFÖR vi behöver det?
Jag är nämligen säker på att min kära Nokia kan fås att fungera med hjälp av en omprogrammering.
Tricket är bara att klura ut mekanismen.
Eftersom ditt argument Nerre med olika bussbredder osv pekar på två i princip fysiskt sett helt olika minnen så ska inte EPROM kunna skrivas över av programmet i PROM.
Fast i regel tror jag att man istället pagear minne dvs PROM får en adress-area och EPROM en annan dvs dom kommer (naturligtvis) sitta på samma adressbuss vilket gör att de inte kan accessas samtidigt.
Då blir i praktiken PROM och EPROM olika fysiska enheter, gemensam adressbuss bara.
Fast det måste ju vara nåt fel med mitt EPROM i detta fallet för telefonen har fungerat klanderfritt i nästan tio år för att på senare tid bara dumma sig.
Men hur blir det fel på EPROM?
MVH/Roger