实例介绍
1. 关于使用外设库和芯片选择 需定义USE_STDPERIPH_DRIVER和STM32F40_41xxx 具体在stm32f4xx.h定义或者Target Options里配置 2. 关于时钟配置 本工程外部晶振使用8M 因此需要修改外部晶振以及PLL相关的宏定义 stm32f4xx.h里配置 #define HSE_VALUE ((uint32_t)8000000) system_stm32f4xx.c里配置 #define PLL_M 8 3. 移植UCOSIII 第一步, 添加ucosiii文件 添加cpu,lib,core,port: Micrium_STM3240G-EVAL_OS3\Micrium\Software 添加ucos_config: Micrium_STM3240G-EVAL_OS3\Micrium\Examples\ST\STM3240G-EVAL\OS3 最后添加os_cpu_bsp.c和os_cpu_bsp.h,自己修改的,实现了SYSTick以及TMR的相关接口,这样可以免除添加官方bsp那些乱七八糟的东西 第二步, 修改部分文件 startup_stm32f40xx.s 如果需要增加FPU的支持,则还要对port里的三个文件进行修改 os_cpu.h os_cpu_c.c os_cpu_a.asm 3. 移植lwip,有RTOS,在无RTOS的版本上作修改 最主要就是sys_arch里实现邮箱,信号量,任务等接口 LwIP_Init里要修改: tcpip_init( NULL, NULL ); netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, &tcpip_input); lwipopts.h修改相应参数 最后创建NET接收任务和NET应用任务
【实例截图】
【核心代码】
16359647265140882944.zip
└── f407_ucos3_lwip_os
├── Clean.bat
├── MDK
│ ├── Project.uvopt
│ └── Project.uvproj
├── Output
│ └── Listing
└── Source
├── CMSIS
│ ├── startup_stm32f40xx.s
│ ├── stm32f4xx.h
│ ├── system_stm32f4xx.c
│ └── system_stm32f4xx.h
├── ETH
│ ├── DM8603.H
│ ├── eth_driver.c
│ ├── eth_driver.h
│ ├── stm32f4x7_eth_conf.h
│ ├── stm32f4x7_eth.h
│ └── user_stm32f4x7_eth.c
├── FWlib
│ ├── inc
│ │ ├── misc.h
│ │ ├── stm32f4xx_adc.h
│ │ ├── stm32f4xx_can.h
│ │ ├── stm32f4xx_cec.h
│ │ ├── stm32f4xx_crc.h
│ │ ├── stm32f4xx_cryp.h
│ │ ├── stm32f4xx_dac.h
│ │ ├── stm32f4xx_dbgmcu.h
│ │ ├── stm32f4xx_dcmi.h
│ │ ├── stm32f4xx_dfsdm.h
│ │ ├── stm32f4xx_dma2d.h
│ │ ├── stm32f4xx_dma.h
│ │ ├── stm32f4xx_dsi.h
│ │ ├── stm32f4xx_exti.h
│ │ ├── stm32f4xx_flash.h
│ │ ├── stm32f4xx_flash_ramfunc.h
│ │ ├── stm32f4xx_fmc.h
│ │ ├── stm32f4xx_fmpi2c.h
│ │ ├── stm32f4xx_fsmc.h
│ │ ├── stm32f4xx_gpio.h
│ │ ├── stm32f4xx_hash.h
│ │ ├── stm32f4xx_i2c.h
│ │ ├── stm32f4xx_iwdg.h
│ │ ├── stm32f4xx_lptim.h
│ │ ├── stm32f4xx_ltdc.h
│ │ ├── stm32f4xx_pwr.h
│ │ ├── stm32f4xx_qspi.h
│ │ ├── stm32f4xx_rcc.h
│ │ ├── stm32f4xx_rng.h
│ │ ├── stm32f4xx_rtc.h
│ │ ├── stm32f4xx_sai.h
│ │ ├── stm32f4xx_sdio.h
│ │ ├── stm32f4xx_spdifrx.h
│ │ ├── stm32f4xx_spi.h
│ │ ├── stm32f4xx_syscfg.h
│ │ ├── stm32f4xx_tim.h
│ │ ├── stm32f4xx_usart.h
│ │ └── stm32f4xx_wwdg.h
│ └── src
│ ├── misc.c
│ ├── stm32f4xx_adc.c
│ ├── stm32f4xx_can.c
│ ├── stm32f4xx_cec.c
│ ├── stm32f4xx_crc.c
│ ├── stm32f4xx_cryp_aes.c
│ ├── stm32f4xx_cryp.c
│ ├── stm32f4xx_cryp_des.c
│ ├── stm32f4xx_cryp_tdes.c
│ ├── stm32f4xx_dac.c
│ ├── stm32f4xx_dbgmcu.c
│ ├── stm32f4xx_dcmi.c
│ ├── stm32f4xx_dfsdm.c
│ ├── stm32f4xx_dma2d.c
│ ├── stm32f4xx_dma.c
│ ├── stm32f4xx_dsi.c
│ ├── stm32f4xx_exti.c
│ ├── stm32f4xx_flash.c
│ ├── stm32f4xx_flash_ramfunc.c
│ ├── stm32f4xx_fmc.c
│ ├── stm32f4xx_fmpi2c.c
│ ├── stm32f4xx_fsmc.c
│ ├── stm32f4xx_gpio.c
│ ├── stm32f4xx_hash.c
│ ├── stm32f4xx_hash_md5.c
│ ├── stm32f4xx_hash_sha1.c
│ ├── stm32f4xx_i2c.c
│ ├── stm32f4xx_iwdg.c
│ ├── stm32f4xx_lptim.c
│ ├── stm32f4xx_ltdc.c
│ ├── stm32f4xx_pwr.c
│ ├── stm32f4xx_qspi.c
│ ├── stm32f4xx_rcc.c
│ ├── stm32f4xx_rng.c
│ ├── stm32f4xx_rtc.c
│ ├── stm32f4xx_sai.c
│ ├── stm32f4xx_sdio.c
│ ├── stm32f4xx_spdifrx.c
│ ├── stm32f4xx_spi.c
│ ├── stm32f4xx_syscfg.c
│ ├── stm32f4xx_tim.c
│ ├── stm32f4xx_usart.c
│ └── stm32f4xx_wwdg.c
├── led.c
├── led.h
├── LwIP
│ ├── port
│ │ ├── arch
│ │ │ ├── bpstruct.h
│ │ │ ├── cc.h
│ │ │ ├── cpu.h
│ │ │ ├── epstruct.h
│ │ │ ├── init.h
│ │ │ ├── lib.h
│ │ │ ├── perf.h
│ │ │ └── sys_arch.h
│ │ ├── Standalone
│ │ │ ├── ethernetif.c
│ │ │ └── ethernetif.h
│ │ └── sys_arch_ucos3.c
│ └── src
│ ├── api
│ │ ├── api_lib.c
│ │ ├── api_msg.c
│ │ ├── err.c
│ │ ├── netbuf.c
│ │ ├── netdb.c
│ │ ├── netifapi.c
│ │ ├── sockets.c
│ │ └── tcpip.c
│ ├── core
│ │ ├── def.c
│ │ ├── dhcp.c
│ │ ├── dns.c
│ │ ├── init.c
│ │ ├── ipv4
│ │ │ ├── autoip.c
│ │ │ ├── icmp.c
│ │ │ ├── igmp.c
│ │ │ ├── inet.c
│ │ │ ├── inet_chksum.c
│ │ │ ├── ip_addr.c
│ │ │ ├── ip.c
│ │ │ └── ip_frag.c
│ │ ├── ipv6
│ │ │ ├── icmp6.c
│ │ │ ├── inet6.c
│ │ │ ├── ip6_addr.c
│ │ │ ├── ip6.c
│ │ │ └── README
│ │ ├── mem.c
│ │ ├── memp.c
│ │ ├── netif.c
│ │ ├── pbuf.c
│ │ ├── raw.c
│ │ ├── snmp
│ │ │ ├── asn1_dec.c
│ │ │ ├── asn1_enc.c
│ │ │ ├── mib2.c
│ │ │ ├── mib_structs.c
│ │ │ ├── msg_in.c
│ │ │ └── msg_out.c
│ │ ├── stats.c
│ │ ├── sys.c
│ │ ├── tcp.c
│ │ ├── tcp_in.c
│ │ ├── tcp_out.c
│ │ ├── timers.c
│ │ └── udp.c
│ ├── FILES
│ ├── include
│ │ ├── ipv4
│ │ │ └── lwip
│ │ │ ├── autoip.h
│ │ │ ├── icmp.h
│ │ │ ├── igmp.h
│ │ │ ├── inet_chksum.h
│ │ │ ├── inet.h
│ │ │ ├── ip_addr.h
│ │ │ ├── ip_frag.h
│ │ │ └── ip.h
│ │ ├── ipv6
│ │ │ └── lwip
│ │ │ ├── icmp.h
│ │ │ ├── inet.h
│ │ │ ├── ip_addr.h
│ │ │ └── ip.h
│ │ ├── lwip
│ │ │ ├── api.h
│ │ │ ├── api_msg.h
│ │ │ ├── arch.h
│ │ │ ├── debug.h
│ │ │ ├── def.h
│ │ │ ├── dhcp.h
│ │ │ ├── dns.h
│ │ │ ├── err.h
│ │ │ ├── init.h
│ │ │ ├── mem.h
│ │ │ ├── memp.h
│ │ │ ├── memp_std.h
│ │ │ ├── netbuf.h
│ │ │ ├── netdb.h
│ │ │ ├── netifapi.h
│ │ │ ├── netif.h
│ │ │ ├── opt.h
│ │ │ ├── pbuf.h
│ │ │ ├── raw.h
│ │ │ ├── sio.h
│ │ │ ├── snmp_asn1.h
│ │ │ ├── snmp.h
│ │ │ ├── snmp_msg.h
│ │ │ ├── snmp_structs.h
│ │ │ ├── sockets.h
│ │ │ ├── stats.h
│ │ │ ├── sys.h
│ │ │ ├── tcp.h
│ │ │ ├── tcp_impl.h
│ │ │ ├── tcpip.h
│ │ │ ├── timers.h
│ │ │ └── udp.h
│ │ ├── netif
│ │ │ ├── etharp.h
│ │ │ ├── ppp_oe.h
│ │ │ └── slipif.h
│ │ └── posix
│ │ ├── netdb.h
│ │ └── sys
│ │ └── socket.h
│ └── netif
│ ├── etharp.c
│ ├── ethernetif.c
│ ├── FILES
│ ├── ppp
│ │ ├── auth.c
│ │ ├── auth.h
│ │ ├── chap.c
│ │ ├── chap.h
│ │ ├── chpms.c
│ │ ├── chpms.h
│ │ ├── fsm.c
│ │ ├── fsm.h
│ │ ├── ipcp.c
│ │ ├── ipcp.h
│ │ ├── lcp.c
│ │ ├── lcp.h
│ │ ├── magic.c
│ │ ├── magic.h
│ │ ├── md5.c
│ │ ├── md5.h
│ │ ├── pap.c
│ │ ├── pap.h
│ │ ├── ppp.c
│ │ ├── pppdebug.h
│ │ ├── ppp.h
│ │ ├── ppp_impl.h
│ │ ├── ppp_oe.c
│ │ ├── randm.c
│ │ ├── randm.h
│ │ ├── vj.c
│ │ └── vj.h
│ └── slipif.c
├── main.c
├── NET
│ ├── lwipopts.h
│ ├── netconf.c
│ ├── netconf.h
│ ├── net_config.h
│ ├── tcpecho.c
│ └── udpecho.c
├── readme.txt
├── stm32f4xx_conf.h
├── stm32f4xx_it.c
├── stm32f4xx_it.h
└── UCOSIII
├── bsp
│ ├── os_cpu_bsp.c
│ └── os_cpu_bsp.h
├── config
│ ├── app_cfg.h
│ ├── cpu_cfg.h
│ ├── lib_cfg.h
│ ├── os_app_hooks.c
│ ├── os_app_hooks.h
│ ├── os_cfg_app.h
│ └── os_cfg.h
├── uC-CPU
│ ├── cpu_a.asm
│ ├── cpu_c.c
│ ├── cpu_core.c
│ ├── cpu_core.h
│ ├── cpu_def.h
│ └── cpu.h
├── uC-LIB
│ ├── lib_ascii.c
│ ├── lib_ascii.h
│ ├── lib_def.h
│ ├── lib_math.c
│ ├── lib_math.h
│ ├── lib_mem_a.asm
│ ├── lib_mem.c
│ ├── lib_mem.h
│ ├── lib_str.c
│ └── lib_str.h
└── uCOS-III
├── Ports
│ ├── os_cpu_a.asm
│ ├── os_cpu_a_.asm
│ ├── os_cpu_c.c
│ ├── os_cpu_c_.c
│ ├── os_cpu.h
│ └── os_cpu_.h
└── Source
├── os_cfg_app.c
├── os_core.c
├── os_dbg.c
├── os_flag.c
├── os.h
├── os_int.c
├── os_mem.c
├── os_msg.c
├── os_mutex.c
├── os_pend_multi.c
├── os_prio.c
├── os_q.c
├── os_sem.c
├── os_stat.c
├── os_task.c
├── os_tick.c
├── os_time.c
├── os_tmr.c
├── os_type.h
└── os_var.c
40 directories, 293 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论