u8g2 使用8080,总出现thread: stack overflow

发布于 2020-06-04 15:58:03
从例子st7920_12864_8080_example.cpp改过来的。运行msh:u8g2_st7920_12864_8080_example不出错,运行u8g2_ra8835_320240_6800_example出现stack overflow,请教为什么?
绿色背景是修改过的。发现管脚改不改都不影响。
使用的是8080,原来使用6800宏定义,没有改过来

#include
#include
#include
#include

// You may reference Drivers/drv_gpio.c for pinout
// In u8x8.h #define U8X8_USE_PINS

#define RA8835_6800_PIN_D0 77 // PB15
#define RA8835_6800_PIN_D1 78 // PB14
#define RA8835_6800_PIN_D2 79 // PB13
#define RA8835_6800_PIN_D3 80 // PB12
#define RA8835_6800_PIN_D4 81 // PC6
#define RA8835_6800_PIN_D5 82 // PC7
#define RA8835_6800_PIN_D6 85 // PC8
#define RA8835_6800_PIN_D7 86 // PC9
#define RA8835_6800_PIN_EN 90//WR//100 // PA15 //RD
#define RA8835_6800_PIN_CS 91//U8X8_PIN_NONE //CS1
#define RA8835_6800_PIN_DC 92 //101 // PA11 A
#define RA8835_6800_PIN_RST 88 // PA12 //RES


// Check for all supported devices
static U8G2_RA8835_320X240_F_8080 u8g2(U8G2_R0,
RA8835_6800_PIN_D0,
RA8835_6800_PIN_D1,
RA8835_6800_PIN_D2,
RA8835_6800_PIN_D3,
RA8835_6800_PIN_D4,
RA8835_6800_PIN_D5,
RA8835_6800_PIN_D6,
RA8835_6800_PIN_D7,
/*enable=*/ RA8835_6800_PIN_EN,
/*cs=*/ RA8835_6800_PIN_CS,
/*dc=*/ RA8835_6800_PIN_DC,
/*reset=*/ RA8835_6800_PIN_RST);


static void u8g2_ra8835_320240_6800_example(int argc,char *argv[])
{
u8g2.begin();
u8g2.clearBuffer(); // clear the internal memory
u8g2.setFont(u8g2_font_6x13_tr); // choose a suitable font
不相干的字体注释掉了
u8g2.drawStr(1, 18, "U8g2 on RT-Thread"); // write something to the internal memory
u8g2.sendBuffer(); // transfer internal memory to the display
u8g2.setFont(u8g2_font_unifont_t_symbols);
u8g2.drawGlyph(112, 56, 0x2603 );
u8g2.sendBuffer();
}
MSH_CMD_EXPORT(u8g2_ra8835_320240_6800_example, ra8835 320240 LCD sample);


查看更多

关注者
0
被浏览
67
3 个回答
ramboxin
ramboxin 2020-06-04
from thread 有数据;to thread 全是0(name是0,type是0);也就是当前线程是所有参数正确,而下一个线程(将要执行)参数不正确。怀疑这个线程就是msh线程

1591259020(1).png
ramboxin
ramboxin 2020-06-05
[09:05:15.615]收←◆to free a bad data block:
mem: 0x20008488, used flag: 0, magic code: 0x0000
(mem->used) assertion failed at function:rt_free, line number:574

这是不用msh,直接在线程里面调用的结果
ramboxin
ramboxin 2020-06-05
应该还是执行u8g2_ra8835_320240_6800_example的原因,不执行程序正常,执行后就这样了

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友