新手上路
- 积分
- 34
- 金钱
- 34
- 注册时间
- 2012-4-2
- 在线时间
- 0 小时
|
1、在ucGUI移植实验里面,有两个启动外码文件,
之前的例程启动代码都是只有stm32f10x_startup.s,看到这个里面还有cortexm3_macro.s,这个是什么用的呢?
2、还有我刚刚看到一个写ucGUI移植的帖子,里面有这段话:
我们用stm32主控做视频应用的时候,就是动态的,我们需要不断的刷新屏幕,但是当我们主控一边运算,
一边往液晶接口送数据的时候,会有明显刷屏的感觉(运算->画点->运算->画点....,这个运算
->运算.......画点->画点->画点...是不一样的,因为对屏幕一直画点,填充,而中间不用插入运算,
刷一个屏幕时间时间倍速差别是非常巨大的,后面大家也会见识到这种差别.),所以,用GUI申请的空间里面
边运算,边填充,填充完再一次性运出去(这里可以通过DMA控制FSMC总线,不断的从外置SRAM往GRAM自动搬运数据,
这是不用主控去插手的,所以,主控大部分时间是负责运算,其他时间可以空闲出来,
让DMA自己去忙活),同理,因为dma跟cpu的分工,所以,这里同样的把画点,画点,运算,运算不完全的分开了,
屏幕刷新速度非常之可观(DMA的速度相比大家还是非常了解的,它就是为速度而生的.),
这里说可以借助DMA控制FSMC总线来往液晶GRAM里面扔数据,这个可以实现吗?具体要怎么操作? 原子哥赐教。
3、还有,在《ucGUI移植例程》里面的uCOS-II包比《uCOS-II控制DS0 DS1亮灭》里的uCOS-II包多了一个uCOS-II/CPU文件夹,里面有cpu_a.asm和cpu_def.h文件,他们是做什么用的呢,移植uCOS-II还需要包括这两个文件吗?刚刚看到,两个例程,里面的OS_CRITICAL_METHOD一个定义为方法3,一个为方法4,是因为这个所以配置就不一样吗?
在os_cpu_a.asm里面有个函数
OS_CPU_SR_Save
MRS R0, PRIMASK ;保存全局中断标志 ; Set prio int mask to mask all (except faults)
CPSID I ;关中断
BX LR
在cpu_a.asm里面也有功能一样的函数
CPU_SR_Save
MRS R0, PRIMASK ; set prio int mask to mask all (except faults)
CPSID I
BX LR
只是函数名称不一样,当使用方法3的时候,进临界段会调用OS_CPU_SR_Save()函数,但是这个CPU_SR_Save()函数
是在哪里被调用的呢,两者的功能是一样的。
4、当.c文件调用.asm文件里面的函数的时候,需要建立什么连接吗,就像C文件要调用另一个C文件中的函数,必须包含对应的.h头文件,那么汇编函数也有它的头文件可以让C文件包含吗,不然的话程序是怎么找到.asm文件里面的函数的,而且我在C文件中 点击跳转到函数被定义的地方 会提示函数未被定义。
呵呵,问题有点多,原子哥费心解答。
|
|