问题已基本解决
1、scatter的问题,没解决,暂时是把文件名写全称,这样可按照要求产生elf文件然后转hex再转bin
2、转到C++了,代码的可管理性大大增强,负责此案的同事正在学习C++,他以前是纯C搞开发的
3、实现了平台和APP的分割
约定APP中不许用全局变量,只能用C++成员变量和局部变量,类实例化也用new实现,这样堆栈由平台来管理
APP中对标准c库的调用,独立性强的可放置于APP中,牵涉堆栈管理等全局的建立到平台代码的入口
APP的编译,不加中断向量,不写main函数,很简洁的项目
C++的new操作,最终会调用C函数malloc来分配内存,为了把所有内存交给平台程序管理,所以加了下面的入口
其实好多平台API都是透过这个方法再open给APP函数的,正在逐步完善成一个非常简洁的SDK
malloc PROC
MOVW r12,#0x0000
MOVT r12,#0x2000
LDR r11,[r12,#0]
LDR r12,[r11,#0]
ORR r12,r12,#1
BX r12
ENDP
free PROC
MOVW r12,#0x0000
MOVT r12,#0x2000
LDR r11,[r12,#0]
LDR r12,[r11,#4]
ORR r12,r12,#1
BX r12
ENDP |