Sida 9 av 12
Postat: 16 oktober 2007, 07:40:40
av Illuwatar
Jag misstänker att den är hårdkodad till 512kb ROM-space. Fyller man bara hälften så blir det tomt i resten. Mätningar på kortet med oscilloskop visar ett system i väntläge när detta sker (alla data- och adressledingar låga, alla aktivt låga styrsignaler höga). Men det var inget större problem - jag har några olika kick-romar att välja på...
Postat: 16 oktober 2007, 08:27:45
av ucadv
Jag kan inte hitta koden som hårdkodar 512k rom. Kan det vara start koden i BootRom.v som gör detta?
Postat: 16 oktober 2007, 12:47:12
av blueint
Det är hårdkodat i MCUn enligt följande:
minimig1_firmware_15_07_2007/main.c
/*load kickstart rom*/
void ReadRom(unsigned char track) {
.
.
/*open kickstart file*/
Open("KICK ROM");
/*do for 1024 sectors of 512 bytes each --> 512kbyte*/
n=0;
while(n<1024)
{
Om man ändrar till "while(n<file.len)" bör det fungera med variabel längd på kickstart. Btw, man kan också lägga in kickstart väljare om man så önskar ;) (Open("KICK ROM");)
bootrom/bootrom.s
BootL bsr Rd16k ;read track into buffer
bsr Cpy16k ;copy buffer to kickstart area
cmp.l #$1000000,a3 ;all data done ? **ÄNDRA TILL $fc0000**
beq Exit ;yes --> exit boot code
bclr #0,CIAPRB(a2) ;no --> load next track
bset #0,CIAPRB(a2)
bra BootL
Detta borde fixa till 256kB Kickstart, fast det går förmodligen lika bra att bara fylla ut resten av KICK.ROM med nollor så att den blir exakt 512kB stor.
Är det någon kickstart som är större än 512kB ..?
Postat: 16 oktober 2007, 22:15:50
av Illuwatar
Du verkar vara en hejare på PIC. Så du kan nog svara på en fråga: Hur lägger man en "goto ProgStart" på adress $0000 i ett C-program (PICC-18)? I assembler är det inga problem, men i C... Detta behövs för att kunna köra koden med bootloadern (första instruktionen skall vara ett hopp till programmets start).
Skruva kod kommer jag nog också göra när jag blir lite mer van vid PIC. Tanken är att ha en LCD på fronten som visar systemets status (nu går denna data ut på serieporten).
Dessutom har jag så smått börjat på en "release"-version av detta projekt. Jag kommer göra några smärre ändringar i designen samt rätta felen. Därefter skall en ny batch av kort beställas - denna gång för att erbjudas till omvärlden. Så den som kan få dit en QFP-208 får gärna teckna upp sig för ett exemplar...
Postat: 17 oktober 2007, 01:05:23
av blueint
I ett C program lägger kompilatorn/länkaren in en egen snutt i början.. så man kommer nog inte åt. Om du inte kompilerar till assembler, ändrar och sedan kompilerar assemblern till maskinkod.
Men du kan i vanlig C kod skriva:
main() {
start:
printf("Hoppla!\n");
goto start;
}
För mer avancerat trixande får du använda dig av inline:
(/usr/include/machine/cpufunc.h)
__asm __volatile("inb %1,%0" : "=a" (data) : "id" ((u_short)(port)));
Kanske något i stil med "__asm jmp 0x12345678;" kan fungera. Men ta en titt på vad slags assembler kompilatorn producerar så du ser vad den egentligen gör.
Ang kortet, så önskar jag nog endast IDC kontakter, 1st minne istället för två, och ev XC3S500. Å annat småplock.
Sen så måste Minimig använda DRAM i någon form om 16MB ska kunna bli realiserat.
Postat: 17 oktober 2007, 01:23:48
av Bandaren
Verkar som någon lyckats få in en 68k cpu i fpga:n nu.
Kanske något att ta med i beräkningarna vid en ev. produktion?
http://www.mikrocontroller.net/topic/81116#new
Postat: 17 oktober 2007, 01:48:06
av JimmyAndersson
Postat: 17 oktober 2007, 02:25:51
av blueint
m68k "soft cpu" har funnits tillgängligt ett bra tag.
Postat: 17 oktober 2007, 08:44:44
av Illuwatar
Den där sidan var på tyska så det var lite svårt att hänga med, men det såg onekligen intressant ut. Undrar hur stor FPGA som krävs för detta...
Att göra ett kort med bara headers är inget problem, inte en större FPGA heller om den är kodkompatibel. Ersätta 2 x 1MB minnena med ett 2MB (1M x 16) skulle kunna gå utan att ändra koden genom att externt generera den extra adressledningen utifrån chipselect-signalerna. Däremot DRAM är jag lite tveksam till då detta ger mig krypningar längs ryggen - all denna timing som behövs skulle kräva en skaplig omändring av FPGAns innehåll.
Det som för tillfället är prioriterat är riktig ICSP (så det går att radera PIC'en direkt i kortet), renare strömförsörjning samt bättre skydd på portarna (framförallt joystickportarna). Därefter kommer jag börja titta lite på PIC-koden och börja skruva på denna.
Postat: 17 oktober 2007, 12:28:22
av blueint
Hittade ingen vhdl/verilog kod på den tyska sidan, bara .pof & .sof fil (vad nu det är).
Den FPGA som har den största antal logikgrindar utan att använda BGA är XC3S500E. Därav valet. Att ersätta minnet med en kapsel går utmärkt. Man får t.om en extra i/o över. Genom att chip select till minne #0 nyttjas som addressledning istället.
DRAM kanske är surt, men no pain, no gain? =)
Hur ska du fixa ICSP och filtrera ingående elektricitet ?
Postat: 17 oktober 2007, 12:49:59
av ucadv
.pof och .sof är alteras format. en går FPGAn via jtag, den andra ska in i flashminnet.
på DE2 kortet sitter en cyloneII-35. den är något större än XC3S1600E som är den största i Spartan-3E familjen.
edit: mer info om DE2 porten finns här:
http://www.amiga.org/modules/newbb/view ... 70&forum=8
Postat: 17 oktober 2007, 14:39:25
av rehnmaak
Fanns det källkod (VHDL eller Verilog) till 68k processorn någonstans? Kollade lite men hittade inget...
Postat: 17 oktober 2007, 15:44:01
av blueint
@rehnmaak:
HDL soft-m68k finns på sidan för ett Atari ST emulations projekt "Suska":
http://download.experiment-s.de/Suska/C ... _68K00_IP/
@Illuwatar:
Kan du kolla den snabbaste accesstiden på /RAM_OE (pin 41) och /RAM_WE (pin 17) ..? Dvs hur lång tid går det som kortast mellan två negativa flanker på dessa signaler.
GND=Pin 12, Pin 34 (M68AW512M).
Postat: 17 oktober 2007, 16:50:10
av ucadv
det är dock inte samma kärna:
"This IP core is the model of a (hopefully) 68000 compatible microprocessor. The core uses about 10.000 logic elements (Altera Cyclone II)."
se hans kommentar nedan.
Quote:
Did TobiFlex design the 68k core himself?
Yes I have done this myself.
hans kärna verkar vara runt 4K celler stor.
bör också nämnas att "TobiFlex" är en av killarna bakom C-ONE (C64 emulatorn).
Postat: 17 oktober 2007, 18:02:34
av blueint
Ajaj

Dock tills han släpper den m68k processorn så betraktar jag den som icke existerande..
Suska finns här och nu iaf.