怎样把rtthread移植到正点原子f4移植视频战舰上

查看: 1156|回复: 8
旧版战舰烧入“STemWin无操作系统移植”程序,在触屏校正处进入不了,附图
主题帖子精华
中级会员, 积分 276, 距离下一级还需 224 积分
在线时间41 小时
d913cc7f3c5f21f.jpg (0 Bytes, 下载次数: 0)
22:54 上传
已经很耐心点击屏幕上的红点校正了,没效,还有这个状态如果不操作超过1分,这时点击屏幕无反应。为什么呢?
老版本战舰和新版本战舰,触摸屏部分是有区别的.
&他们引脚都变了....
直接下载V3代码到V2,那么触摸屏,是肯定不能用的.
主题帖子精华
金钱119373
在线时间941 小时
老版本战舰和新版本战舰,触摸屏部分是有区别的.
&他们引脚都变了....
直接下载V3代码到V2,那么触摸屏,是肯定不能用的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
在线时间1250 小时
下载基础例程中的触摸实验,看看触摸屏能不能用。
开往春天的手扶拖拉机
主题帖子精华
金牌会员, 积分 1814, 距离下一级还需 1186 积分
在线时间61 小时
触摸校正数据没写入AT24芯片或者校正不成功
手艺人要内外兼修。
主题帖子精华
中级会员, 积分 276, 距离下一级还需 224 积分
在线时间41 小时
回复【3楼】wangyan915205:
---------------------------------
我已经校正了几次了,也用校正程序的例程试过,例程的校正可以,这个程序的校正就不行的。如果改程序让他跳过校正这步应该怎么改呢?你说的“触摸校正数据没写入AT24芯片或者校正不成功”是同一个原因吧,“因为校正不成功所以触摸校正数据没写入AT24芯片”
主题帖子精华
中级会员, 积分 276, 距离下一级还需 224 积分
在线时间41 小时
回复【2楼】zuozhongkai:
---------------------------------
基础例程中的触摸实验,使用正常
主题帖子精华
中级会员, 积分 276, 距离下一级还需 224 积分
在线时间41 小时
a7eeded17da_733.png (0 Bytes, 下载次数: 0)
22:54 上传
不管怎么点击屏幕,得出的4个点的坐标总是4095的,明明是直接用原子的无系统代码,代码没有改动过,为什么呢?
主题帖子精华
中级会员, 积分 276, 距离下一级还需 224 积分
在线时间41 小时
是不是这程序不适合旧版的战舰啊?
主题帖子精华
中级会员, 积分 276, 距离下一级还需 224 积分
在线时间41 小时
我是用战舰V3的程序&&烧到旧版战舰上的,又烧了几个其他的战舰V3的程序,也不适用,是不是这个问题?
Powered by正点原子stm32战舰版和mini版哪个有利于学习?期待专业回答。_百度知道
正点原子stm32战舰版和mini版哪个有利于学习?期待专业回答。
我有更好的答案
我用的就是原子的板,如果钱财允许的话,还是买战舰版吧,我之前买mini板都后悔了,mini板做不了DA实验,FSMC实验等
采纳率:70%
我个人觉得哪一种都一样,看个人爱好
为您推荐:
其他类似问题
stm32的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。战舰STM32开发板实现了FASFT移植后接下来要做什么才能实现在板子上建立文件夹存储内容_百度知道
战舰STM32开发板实现了FASFT移植后接下来要做什么才能实现在板子上建立文件夹存储内容
我有更好的答案
在程序中初始化SD卡机驱动程序,并调用fatfs注册驱动器函数,然后就可以调用建立文件夹和建立文件的程序了。前提是用电脑已经把SD卡格式化成fat32格式了。不然还要加上调用格式化建立文件系统的程序了。另外你问的太笼统了,只有这么说了,希望对你有帮助。
采纳率:60%
问题问的内容太大了,无法用言语回答了
为您推荐:
其他类似问题
stm32的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。查看: 132|回复: 2
求助:在战舰V3-标准例程-HAL库版本1.0\实验37 内存管理实验的基础上移植EMWIN,植入官方Demo编译出现空间不足问题,
主题帖子精华
初级会员, 积分 77, 距离下一级还需 123 积分
在线时间19 小时
发表于 6&天前
本帖最后由 wendellzq 于
15:40 编辑
在战舰V3-标准例程-HAL库版本1.0\实验37 内存管理实验的基础上移植EMWIN,植入官方Demo编译出错:..\OBJ\Template.axf: Error: L6406E: No space in execution regions with .ANY selector matching guidemo_treeview.o(.constdata).
..\OBJ\Template.axf: Error: L6406E: No space in execution regions with .ANY selector matching guidemo_treeview.o(.constdata).
..\OBJ\Template.axf: Error: L6406E: No space in execution regions with .ANY selector matching libshutdown.o(.ARM.Collect$$libshutdown$$).
..\OBJ\Template.axf: Error: L6406E: No space in execution regions with .ANY selector matching guidemo_resource.o(.constdata).
..\OBJ\Template.axf: Error: L6406E: No space in execution regions with .ANY selector matching guidemo_resource.o(.constdata).
..\OBJ\Template.axf: Error: L6406E: No space in execution regions with .ANY selector matching usenofp.o(x$fpl$usenofp).
..\OBJ\Template.axf: Error: L6407E: Sections of aggregate size 0x4432c bytes could not fit into .ANY selector(s).
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 2 information, 0 warning and 2754 error messages.
&..\OBJ\Template.axf& - 2754 Error(s), 0 Warning(s).
GUIConf.c代码如下:
#include &GUI.h&
#include &sram.h&
#include &malloc.h&
#define USE_EXRAM&&1//使用外部RAM
//设置EMWIN内存大小
#define GUI_NUMBYTES&&(500*1024)
#define GUI_BLOCKSIZE 0X80&&//块大小
//GUI_X_Config
//初始化的时候调用,用来设置emwin所使用的内存
void GUI_X_Config(void) {
& && &&&if(USE_EXRAM) //使用外部RAM
& && && && && & U32 *aMemory = mymalloc(SRAMEX,GUI_NUMBYTES); //从外部SRAM中分配GUI_NUMBYTES字节的内存
& && && && && & GUI_ALLOC_AssignMemory((void*)aMemory, GUI_NUMBYTES); //为存储管理系统分配一个存储块
& && && && && & GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE); //设置存储快的平均尺寸,该区越大,可用的存储快数量越少
& && && && && & GUI_SetDefaultFont(GUI_FONT_6X8); //设置默认字体
& && &&&}else&&//使用内部RAM
& && && && && & U32 *aMemory = mymalloc(SRAMIN,GUI_NUMBYTES); //从内部RAM中分配GUI_NUMBYTES字节的内存
& && && && && & GUI_ALLOC_AssignMemory((U32 *)aMemory, GUI_NUMBYTES); //为存储管理系统分配一个存储块
& && && && && & GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE); //设置存储快的平均尺寸,该区越大,可用的存储快数量越少
& && && && && & GUI_SetDefaultFont(GUI_FONT_6X8); //设置默认字体
malloc.h代码如下:
#ifndef __MALLOC_H
#define __MALLOC_H
#include &sys.h&
#ifndef NULL
#define NULL 0
//定义两个内存池
#define SRAMIN& && && &0& && && && && & //内部内存池
#define SRAMEX& &1& && && && && & //外部内存池
#define SRAMBANK& && && &2& && &&&//定义支持的SRAM块数.& && &&&
//mem1内存参数设定.mem1完全处于内部SRAM里面.
#define MEM1_BLOCK_SIZE& && && && && && && && &32& && && && && && && && && && && && && && && && && && && && &//内存块大小为32字节
#define MEM1_MAX_SIZE& && && && && && && && &40*1024& && && && && && && && && && && && && && && && &&&//最大管理内存,默认40K
#define MEM1_ALLOC_TABLE_SIZE& && &&&MEM1_MAX_SIZE/MEM1_BLOCK_SIZE& && && &//内存表大小
//mem2内存参数设定.mem2的内存池处于外部SRAM里面
#define MEM2_BLOCK_SIZE& && && && && && && && &32& && && && && && && && && && && && && && && && && && && && &//内存块大小为32字节
#define MEM2_MAX_SIZE& && && && && && && && &960 *1024& && && && && && && && && && && && && && && && &&&//最大管理内存960K
#define MEM2_ALLOC_TABLE_SIZE& && &&&MEM2_MAX_SIZE/MEM2_BLOCK_SIZE& && && &//内存表大小
& && && && && &&&
//内存管理控制器
struct _m_mallco_dev
& && &&&void (*init)(u8);& && && && && && && && && && && && && & //初始化
& && &&&u8 (*perused)(u8);& && && && && && && && && && && && &&&//内存使用率
& && &&&u8& && && &*membase[SRAMBANK];& && && && && && && && && && &&&//内存池 管理SRAMBANK个区域的内存
& && &&&u16 *memmap[SRAMBANK];& && && && && && && && && && && &//内存管理状态表
& && &&&u8&&memrdy[SRAMBANK];& && && && && && && && && && && &//内存管理是否就绪
extern struct _m_mallco_dev mallco_& && && &//在mallco.c里面定义
void mymemset(void *s,u8 c,u32 count);& && &&&//设置内存
void mymemcpy(void *des,void *src,u32 n);//复制内存& &&&
void my_mem_init(u8 memx);& && && && && && && && && && &&&//内存管理初始化函数(外/内部调用)
u32 my_mem_malloc(u8 memx,u32 size);& && &&&//内存分配(内部调用)
u8 my_mem_free(u8 memx,u32 offset);& && && && && & //内存释放(内部调用)
u8 my_mem_perused(u8 memx);& && && && && && && && && && &&&//获得内存使用率(外/内部调用)
////////////////////////////////////////////////////////////////////////////////
//用户调用函数
void myfree(u8 memx,void *ptr);& && && && && && && && &&&//内存释放(外部调用)
void *mymalloc(u8 memx,u32 size);& && && && && && && && &//内存分配(外部调用)
void *myrealloc(u8 memx,void *ptr,u32 size);//重新分配内存(外部调用)
main.c代码如下:
#include &sys.h&
#include &delay.h&
#include &usart.h&
#include &led.h&
#include &key.h&
#include &ILI93XX.h&
#include &sram.h&
#include &malloc.h&
#include &string.h&
#include &GUI.h&
#include &GUIDemo.h&
#include &timer.h&
#include &touch.h&
int main(void)
& && &&&HAL_Init();& && && && && && && && && && && && & //初始化HAL库
& && &&&Stm32_Clock_Init(RCC_PLL_MUL9);& &//设置时钟,72M
& && &&&delay_init(72);& && && && && && && && && && & //初始化延时函数
& && &&&uart_init(115200);& && && && && && && && && && && && && && && && && && && & //初始化串口& && &&&
& && &&&LED_Init();& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && &//初始化LED& && &&&
& && &&&KEY_Init();& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && &//初始化按键
& && &&&TFTLCD_Init();& && && && && && && && && && && && && && && && && &//初始化LCD FSMC接口
& && &&&SRAM_Init();& && && && && && && && && && && && && && && && && && && && && && && && && && && && && & //初始化外部SRAM
&&TIM3_Init(999,71);& && && && && && && && && && && &&&//1KHZ 定时器3设置为1ms
&&TIM6_Init(999,719);& && && && && && && && && && && &&&//触摸屏扫描速度,100HZ,10ms中断
& && && && && &
& && &&&my_mem_init(SRAMIN);& && && && && && && && && && && && && && && && && && &&&//初始化内部内存池
& && &&&my_mem_init(SRAMEX);& && && && && && && && && && && && && && && && && && &&&//初始化外部内存池
& && &&&TP_Init();& && && && && && && && && && && && && && && && && && && && && && && && &//触摸屏初始化
& && &&&__HAL_RCC_CRC_CLK_ENABLE();& && && && && && && && && && &&&//使能CRC时钟,否则STemWin不能使用
& && &&&WM_SetCreateFlags(WM_CF_MEMDEV);& && &&&//使用存储设备
& && &&&GUI_Init();& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && &//EMWIN初始化& && &&&
& && &&&GUIDEMO_Main();
& && &&&while(1);
实在无解了,请高手们帮帮忙!!!!!
Snap1.jpg (69.13 KB, 下载次数: 0)
6&天前 上传
Snap2.jpg (34.56 KB, 下载次数: 0)
6&天前 上传
Snap3.jpg (77.2 KB, 下载次数: 0)
6&天前 上传
(67.09 KB, 下载次数: 0)
5&天前 上传
主题帖子精华
初级会员, 积分 77, 距离下一级还需 123 积分
在线时间19 小时
发表于 5&天前
还请出手帮帮忙!
主题帖子精华
初级会员, 积分 77, 距离下一级还需 123 积分
在线时间19 小时
发表于 5&天前
问题还没有解决
Powered by查看: 448|回复: 5
rt thread 移植到战舰开发板,非nano版本,使用最新源码
主题帖子精华
金牌会员, 积分 1184, 距离下一级还需 1816 积分
在线时间422 小时
哎,说来惭愧,今天一整天就干了一件事情,移植rt thread到战舰开发板(注意,非nano版本)。
首先给出rt thread 3.0版本的源码链接,(不知道为什么,我从git上下载的源文件无法解压),这里要“严重”感谢八度大神。
移植的过程:
&1&添加文件。
001.png (21.02 KB, 下载次数: 0)
18:17 上传
&2&添加路径。
002.png (10.29 KB, 下载次数: 0)
18:18 上传
&3&stm32f10x_it.c文件注释掉HardFault中断,PendSV中断和Systick中断。
&4&打开宏#define RT_USING_USER_MAIN(在进入main()之前需要先初始化相关硬件,内核等)。
004.png (7.09 KB, 下载次数: 0)
18:18 上传
&5&在rtthread_startup()中调用rt_system_heap_init()初始化堆内存(因为在进入main之前需要创建系统任务,而系统任务是使用rt_thread_create()来创建的,也就是使用动态内存)。
005.png (22.92 KB, 下载次数: 0)
18:18 上传
对于上述第5点:
&1&按照我这种处理方式,不需要修改启动文件,原子的rtt nano版本教程需要将启动文件的heap size设置为0。
&2&因为是定义为数组,所以在编译期间这块内存就已经分配了,不会被其它数据抢占内存。
&3&我觉得rtt作者不会想不到需要初始化堆内存,所以我严重怀疑这里似乎“另有隐情”。
如果有了解的朋友,还请指教下,非常谢谢。
最后,给出我移植好的整个工程,只做了2个线程,实现2个led交替闪烁。如果有不足之处,还请大家帮忙指教,感谢大家。
密码:zmve
电子爱好者
主题帖子精华
金牌会员, 积分 1821, 距离下一级还需 1179 积分
在线时间777 小时
将启动文件的heap size设置为0
不做应该也可以,只是nano里面基本不用内存管理,不设为0就是浪费资源。
RT-Thread有自己的内存管理,要用也不用启动代码里面配置的。
同时也可以把libc中默认的malloc指向rt_malloc
如果直接使用libc中的malloc,就是启动文件中设置的那个空间。
但最好做好加锁,不然就确保不会在多个任务中使用。
没有使用RTOS的,请不要在中断里面申请内存(有RTOS的情况下,也不要)。
主题帖子精华
金牌会员, 积分 1184, 距离下一级还需 1816 积分
在线时间422 小时
本帖最后由 liuchang 于
22:09 编辑
不做应该也可以,只是nano里面基本不用内存管理,不设为0就是浪费资源。
RT-Thread有自己的内存管理, ...
的确如大神所言,一般rtos都要求不能在中断中申请动态内存的,rtt也不例外。
我觉得这其中主要有2个原因:
&1&如果是采用链式结构的内存分配算法,如rtt的小内存分配算法,它的时间复杂度是O(n),这个时间是不固定的,违背了rtos的“实时”原则,也同时违背了中断时间尽可能短的原则。
&2&中断可以看作是优先级很高的线程,这里就很容易产生临界资源的问题。所以rtt在分配内存资源时都是采用信号量来进行临界区保护,而在中断中的函数是一定不能是阻塞函数。
电子爱好者
主题帖子精华
在线时间319 小时
牛逼了,我还没弄完了,你这么快就移植好了,666
主题帖子精华
金牌会员, 积分 1184, 距离下一级还需 1816 积分
在线时间422 小时
牛逼了,我还没弄完了,你这么快就移植好了,666
请教下八度大神:
rtt会出类似freertos的教程和书籍嘛?
因为感觉rtt相对其它rtos会比较“有趣”(包括它的code style,bsp,finsh shell组件等)。
同时,其中又包含文件系统,lwip,gui等,对我来说,难度不小。
期待原子团队的大作......到时候一定支持下......
电子爱好者
主题帖子精华
在线时间319 小时
请教下八度大神:
rtt会出类似freertos的教程和书籍嘛?
你也可以自己弄一个放上来,大家一起来完善,哈哈
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
Powered by}

我要回帖

更多关于 正点原子f4移植视频 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信