Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
第一次编译出错 ?
发布于 2011-01-10 18:42:05 浏览:9578
订阅该版
第一次编译RT出现头文件找不到问题,但头文件明明在那里的。。。 原码: RT-Thread 3.0.1 方式:Linux gcc 编译 步骤: 1. 在http://www.codesourcery.com/sgpp/lite/arm/portal/release1592上面下载的基于Linux的tar包,解压到/opt目录,然后设置PATH,路径不存在问题 2. 获取RT-Thread 3.0.1后进入到bsp/mini2440下 编辑 rtconfig.py,指定使用gcc: ```CROSS_TOOL = 'gcc' if CROSS_TOOL == 'gcc': PLATFORM = 'gcc' EXEC_PATH = '/opt/arm-2010.09/bin'``` 3. 执行scons编译,经过一段长长的log后出现错误: arm-none-eabi-gcc -o key.o -c -mcpu=arm920t -DRT_USING_MINILIBC -nostdinc -nostdlib -fno-builtin -O0 -gdwarf-2 -D FINSH_USING_SYMTAB -DFINSH_USING_DESCRIPTION -I. -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/include _**-I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/libcpu/arm/s3c24x0**_ -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/libc/minilibc -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/finsh -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/filesystem/dfs -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/filesystem/dfs/include -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/net/lwip/src -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/net/lwip/src/include -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/net/lwip/src/include/ipv4 -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/net/lwip/src/arch/include -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/net/lwip/src/include/netif -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/net/lwip/src/netif/ppp -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/rtgui/include -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/rgtui/common -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/rtgui/server -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/rtgui/widgets -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/filesystem/dfs -I/home/zwang/work_dir/rtos_stm32/RT-Thread-0.3.1/filesystem/dfs/include key.c key.c:2:21: fatal error: S3C24x0.h: No such file or directory 4. 通过搜索 ```$ find ../../* -iname "S3C24x0.h" ../../libcpu/arm/s3c24x0/s3c24x0.h``` 发现该头文件是存在的,而且上面的编译log中(下划线部分)已经将该路径包含在CFLAGS之中了,所以问题到底出现在哪里 ? 补充俩问题: 1. 本来是想编译bsp/stm3210的,但里面的目录很多,也查了文档,说需要将某一个目录(如project_full/)下的东西拷贝到bsp/stm3210下进行编译即可,请问是这样吗? 2. 在bsp下完成编译之后,最终的生成文件是什么? 在什么地方? 如uclinux编译完后会生成个文件系统和内核Image,RT会以什么形式存在呢? 完全新手,请多包含。。。
查看更多
11
个回答
默认排序
按发布时间排序
bernard
2011-01-10
这家伙很懒,什么也没写!
那个是文件大小写的问题,把S3C2440.h更改为小写名称即可。 [s:166] 没想到0.3.1中居然还存在这个问题 编译完成后会是elf文件,后缀名被更改为.axf了,应该也会有bin文件产生,在相应的bsp目录下。
wzc0066
2011-01-10
这家伙很懒,什么也没写!
汗,咋就没看出是大小写的问题。。。 编译后有2.1M,是不是大了些! ``` $ ls rtthread* -lh -rwxr-xr-x 1 zwang zwang 979K 2011-01-10 19:30 rtthread.bin -rwxr-xr-x 1 zwang zwang 2.1M 2011-01-10 19:30 rtthread-mini2440.axf $ ls build/ examples filesystem finsh libcpu minilibc net rtgui src $ du -sh build/ 3.4M build/ ``` 请问能跑的最小的rt系统应该必须包括哪些? 比如上面的build目录下,那些不是必须的呢? 另,看到其它的帖子介绍模拟运行的时候,需要单独下载qemu-system-arm进行编译; bsp目录下的那个qemu是什么目录? 可以用来模拟吗? 有没有qemu for stm3210的下载包呢 ?
shaolin
2011-01-11
这家伙很懒,什么也没写!
>汗,咋就没看出是大小写的问题。。。 > >编译后有2.1M,是不是大了些! > > >``` >$ ls rtthread* -lh >-rwxr-xr-x 1 zwang zwang 979K 2011-01-10 19:30 rtthread.bin >-rwxr-xr-x 1 zwang zwang 2.1M 2011-01-10 19:30 rtthread-mini2440.axf > >$ ls build/ >examples filesystem finsh libcpu minilibc net rtgui src > >$ du -sh build/ >3.4M build/ >``` > > >请问能跑的最小的rt系统应该必须包括哪些? 比如上面的build目录下,那些不是必须的呢? > > >另,看到其它的帖子介绍模拟运行的时候,需要单独下载qemu-system-arm进行编译; >bsp目录下的那个qemu是什么目录? 可以用来模拟吗? >有没有qemu for stm3210的下载包呢 ? --- -最小系统只需要src, libcpu, bsp就行了,仅运行RT-Thread内核,编译后大小在几K左右。 -bsp目录下的qemu是X86处理器的移植。可以在qemu for x86上运行。 -没有qemu for stm3210
bernard
2011-01-11
这家伙很懒,什么也没写!
你应该看那个bin文件的尺寸,axf文件是包括了调试信息的。 mini2440为了方便,把完整的中文字库都包括在里面,大概有个500k
wzc0066
2011-01-11
这家伙很懒,什么也没写!
>你应该看那个bin文件的尺寸,axf文件是包括了调试信息的。 --- 通过qemu模拟,好像指定kernel为.bin的时候不工作,所以最后真正加载到板子的应该还是.axf吧,那么编译最后一步生成的.bin文件到底有什么用? 通过参照另一篇帖子已经运行起来了RTOS,但有些参数不是太明白 (原文命令如下): ``` $ ./qemu-system-arm -M mini2440 $* -kernel ../bsp/mini2440/rtthread-mini2440.axf -show-cursor -sd SDCARD -serial telnet:127.0.0.1:1200,server -serial file:virtualkbd ``` -M --- machine name, 字符串"mini2440"是不是应该跟bsp目录下的名称一致? 后面的 "$*" 是什么意思? (不要"$*"也能正常执行起来 ) -sd --- 参考帖子里面好像存在文件 tools/SDCARD.zip ,我这边没有,所以没要这个参数,但也能执行,就是出现了一堆重复的错误log: ``` ... CMD55:SDICSTA=0xc37, SDIRSP0=0x0 CMD55 error ... ``` 这些log应该是由于没有指定sd输出的吧? SDCARD.zip是个什么包, 文件系统吗 ? 该如何生成 ? -serial file:virtualkbd 是什么意思?前面不是已经重定向一个串口设备了吗? (移除该行好像也能正常启动的) 关于文件系统的疑问: 1) 通过原码目录看到RT当前可支持elmfat文件系统(yaffs2目录是空的,v0.3.1),该文件系统最后只能跑在SD卡或是SPI flash上是吗(手册上的图示) ? 2) 由此来看我上面模拟运行仅是kernel,并没有文件系统对吧 ? 3) 那么那个图形demo程序属于运行在内核空间还是用户空间呢 ? (或者是跟“finsh”一样都跟kernel和filesystem属于并列级别的 ?) 4) demo启动后看到finsh>>了,那么假如还有文件系统,文件系统里面应该不会再有shell程序了吧 ? 问题比较多,请多指点,多谢。
panxiaoku
2011-01-11
这家伙很懒,什么也没写!
我灌个水哈。。。LZ是mucos的王董吧。。。
bernard
2011-01-11
这家伙很懒,什么也没写!
QEMU相关的还是等shaolin来解释吧。 其他的, >> 1) 通过原码目录看到RT当前可支持elmfat文件系统(yaffs2目录是空的,v0.3.1),该文件系统最后只能跑在SD卡或是SPI flash上是吗(手册上的图示) ? yaffs2文件系统目前还未支持,在做uffs的移植,它能够支持nand flash。 >> 2) 由此来看我上面模拟运行仅是kernel,并没有文件系统对吧 ? 文件系统与RT-Thread并不耦合,不需要文件系统,RT-Thread/GUI也能够运行起来。 >> 3) 那么那个图形demo程序属于运行在内核空间还是用户空间呢 ? (或者是跟“finsh”一样都跟kernel和filesystem属于并列级别的 ?) RT-Thread没有用户空间,只有内核。 >> 4) demo启动后看到finsh>>了,那么假如还有文件系统,文件系统里面应该不会再有shell程序了吧 ? 没有shell程序,finsh shell是和内核集成在一起的。
shaolin
2011-01-11
这家伙很懒,什么也没写!
>>通过qemu模拟,好像指定kernel为.bin的时候不工作,所以最后真正加载到板子的应该还是.axf吧,那么编译最后一步生成的.bin文件到底有什么用? [.bin文件可以直接下载到mini2440开发板上运行] >>-M --- machine name, 字符串"mini2440"是不是应该跟bsp目录下的名称一致? 后面的 "$*" 是什么意思? (不要"$*"也能正常执行起来 ) [该版本的QEMU是专门for mini2440开发板的,所以M--- machine name 只能是mini2440,其他bsp目录是不支持的.] -sd --- 参考帖子里面好像存在文件 tools/SDCARD.zip ,我这边没有,所以没要这个参数,但也能执行,就是出现了一堆重复的错误log: 代码: 全选 ... CMD55:SDICSTA=0xc37, SDIRSP0=0x0 CMD55 error ... 这些log应该是由于没有指定sd输出的吧? SDCARD.zip是个什么包, 文件系统吗 ? 该如何生成 ? [SDCARD.zip文件在RT-Thread源代码SVN中能够下载到,将它解压出来就行了.它就是一个模拟SD卡.由elmfat文件系统管理.] -serial file:virtualkbd 是什么意思?前面不是已经重定向一个串口设备了吗? (移除该行好像也能正常启动的) [主要是为了在QEMU中模拟按键操作,mini2440开发板本身不支持键盘,修改了该QEMU版本的代码,将第二个串口重定向到键盘了.这样来使该QEMU版本支持键盘]
wzc0066
2011-01-13
这家伙很懒,什么也没写!
>>> -serial file:virtualkbd 是什么意思?前面不是已经重定向一个串口设备了吗? (移除该行好像也能正常启动的) >[ 主要是为了在QEMU中模拟按键操作,mini2440开发板本身不支持键盘,修改了该QEMU版本的代码,将第二个串口重定向到键盘了.这样来使该QEMU版本支持键盘 ] --- 指定了SDCARD之后启动Log就干净多了,不过加上“-serial file:virtualkbd ”还是无法响应键盘输入,正常吗? 另: 1. 对于手册里讲的环形buffer不是很明白,可不可以再解释一下,比如下面这段: ``` /* 判断是否有足够的剩余空间 */ if (rb->read_index > rb->write_index) size = rb->read_index - rb->write_index; else size = rb->buffer_size - rb->write_index + rb->read_index; ``` read_index, write_index 分别指什么?(一直也没构建出一个环形的示意图) 2. 看到很多示例程序里面都有“#ifdef RT_USING_TC”这一段,testcase, 仅仅属于测试用的是吧?
bernard
2011-01-13
这家伙很懒,什么也没写!
>另: >1. 对于手册里讲的环形buffer不是很明白,可不可以再解释一下,比如下面这段: > > >``` >/* 判断是否有足够的剩余空间 */ >if (rb->read_index > rb->write_index) > size = rb->read_index - rb->write_index; >else > size = rb->buffer_size - rb->write_index + rb->read_index; > >``` > > >read_index, write_index 分别指什么?(一直也没构建出一个环形的示意图) > >2. 看到很多示例程序里面都有“#ifdef RT_USING_TC”这一段,testcase, 仅仅属于测试用的是吧? --- 1. write_index是往一个环形缓冲写入的偏移。每次写入时,都是从这个地方开始写入,也就是说它会随着写入而进行偏移并且“永远”指向下一个空闲的位置。(如果满了当然指示不出来) read_index则是从这个环形缓冲读出的偏移。read_index与write_index之间就是当前环形缓冲中已经保存的数据,以后添加个图说明下。 2. 请结合svn trunk的代码来看,RT_USING_TC在附录中有说明,在examples目录中使用。
撰写答案
登录
注册新账号
关注者
0
被浏览
9.6k
关于作者
wzc0066
这家伙很懒,什么也没写!
提问
14
回答
16
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
freemodbus主机在freertos的适配,参考rtthread例程
2
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
3
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
4
RT-Thread EtherKit开源以太网硬件正式发布
5
还在担心bsp不好维护吗?快使用yml管理主线bsp
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部