RT1502移植LUA成功的关键步骤有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计723个文字,预计阅读时间需要3分钟。
1. 由于LUA仅需约50K的RAM(经验值),故stack和heap的设置限额均设为64K。在文件rt1052_flexspi_scf.scf中修改如下:
1.由于LUA需要至少50K的RAM(经验值),所以stack和heap设置的尽量大,当前分别都设置为了64K。在文件rt1052_flexspi_scf.scf里面改动:
#define Stack_Size 0x10000
#define Heap_Size 0x10000
2.LUA解释器代码的__stdout和本体程序的__stdout重复定义,如下:
“..\OBJ\test.axf: Error: L6200E: Symbol __stdout multiply defined (by stdio_streams.o and lpuart.o).”
解决过程:
2.1单纯的把多处定义的__stdout前面加extern,会报如下错误:
“..\OBJ\test.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested, but _sys_open was referenced
”
嵌入式程序编译时如果出现sys_open,printf、fopen、fclose等文件操作,因程序中并没有对这些函数的底层实现,使得设备运行时会进入软件中断BAEB处,程序一直死在这里不能运行。
本文共计723个文字,预计阅读时间需要3分钟。
1. 由于LUA仅需约50K的RAM(经验值),故stack和heap的设置限额均设为64K。在文件rt1052_flexspi_scf.scf中修改如下:
1.由于LUA需要至少50K的RAM(经验值),所以stack和heap设置的尽量大,当前分别都设置为了64K。在文件rt1052_flexspi_scf.scf里面改动:
#define Stack_Size 0x10000
#define Heap_Size 0x10000
2.LUA解释器代码的__stdout和本体程序的__stdout重复定义,如下:
“..\OBJ\test.axf: Error: L6200E: Symbol __stdout multiply defined (by stdio_streams.o and lpuart.o).”
解决过程:
2.1单纯的把多处定义的__stdout前面加extern,会报如下错误:
“..\OBJ\test.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested, but _sys_open was referenced
”
嵌入式程序编译时如果出现sys_open,printf、fopen、fclose等文件操作,因程序中并没有对这些函数的底层实现,使得设备运行时会进入软件中断BAEB处,程序一直死在这里不能运行。

