Jak ztohoven - Reentrancy not allowed :-(

Miroslav Sinko sinkomiro@rocketmail.com
Sobota Září 8 18:57:16 CEST 2007


Neviem, co s tym, ked to uz linker poklada za chybu (nepoznam ten
prekladac), ale normalne sa problem casovej vylucnosti vstupu do
nejakej rutiny vola kriticka sekcia. Budete mat globalny flag, ktory si
kazda volajuca rutina (main, interrupt..) pred vstupom do kritickej
sekcie overi. Ak je "volno", nastavi ho na "obsadene" a vstupi. Po
ukonceni vykonu kodu v kritickej sekcii ho opat uvolni. Teda ak druha
rutina zisti, ze je "obsadene", bude cakat na zmenu na "volno". Flag
samozrejme musi byt volatile a musi sa zabezpecit "atomicnost" krokov
'kontrola vratila volno' a 'nastav na obsadene'. 8051 ma na to krasnu
instrukciu JBC bit,rel (Jump if Bit is set and Clear bit)

Co sa tyka zdielaneho vyuzivania I2C, tak asi jedine buffer.

miro


--- "CNCnet.info" <hwnews@cncnet.info> wrote:

> Zdravim,
> 
> uz si tady hodnou dobu lamu hlavu jak vybruslit z nasledujiciho
> problemu:
> 
> 0:0 E-0 Linker error: Reentrancy not allowed: function [I2C_Write] 
> called in both main and interrupt threads  
> 
> Je asi celkem jedno co to je za prekladac (mikroPascal od 
> Mikroelektroniky). Jestli cely problem te hlasky chapu dobre tak mi 
> linker hlasi, ze jak v hlavnim programu tak interrupt dochazi k
> volani 
> stejne rutiny. Pravdepodobne je to proto, ze by se mu popraly
> promenne 
> pokud by doslo k preruseni uprostred teto rutiny a v zapeti by se do
> ni 
> vlezlo znovu v preruseni.
> 
> Nicmene ted si marne lamu hlavu co s tim, protoze to je dosti
> brutalni 
> omezeni - musel bych dosti striktne oddelit casti kodu, ale i tak si
> to 
> nedokazu moc predstavit - ted momentalne to rve kvuli tomu, ze si na
> I2C 
> expander v ramci inicializace zarizeni poslu prikaz na zhasnuti
> displeje 
> a zaroven v interruptu kde resim prijem dat z USARTu jsem chtel tyto 
> rovnou sypat do I2C FRAMky.
> 
> -- 
> Radek Vicek 
>
======================================================================
> http://www.cncnet.info - problematika CNC a automatizace
> http://www.jakjevenku.info - webová meteostanice
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 



       
____________________________________________________________________________________
Choose the right car based on your needs.  Check out Yahoo! Autos new Car Finder tool.
http://autos.yahoo.com/carfinder/



Další informace o konferenci Hw-list