Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DIY综合交流区
【我的ART探索之路】hzhmonkey进程贴(VCP、cat、scons)
发布于 2012-10-13 19:19:22 浏览:8868
订阅该版
大家好: 我是哈尔滨工业大学的一名学生,接触RT-Thread没多久,但深深被其吸引了。借着这次组织赠送ART的机会,有幸得以近距离接触RTT。感谢老大以及RTT团队,在此深表崇敬。 本帖将用于记录探索ART以及RTT的过程,由于能力有限,更多的可能是探索过程中遇到的问题,在此贴出,期待解答,也作为其他同学的借鉴,为RTT的发展贡献一点力量。谢谢~~ ![1.jpg](https://oss-club.rt-thread.org/uploads/5080_d4f9d95ffd4fbf72a34911feae36b14b.jpg) ![2.JPG](https://oss-club.rt-thread.org/uploads/5080_9d61a3e14aeeb23c841aecaa25171795.jpg)
查看更多
15
个回答
默认排序
按发布时间排序
hzhmonkey
2012-10-13
这家伙很懒,什么也没写!
**1、关于STM32的VCP** 之前老大表示“因为是USB虚拟串口,所以波特率可以是任意的”,那么可不可以认为STM32可以以USB的最大传输速率,也就是FS Mode的12Mbps向PC传数据? 保守计算,采用10Mbps的波特率,可以达到1MB/s,传送一帧100Byte的传感器数据需要100us,PC进行解算,那么控制系统的刷新率可以轻松达到1kHz? 之所以有这个想法,是因为以前毕业设计中飞行器姿态检测时尝试着将解算过程放在PC上,但迫于串口的速率限制,传递一帧传感器测量量的时间都远远大于解算周期,故而作罢。看到VCP,这个设想又蹦出来了,还没有实验。
hzhmonkey
2012-10-13
这家伙很懒,什么也没写!
**2、关于shell下的cat()函数打印文件偶尔出现错误** 探索过程:shell中cat函数的描述为“print file”,在ART_work-0.90hardwareART oot目录下新建“test.txt”,内容为:每行“0123456789”十个字符,重复200行。编译,烧写ART,在shell中执行“cat("test.txt")”。 探索结果:每次执行所打印出的行数不一致,并且未完全打印整个文件。打印过程中偶尔会出现错误,并且出现的位置以及内容不确定,如下图中出现了“0123456123456789”的错误结果 [attach]0[/attach] 从cat函数的实现上看应该是打印整个文件的 ``` void cat(const char* filename) { rt_uint32_t length; char buffer[81]; if (dfs_file_open(&fd, filename, DFS_O_RDONLY) < 0) { rt_kprintf("Open %s failed ", filename); return; } do { rt_memset(buffer, 0, sizeof(buffer)); length = dfs_file_read(&fd, buffer, sizeof(buffer)-1 ); if (length > 0) { rt_kprintf("%s", buffer); } }while (length > 0); dfs_file_close(&fd); } FINSH_FUNCTION_EXPORT(cat, print file) ``` 不知道问题出在哪里?
hzhmonkey
2012-10-13
这家伙很懒,什么也没写!
**3、关于rethread.bin的编译** 探索过程: 安装了Python、Scons,获取了SVN上的代码,成功用scons编译了spstm32f40x下的工程,工具为MDK,但尝试编译“ART_work-0.90hardwareARTplatform”下的工程时遇到问题。 修改了rtconfig.py中CROSS_TOOL='keil'、PLATFORM = 'armcc'、EXEC_PATH = 'C:/Keil'的内容,但执行scons命令提示 ``` ImportError: No module named building: File "D:RT-ThreadARTART_work-0.90hardwareARTplatformSConstruct", line 11: from building import * ``` 如下图: [attach]1448[/attach] 另外文件夹下的“Readme.txt”中有一句“Then please set RTT_ROOT environment to RT-Thread ROOT directory.”,这一操作应该怎么实现呢?
bernard
2012-10-13
这家伙很懒,什么也没写!
``` rt_kprintf("%s", buffer); ``` 这里的问题。
lyyyuna
2012-10-15
这家伙很懒,什么也没写!
>**3、关于rethread.bin的编译** > >探索过程: >安装了Python、Scons,获取了SVN上的代码,成功用scons编译了spstm32f40x下的工程,工具为MDK,但尝试编译“ART_work-0.90hardwareARTplatform”下的工程时遇到问题。 > >修改了rtconfig.py中CROSS_TOOL='keil'、PLATFORM = 'armcc'、EXEC_PATH = 'C:/Keil'的内容,但执行scons命令提示 > > >``` >ImportError: No module named building: > File "D:RT-ThreadARTART_work-0.90hardwareARTplatformSConstruct", line 11: > from building import * >``` > > >如下图: >[attach]0[/attach] > >另外文件夹下的“Readme.txt”中有一句“Then please set RTT_ROOT environment to RT-Thread ROOT directory.”,这一操作应该怎么实现呢? --- 要把RT-Thread1.1的源码放到ART中去。。 “set RTT_ROOT environment to RT-Thread ROOT directory”这句是自动实现的。。 不过我scons编译通不过额,有好多error..
bernard
2012-10-15
这家伙很懒,什么也没写!
报什么错误?
hzhmonkey
2012-10-15
这家伙很懒,什么也没写!
**问题3中无法编译的问题已经解决。** platform文件夹下的SConstruct文件有点问题,第8行设置RTT根目录语句改为“RTT_ROOT = os.path.normpath(os.getcwd() + '/../rt-thread')”,这样就可以进行编译了。 但使用MDK编译时出现错误,发现代码中有两处处用“inline”开头,在libarduino.c中,不太明白意思,好像是内联汇编,需要改为__inline即可。(前面是两个下划线) 另外一个问题是连接过程出现error: Undefined symbol __aeabi_atexit (referred from libc_export.o),目前还没找到原因,还请老大明示~~
grissiom
2012-10-15
这家伙很懒,什么也没写!
嗯,那个 inline 应该改成 rt_inline……
bernard
2012-10-16
这家伙很懒,什么也没写!
>**问题3中无法编译的问题已经解决。** > >platform文件夹下的SConstruct文件有点问题,第8行设置RTT根目录语句改为“RTT_ROOT = os.path.normpath(os.getcwd() + '/../rt-thread')”,这样就可以进行编译了。 > >但使用MDK编译时出现错误,发现代码中有两处处用“inline”开头,在libarduino.c中,不太明白意思,好像是内联汇编,需要改为__inline即可。(前面是两个下划线) > >另外一个问题是连接过程出现error: Undefined symbol __aeabi_atexit (referred from libc_export.o),目前还没找到原因,还请老大明示~~ --- __aeabi_atexit可以从libc_export.c中删除掉,这部分还是从github上提取出最新的代码吧
bernard
2012-10-16
这家伙很懒,什么也没写!
>``` > >rt_kprintf("%s", buffer); > >``` > > > >这里的问题。 --- 看来lz对这个问题并没有深入的看,给出答案吧: 在打印输出时,rt_kprintf存在输出限制,因为它是先格式化输出到一个buffer上,然后再输出到设备上。这个buffer在RT-Thread中称为RT_CONSOLEBUF_SIZE 这个大小在rtconfig.h中定义。所以cat的实现应该按照RT_CONSOLEBUF_SIZE分片的方式打印出来。
撰写答案
登录
注册新账号
关注者
0
被浏览
8.9k
关于作者
hzhmonkey
这家伙很懒,什么也没写!
提问
3
回答
13
被采纳
0
关注TA
发私信
相关问题
1
[项目]搞个开源的硬件项目
2
硬件计划贴,及时更新,欢迎提意见
3
软件计划贴,及时更新,欢迎提意见::WMA,MOUNT,LWIP等问题急需解决.
4
MMS协议
5
定点的wma解压库-libwma
6
QQ群记录 [20090821]
7
STM32网络收音机PCB报名征集
8
第一版调试记录
9
第二版硬件讨论
10
RADIO项目相关模块规格--欢迎大家自己做板时规格与此兼容,减少重复劳动
推荐文章
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
[E/app.filesystem] SD card mount to '/sdcard' failed!
2
单片机也能聊天?RT-Thread上跑通大语言模型
3
【RT-Thread】【ci】【scons】将ci.attachconfig.yml和scons结合使用
4
Rt-thread中OTA下载后,bootloader不搬程序
5
ulog 日志 LOG_HEX 输出时间改为本地日期时间
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
出出啊
1518
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
549
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
3
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部