1

Potrzebuję porady od praktyków.

Muszę umożliwić w Tomku flashowanie pamieci programu z poziomu Atari. I to na dwa sposoby:
1. Zmiana calego firmware
2. Umieszczenie w pamieci flash programu obiektow binarnych (np. bitmap) do wykorzystania w grze.

Punkt 2 jest wzglednie latwy, gorzej z pkt 1.

Problem w tym, ze nietypowy interfejs Atar <--> PIC jakiego uzywam wymusza programową obsluge komunikacji. Mowiac inaczej: PIC musi odebrac od Atari rozkaz "zaprogramuj X bajtow od adresu Y", nastepnie odebrac X bajtow i wywolac sekwencje self-programowania.

I tu pojawia sie problem: co jesli bede chcial upgradowac procedurę programującą? :) Nie moze nadpisac sama siebie, bo sie w pewnym momencie zwiesi :P PIC nie ma niestety mozliwosci przepisania fragmentu kodu do RAM'u i wykonania go stamtad.

Przychodzi mi do glowy takie rozwiazanie: procedura startowa (wektor RESET) zawsze musi byc pod jednym niezmienym adresie w wydzielonym miejscu pamieci programu. Tam umieszcze procedure czekającą na inicjację komunikacji ze strony Atari. Jesli Atari wysle standardową sekwencję inicjującą to procedura skoczy do programu glownego i PIC bedzie czekal na rozkazy. Ale jesli Atari wysle sekwencję oznaczającą programowanie firmware to ta procedura wykona cala operacje odbioru danych i flashowania, a nastepnie skoczy do programu glownego (juz upgradowanego).

Natomiast w programie glownym bedzie obslugiwany rozkaz "flashuj procedure resetu", ktory pozwoli na upgrade powyzszej procedury.

Czy to ma sens? Czy nie mozna prosciej?
Nigdy czegos takiego nie musialem kodowac, wiec wole spytac praktykow zanim sie niepotrzebnie narobie.

2

1a) zrzuc nowy firmware na pamiec spi (ram/flash)
1b) odpal bootloader zeby zflaszowal nowa zawartosc kozystajac z z tejze pamieci
taki sposob jest w vbxe2, gdzie kontroler moze sie zupgrejdowac sam, tyle ze tam spiflash jest za darmo, bo i tak byc musi
koszt rozwiazania jest niewielki - pamiec kosztuje kilka zl

przechodze na tumiwisizm

3

Ha, dzieki. Wlasciwie niewiele sie to rozni od mojej metody, bo i tak musi byc jakis bootloader (znalazlem takie cos w PIC'u), a dodatkowo trzeba dolozyc pamiec.
Czyli cudow nie ma. To juz chyba wole sobie napisac wlasny "bootloader", choc jest pewne ryzyko ze jesli wystapi jakis blad i moj loader popisze jak leci po pamieci, to cart bedzie nie do uzytku...

Ja nawet sie zastanawialem nad pamiecia SPI RAM do wykorzystania roboczego (bo wbudowanej mam bardzo malo: 8KB), ale niestety jest ona przez swoja szeregowosc duzo za wolna. Wyszlo mi ze nawet najszybsza na rynku bylaby prawie 20x wolniejsza od wbudowanego RAM'u.

Przemysle to jeszcze.

4

Jeśli można coś doradzić.

Zrobiłeś naprawdę wyjątkową fajną rzecz i szkoda żeby to padło.

Najlepiej byłoby skończyć projekt tak jak jest.

Temat flashowania z poziomu atari można na razie olać.

Ani ten PIC24 (ok 25 PLN) ani programator (do 100 na allegro)

do niego to nie są jakieś straszne pieniądze.

Najwyżej jak ktoś będzie potrzebował to zrobi sobie płytkę z podstawką pod PICa

i będzie ładował wyciągał i ładował flash na PC.

5

To jest chyba najgorsza możliwa rada - wypuścić produkt na rynek przed dopracowaniem :) Skończy się na tym, że właśnie nie będzie motywacji aby dopracować, bo już ludzie używają wersji "tak jak jest" a wygoda cierpi. Nosty chce zrobić chyba w pełni profesjonalny, jak VBXE, produkt, gdzie pomyślano o wszystkim. Dlaczego miałoby paść z tego powodu?  Ja widzę tu pełną determinację i wierzę, że nie wymięknie :) To nie tego typu człowiek - co widać po innych jego produktach.

The problem is not the problem; the problem is your attitude about the problem

6

Hehhe dzieki wieczor, ale akurat kiepsko trafiles, bo slomiany zapał to moja najgorsza zmora ;) Dwa inne prawie skonczone dobre projekty czekaja juz u mnie w kolejce na niewiadomo kiedy...

To w sumie to nie jest najgorsza rada: wyobrazam sobie mozliwosc, ze kazdy kto chce developowac na Tomka gry i zmieniac firmware, musi kupic zestaw developerski Microchipa (jakies 140zl chyba), co umozliwiloby mu od razu tez poprawianie firmware. To faktycznie nie sa wielkie pieniadze.

Mozna wiec w ten sposob tworzyc i wydawac fajne gry.

Ale w PIC'u bedzie mozna przechowywac max. tylko jakies 64 - 96KB danych dla Atari. Wiec wieksze gry beda musialy ladowac do niego np dane kolejnych leveli itp. (na cartridgu bedzie pamiec EPROM do 512 lub 1024KB).
Wiec flashowanie jest konieczne.

No i docelowo chce zeby uzytkownik koncowy mial mozliwosc wykorzystwania raz zakupionego sprzetu do roznych gier. To tez wymusza zmiane firmware z poziomu Atari.

Lepiej wiec pomyslec zawczasu.

7

Myśleć za wczasu to moje motto - gdyby każdy miał takie podejście, żylibyśmy w lepszym świecie - niestety większość najpierw robi a potem myśli - co ja zrobiłem :)

A co do słomianego zapału, nie musisz mi tłumaczyć, każdy to ma w większym lub mniejszym stopniu :) Ważne jest umieć z tym walczyć i umieć się automotywować - a Ty chyba potrafisz ;)

The problem is not the problem; the problem is your attitude about the problem

8

nosty napisał/a:

Hehhe dzieki wieczor, ale akurat kiepsko trafiles, bo slomiany zapał to moja najgorsza zmora ;) Dwa inne prawie skonczone dobre projekty czekaja juz u mnie w kolejce na niewiadomo kiedy...

Tak bywa, zawsze czasu brakuje.

nosty napisał/a:

To w sumie to nie jest najgorsza rada: wyobrazam sobie mozliwosc, ze kazdy kto chce developowac na Tomka gry i zmieniac firmware, musi kupic zestaw developerski Microchipa (jakies 140zl chyba), co umozliwiloby mu od razu tez poprawianie firmware. To faktycznie nie sa wielkie pieniadze.

Mozna wiec w ten sposob tworzyc i wydawac fajne gry.

Dokładnie tak, każdy będzie mógł sobie dopisać co mu potrzeba.

nosty napisał/a:

Ale w PIC'u bedzie mozna przechowywac max. tylko jakies 64 - 96KB danych dla Atari. Wiec wieksze gry beda musialy ladowac do niego np dane kolejnych leveli itp. (na cartridgu bedzie pamiec EPROM do 512 lub 1024KB).
Wiec flashowanie jest konieczne.

Tu się pozwolę nie zgodzić.
64 kB danych to na 8bit ogromna ilość danych.
To bez problemu powinno wystarczyć na level gry nawet z bardzo wypasioną grafiką.

nosty napisał/a:

No i docelowo chce zeby uzytkownik koncowy mial mozliwosc wykorzystwania raz zakupionego sprzetu do roznych gier.

To tez wymusza zmiane firmware z poziomu Atari.

Lepiej wiec pomyslec zawczasu.

Coś w tym jest, tylko że to tak może obrastać w różne rzeczy, a z czasem różnie bywa.

Chyba lepiej skończyć pierwszą wersję bez flaszowania.

9 Ostatnio edytowany przez wieczor (2012-10-13 20:24:19)

Nie ma sie co spieszyc. Od prototypu do produkcji daleka droga - to nie jest tak ze Nosty skonczy prace a jutro bedzie mozna to kupic. A jeszcze potem soft , dokumentacja... Spokojnie :) A przy nastepnej wersji moze sie okazac jeszcze cos i moze byc lyso ze kupiles prototyp ktory dziala ale jest nie do uzytku bo wszyscy robia pod nowa wersje :D VBXE powstalo, IDE+, SIDE tez. Tomek8 tez powstanie, cierpliwosci. I tak szybko przeszlo od koncepcji do prototypu, jestem pod wrazeniem, tym bardziej ze nie jest to jedyna rzecz nad ktora Nosty pracowal. Zadalem gdzies nawet pytanie kiedy on spi :D

The problem is not the problem; the problem is your attitude about the problem

10

Nosty - pogadaj z Draco. O ile ma to cokolwiek wspólnego, to Draco napisał flasher dla SIC!'a. Może coś to pomoże.

Kontakt: pin@usdk.pl