最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

RTT2-RTThread_STM32启动过程

来源:动视网 责编:小OO 时间:2025-10-04 00:27:56
文档

RTT2-RTThread_STM32启动过程

stm32f107:从链接脚本(bsp/stm32f107/stm32_rom.ld)中可以看到,程序的入口在Reset_Handler(),该函数位于bsp/stm32f107/Libraries/CMSIS/DeviceSupport/ST/STM32F10x/start_up/gcc-ride7/startup_stm32f10x_cl.s中,Reset_Handler()最后调用SystemInit()和C库中的main,C库中的main最终会调用main()函数。SystemInit
推荐度:
导读stm32f107:从链接脚本(bsp/stm32f107/stm32_rom.ld)中可以看到,程序的入口在Reset_Handler(),该函数位于bsp/stm32f107/Libraries/CMSIS/DeviceSupport/ST/STM32F10x/start_up/gcc-ride7/startup_stm32f10x_cl.s中,Reset_Handler()最后调用SystemInit()和C库中的main,C库中的main最终会调用main()函数。SystemInit
stm32f107:

从链接脚本(bsp/stm32f107/stm32_rom.ld)中可以看到,程序的入口在Reset_Handler(),该函数位于bsp/stm32f107/Libraries/CMSIS/DeviceSupport/ST/STM32F10x/start_up/gcc-ride7/startup_stm32f10x_cl.s中,Reset_Handler()最后调用SystemInit()和C库中的main,C库中的main最终会调用main()函数。

SystemInit()函数位于bsp/stm32f107/Libraries/CMSIS/DeviceSupport/ST/STM32F10x/system_stm32f10x.c。

main()函数位于bsp/stm32f107/startup.c。

main()函数调用同文件中的rtthread_startup()。

rtthread_startup()进行一些初始化后调用rt_system_scheduler_start()(位于src/sheduler.c)启动调度器。

 

RT-Thread/LwIP在STM32上TCP速度测试结果(ENC28J60 vs DM9000A vs STM32F107)

因为挺多人诟病RT-Thread/LwIP的速度问题,而且默认的LwIP配置中确实存在问题(所以才有,使用LwIP容易,但要想使用LwIP获得好的的速度,难!),不同的参数对应LwIP不同的体积、功能。

RT-Thread/LwIP做一个如下修改,会让TCP网络速度好一些(特别是发送速度,否则大概只有5KB/s)

在rtconfig.h中添加宏定义

/* TCP sender buffer space */

#define RT_LWIP_TCP_SND_BUF 2048

如果使用google svn版本,目前已经在lwipopts.h中默认采用2048的参数。

这么修改以后,STM32上几种以太网接口速度分别如下:(netio的TCP测试,tx对应STM32的接收,rx对应STM32的发送)

STM32F103 + ENC28J60(这个使用ICDev的ENC28J60网络模块)

NETIO - Network Throughput Benchmark, Version 1.26

(C) 1997-2005 Kai Uwe Rommel

TCP connection established.

Packet size 1k bytes: 208 KByte/s Tx, 4784 Byte/s Rx.

Packet size 2k bytes: 207 KByte/s Tx, 254 KByte/s Rx.

Packet size 4k bytes: 208 KByte/s Tx, 255 KByte/s Rx.

Packet size 8k bytes: 207 KByte/s Tx, 256 KByte/s Rx.

Packet size 16k bytes: 210 KByte/s Tx, 255 KByte/s Rx.

Packet size 32k bytes: 212 KByte/s Tx, 97 KByte/s Rx.

Done.

STM32F103 + DM9000A(这个用的STM32 Radio开发板)

NETIO - Network Throughput Benchmark, Version 1.26

(C) 1997-2005 Kai Uwe Rommel

TCP connection established.

Packet size 1k bytes: 535 KByte/s Tx, 5078 Byte/s Rx.

Packet size 2k bytes: 535 KByte/s Tx, 878 KByte/s Rx.

Packet size 4k bytes: 535 KByte/s Tx, 878 KByte/s Rx.

Packet size 8k bytes: 510 KByte/s Tx, 879 KByte/s Rx.

Packet size 16k bytes: 537 KByte/s Tx, 876 KByte/s Rx.

Packet size 32k bytes: 540 KByte/s Tx, 152 KByte/s Rx.

Done.

STM32F107

TCP connection established.

Packet size 1k bytes: 607 KByte/s Tx, 5045 Byte/s Rx.

Packet size 2k bytes: 607 KByte/s Tx, 1086 KByte/s Rx.

Packet size 4k bytes: 607 KByte/s Tx, 1087 KByte/s Rx.

Packet size 8k bytes: 608 KByte/s Tx, 1086 KByte/s Rx.

Packet size 16k bytes: 610  KByte/s Tx, 1086 KByte/s Rx.

Packet size 32k bytes: 612  KByte/s Tx, 152 KByte/s Rx.

Done.

这么看起来,STM32F107的网络速度还是比另外两个要好。当然ENC28J60也不会存在只有几k的速度。

文档

RTT2-RTThread_STM32启动过程

stm32f107:从链接脚本(bsp/stm32f107/stm32_rom.ld)中可以看到,程序的入口在Reset_Handler(),该函数位于bsp/stm32f107/Libraries/CMSIS/DeviceSupport/ST/STM32F10x/start_up/gcc-ride7/startup_stm32f10x_cl.s中,Reset_Handler()最后调用SystemInit()和C库中的main,C库中的main最终会调用main()函数。SystemInit
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top