网上找了段linux下s3c2440的LCD显示图片程序,编译完没错,下载到开发板上执行结果出现Segmentation faul
发布网友
发布时间:2022-05-15 10:37
我来回答
共2个回答
热心网友
时间:2023-10-20 17:18
其实我没有嵌入式开发的经验,但粗略地看了一下,在Paint函数中,嵌套了两层for循环,x和y分别从0向LCD_XSIZE和LCD_YSIZE递增
而上面define的LCD_XSIZE和LCD_YSIZE宏分别定义为320和240,那么“t = t + 3”执行了320 * 240=230400次,而t的最大值为319 * 239 * 3 = 228723, 而这里的传入的ch数组即picture数组只分配了129600,小于228723,所以应该是内存越界造成的段错误(Segmentation fault)
如果没有其他错误,个人觉得吧picture数组的大小改为大于228723 + 2 = 228725应该就可以了
段错误一般是内存异常的保护机制,编译器是无法检测的
热心网友
时间:2023-10-20 17:18
关注这个问题