Śmiem się nie zgodzić, po to jest właśnie volatile, żeby kompilator wiedział że dostęp ma efekty uboczne i nie może go optymalizować. Taki 'pusty' zapis w C może nie przetrwać agresywnej optymalizacji.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

27

Ale jaki pusty? Masz adres i masz wartość, którą chcesz pod ten adres zapisać. W takim razie co nie jest 'pustym' zapisem? Wszędzie w kodzie mam wstawiać volatile?

What can be asserted without proof can be dismissed without proof.

Nie wszystko. Jeżeli jednak kompilator nie widzi akcesów po zapisie to może sobie ten zapis wyoptymalizować. Nie mówię że koniecznie tak się stanie, ale dla świętego spokoju volatile bym tam dał.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

29

No właśnie nie może. Robisz zapis do pamięci i w pamięci znajdzie się taka wartość jaka powinna się tam ostatecznie znaleźć. Jedyne co robi volatile to wymuszeniena na kompilatorze, żeby wykonać KAŻDY access do tego samego adresu.

What can be asserted without proof can be dismissed without proof.

30

Chyba nie ... to zależy od optymalizacji jakiej dokonuje kompilator ...  http://www.open-std.org/jtc1/sc22/wg14/ … /n1956.htm

Zapis też jest accesem. Jak kompilator zdecyduje się coś wyoptymalizować do rejestrów, to nie będzie zapisu do pamięci, nawet jak będziesz używał wskaźnika.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

32

@artik-wroc zrób ten zapis i odczyt pamięci / rejestrów w asmie
będzie po problemie

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

33

Dzisiaj będę walczył. Myślę ,że już wiem, co tam może nie działać.

Było miło :) Do widzenia.

34

Poprzednim razem udało się i przerwania zadziałały :)
Odkurzam temat, gdyż chciałbym zapytać jak to odnieść do Hadesa jeśli, siedzą tam dwa układy MFP.
Ten który mnie interesuje (obsługujący ISA) znajduje się pod adresem $FFFFFA00-A3F, wszystkie przerwania z każdego slotu ISA są połączone i idą właśnie do MFP. Z pierwszego slotu do pinu 28 (I/O3), z drugiego do 32 (I/O7).
Przerwanie MFP ma priorytet 6, ale tu są dwa MFP. Jak to ugryźć ?

Było miło :) Do widzenia.

35

nie znam architektury Hadesa, nie wiem też gdzie można znaleźć dokumenty o niej.
Ale być może jest tak ja w TT, czyli jak nie potrzebujesz drugiego MFP to go nie używasz.

Co do pinów to z tego co widzę to pin 28 to GPIO-6 a pin 32 to Interrupt Request

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

36

Cyprian napisał/a:

Co do pinów to z tego co widzę to pin 28 to GPIO-6 a pin 32 to Interrupt Request

Też tak myślałem, ale to są układy PLCC.

http://tho-otto.de/hypview/hypview.cgi? … ;index=467

Było miło :) Do widzenia.