[问题] 为什么会出现segament fault?程式问题?

楼主: zzss2003 (brotherD)   2018-09-26 19:35:47
程式码: https://ideone.com/kP8qHo
结果: https://imgur.com/a/WMdUccR
与结果不符之预期: 程式不应该停止,因为我用while(1)循环整个包住了,而且并没有
printf出"should not be here"。 然后我用debug mode一行一行跑的时候,发现count=2
(也就是第二次进入isr)且执行到第87行的时候(也就是在60行,把LEDS丢进去function
print_byte),出现segment fault。
这就是为什么程式会在这边停止的原因吧! 但从C语言来看这一行本身没什么问题,我又看
不太懂x86的组语...Orz,所以来这边请教一下各位大大。
(ps: 原本想给各位大大看组语,但不晓得为什么我的dev c++开启视窗后就不能动了,导
致没办法把整个片段给大家看。)
截图: https://imgur.com/a/0ZoYrgi
我是不是直接换个环境比较快阿???
作者: james732 (好人超)   2018-09-26 19:46:00
你的i没有初始值会出事
作者: Schottky (顺风相送)   2018-09-26 19:47:00
printf 写错了,%d 要对应 int 你却给 unsigned char后面会 Segmentation fault 也不意外对喔,i 也没给初值就使用
作者: cphe (魔鬼藏在垃圾筒里)   2018-09-26 20:03:00
你的i每次进来都是garbage,你应该是想设成static吧 另外如果要练习写timer interrupt不该用这种模拟方式,你怎么跑都只是user process~直接写一只driver不就好了
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-09-26 22:49:00
你继续用看的看C语言就好,用看的,不要写code。
作者: Schottky (顺风相送)   2018-09-27 13:42:00
置底十三诫之第一诫。那十三诫值得一看
作者: segment (一生悬命)   2018-09-28 19:40:00
因为你打错字
作者: Killercat (杀人猫™)   2018-09-28 20:19:00
er..是时候该抛弃dev c++跟学学debugger了
作者: sunneo (艾斯寇德)   2018-09-28 23:00:00
vscode 比较棒
作者: dces4212 (flawless)   2018-10-02 12:05:00
eclipse好像有开发版模拟plugin

Links booklink

Contact Us: admin [ a t ] ucptt.com