RetroBSD

2.11BSD operating system for microcontrollers
It is currently Thu Sep 24, 2020 10:22 pm

All times are UTC




Post new topic Reply to topic  [ 8 posts ] 
Author Message
PostPosted: Fri Sep 18, 2015 9:46 am 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
Code:
# ./gpio

*** 0x00000000: exception 'Bus fetch'
*** stack frame at 80007de0
        0        0        1      a00
        3     2000 80002d90        1
        c 80005cc0        0        0
        0        0        0      a00
      1e0        3        3 7f01ff9c
        0        0        0        0
        0 80000000 80007e64 7f01ff1c
 9d00cb90      659        0 10000003
        0 7f00c5d8        3 7f01ff9c
        0        0        3 7f00c5d8
 9d017f40        0        0        0
        0 80004ee8        0 80004504
        3 7f00c5d8 9d015d74        0
        3        0        0 7f00c5d8
       40        0        0 80004ee8
      340        0       27    50010
 74726f70       61        0        0
        0        0        0        0
        0        0 80005320 ffffffff
        0 7f008000     4a50 7f00ca50
       88       21        0        0
        0        0 9d019cdc        0
        0        0        0        5
 7f008180 9d022434 9d0002bc        0
        0        0 9d0002bc 80007f7c
        0 80000000        3        0
 7f01ffbb        0 7f00c5d8        2
 7f01ff9c       2f        0        0
        0        0        0        0
        0        0        0        0
        0        0        0        0
        0        0        0        0
 7f0145d0 7f01ff00 7f01ff1c 7f008088
        0        0 10000013 7f00818c
*** registers:
                t0 =        1   s0 =      a00   t8 =        0   lo =      659
at =        0   t1 =        c   s1 =      1e0   t9 =        0   hi =        0
v0 =        0   t2 = 80005cc0   s2 =        3               status = 10000003
v1 =        1   t3 =        0   s3 =        3                cause = 50800418
a0 =      a00   t4 =        0   s4 = 7f01ff9c   gp = 80000000  epc =        0
a1 =        3   t5 =        0   s5 =        0   sp = 80007e64
a2 =     2000   t6 =        0   s6 =        0   fp = 7f01ff1c
a3 = 80002d90   t7 =        0   s7 =        0   ra = 9d00cb90
panic: unexpected exception
syncing disks... done
halted


as well as in my i2cscan

Code:
# make
cc  -o rtc8563rd  rtc8563rd.c
cc  -o rtc8563wr  rtc8563wr.c
cc  -o i2cscan  i2cscan.c
# ./i2cscan

*** 0x00000000: exception 'Bus fetch'
*** stack frame at 80007de0
        0        0        1      a00
        2     2000 80003d90        1
        c 80005cc0        0        0
        0        0        0      a00
      1e0        2        3 7f01ff98
        0        0        0        0
        0 80000000 80007e64 7f01fef8
 9d00cb90      659        0 10000003
        0 7f00cdb8        3 7f01ff98
        0        0        2 7f00cdb8
 9d017f40        0        0        0
        0 80004ccc        0 80004444
        2 7f00cdb8 9d015d74        0
        2        0        0 7f00cdb8
       40        0        0 80004ccc
      340        0       27    50010
 74726f70       61        0        0
        0        0        0        0
        0        0 80005320 ffffffff
        0 7f008000     523c 7f00d23c
       8c       21        0        0
        0        0 9d019cdc      808
 8000467c 9d01888c 9d023fa0        5
 7f008978 9d022434 80007f60 8000059c
        0        0 9d0002bc 80007f7c
        0 80000000        3        0
 7f00cdb8        0 7f00cdb8        1
 7f01ff98       2f        0        0
        0        0        0        0
        0        0        0        0
        0        0        0        0
        0        0        0        0
 7f014db0 7f01fee4 7f01fef8 7f008090
        0        0 10000013 7f008984
*** registers:
                t0 =        1   s0 =      a00   t8 =        0   lo =      659
at =        0   t1 =        c   s1 =      1e0   t9 =        0   hi =        0
v0 =        0   t2 = 80005cc0   s2 =        2               status = 10000003
v1 =        1   t3 =        0   s3 =        3                cause = 50800418
a0 =      a00   t4 =        0   s4 = 7f01ff98   gp = 80000000  epc =        0
a1 =        2   t5 =        0   s5 =        0   sp = 80007e64
a2 =     2000   t6 =        0   s6 =        0   fp = 7f01fef8
a3 = 80003d90   t7 =        0   s7 =        0   ra = 9d00cb90
panic: unexpected exception
syncing disks... done
halted

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Fri Sep 18, 2015 7:34 pm 
Committer
User avatar

Joined: Wed Oct 10, 2012 11:01 pm
Posts: 1081
Location: Sunnyvale, CA
This case is pretty interesting.
It does not crash on simulator:
Code:
# ./gpio
portA = 0xffff
portB = 0xffff
portC = 0xffff
portD = 0xffff
portE = 0xffff
portF = 0xffff
portG = 0xffff
# _

Something goes wrong on a real hardware.


Top
 Profile  
 
PostPosted: Fri Sep 18, 2015 8:17 pm 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
it worked in past.. The difference is I've compiled it with smallerc.

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Fri Sep 18, 2015 8:49 pm 
Committer
User avatar

Joined: Wed Oct 10, 2012 11:01 pm
Posts: 1081
Location: Sunnyvale, CA
It's the driver's issue, not the compiler.
Any access to the gpio device causes the same crash:
Code:
# cat /dev/porta

*** 0x00000000: exception 'Bus fetch'
*** stack frame at 80007de0
        0        0        6      a00
        1     2000 800020d4        1
        c 80005804        0        0
        0        0        0      a00
      1e0        1        3      1b6
        0        0 7f00dc24        0
        0 80000000 80007e64        0
 9d00fb90      659        0 10000003
        0 7f01ffb0        3      1b6
        0        0        1 7f01ffb0
 9d01af40        0        0        0
        0 80004e64        0 80003f70
        1 7f01ffb0 9d018d74        0
        1        0        0 7f01ffb0
       40        0        0 80004e64
      340        0       27    50010
 74726f70       61 9d006634        0
        0        0        0        1
       43     2190        1        0
        4        0        0 55fbabab
 55fbabab       21 7f00da70        0
 7f01ff68 7f01ff64 9d01ccdc        0
       66        0        0        7
 7f009938 9d0245f0 9d0032bc        0
 7f00dc4c 7f00da70 9d0032bc 80007f7c
        0 80000000        3        0
       72       72 7f01ffb0        0
      1b6       2f        0        0
        0        0        0        0
        0        0 7f00dc4c 7f00da70
        0 7f01ff68 7f01ff64        0
        0 7f00dc24        0        0
 7f015d90 7f01fe5c        0 7f0092ec
        0        0 10000013 7f009944
*** registers:
                t0 =        1   s0 =      a00   t8 =        0   lo =      659
at =        0   t1 =        c   s1 =      1e0   t9 =        0   hi =        0
v0 =        0   t2 = 80005804   s2 =        1               status = 10000003
v1 =        6   t3 =        0   s3 =        3                cause = 50800418
a0 =      a00   t4 =        0   s4 =      1b6   gp = 80000000  epc =        0
a1 =        1   t5 =        0   s5 =        0   sp = 80007e64
a2 =     2000   t6 =        0   s6 =        0   fp =        0
a3 = 800020d4   t7 =        0   s7 = 7f00dc24   ra = 9d00fb90
panic: unexpected exception
syncing disks... done
halted


Top
 Profile  
 
PostPosted: Sat Sep 19, 2015 6:10 am 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
Yes, as the subject says :)
Is the driver actually enabled? (your new kconfig stuff).

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Sep 19, 2015 6:57 am 
Committer
User avatar

Joined: Wed Oct 10, 2012 11:01 pm
Posts: 1081
Location: Sunnyvale, CA
I've finally fixed this bug.
You are correct: the entry in device switch table was not initialized properly, and it resulted in open() function call via NULL pointer. Actually any disabled device would crash.

Try next autobuild revision (369) when available.

And thank you, Pito, for your help in testing all this stuff!


Top
 Profile  
 
PostPosted: Sat Sep 19, 2015 7:02 am 
Contributor
User avatar

Joined: Thu Nov 08, 2012 7:04 am
Posts: 2401
Location: Rapa Nui
Let us test :)
v369 fub:
Code:
# ./gpio
portA = 0x0000
portB = 0xffff
portC = 0x6000
portD = 0x0fff
portE = 0x00ff
portF = 0x003b
portG = 0x0380
#


Serge, thanks for fixing!

_________________
Pukao Hats Cleaning Services Ltd.


Top
 Profile  
 
PostPosted: Sat Sep 19, 2015 8:19 am 
Committer
User avatar

Joined: Wed Oct 10, 2012 11:01 pm
Posts: 1081
Location: Sunnyvale, CA
Hooray!
Finally you got a more or less reliable system. :)


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron




Powered by phpBB® Forum Software © phpBB Group

BSD Daemon used with permission