stm32 移植uip

发布者:心满意足最新更新时间:2016-08-22 来源: eefocus关键字:stm32  移植uip 手机看文章 扫描二维码
随时随地手机看文章

1 stm32 定义常量不要code  关键字

// 定义全1 地址常量

static const uip_ipaddr_t code all_ones_addr =

#if UIP_CONF_IPV6

  {0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff};

#else /* UIP_CONF_IPV6 */

  {0xffff,0xffff};

#endif /* UIP_CONF_IPV6 */

 

//定义全0地址常量

static const uip_ipaddr_t code all_zeroes_addr =

#if UIP_CONF_IPV6

  {0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};

#else /* UIP_CONF_IPV6 */

  {0x0000,0x0000};

#endif /* UIP_CONF_IPV6 */

 

2 为两个回调函数定义函数实体

#define UIP_APPCALL() uip_appcall()  //宏定义注册回调函数

#define UIP_UDP_APPCALL() uip_udp_appcall() //宏定义注册回调函数

 

void uip_appcall(void) 

{

}

void uip_udp_appcall(void)

{

}

 

3 MDK环境下 空指令函数修改

并且不要#include

//_nop_();

__nop();//在MDK环境下是__nop();

 

4 为uip 提供周期时钟 

 

5 修改大小端配置 

51 是大端,stm32 是小端 

#define UIP_CONF_BYTE_ORDER     UIP_LITTLE_ENDIAN //51是大端,stm32是小端

在uip_conf.h 文件中 

6 修改类型定义 

typedef unsigned short     int u16_t;//和C51有点差别 也是在uip_conf.h 文件中  

 

7 初始化TCP/IP 通信 必须用到的参数 

uip 在运行过程中不会再去查询网卡的mac 地址,

所以开始就要初始化mac地址

uip_ipaddr(uip_hostaddr, 192,168,1,198); 

uip_ipaddr(uip_draddr, 192,168,1,100);

uip_ipaddr(uip_netmask,255,255,255,0 ); 

uip_ethaddr.addr[0]=0x00;

uip_ethaddr.addr[1]=0x0C;

uip_ethaddr.addr[2]=0x29;

uip_ethaddr.addr[3]=0xD2;

uip_ethaddr.addr[4]=0x58;

uip_ethaddr.addr[5]=0x6B;

关键字:stm32  移植uip 引用地址:stm32 移植uip

上一篇:stm32 大容量芯片烧录出错
下一篇:stm32 系统嘀嗒(SysTick) 定时器

推荐阅读最新更新时间:2024-03-16 15:06

printf重定向到stm32串口
一、什么是重定向 在程序的调试过程中,除了那些高大上的调试手段外,printf无疑是我们最熟悉最顺手的调试方法。通过使用printf,我们可以很方便很直观的获取当前程序的运行状态。 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。但是在单片机开发中,一般情况下并不存在标准输出设备,因此我们需要将printf的输出信息重定向,也就是输出到其他输出设备中去。 二、在stm32平台上实现重定向的方式有两种,重定向至UART,或者通过JTAG的SW模式将printf重定向至SWO引脚输出。 首先介绍第一种,重定向至UART,这种方式我们比较熟悉,ST官方提供的固件库中也是使用的这种方法。 代码如下:在对U
[单片机]
STM32学前班教程之一:为什么选择STM32
为什么是它 我选择STM32的原因。 --------首先声明一下:该教程由思蜕盟论坛原创,本人一是为了自己学习,自我感觉此对stm32入门很有帮助,二是为了给更多的初学者带来方便,所以决定转载。转载中纠正其中的部分错误,尽量加入最新的信息,并增加本人的部分见解和学习的感受,希望对阅读者带来点点阅读价值!真诚欢迎读者提出疑问,而后共同交流,共同进步! 我对未来的规划是以功能性为主的,在功能和面积之间做以平衡是我的首要选择,而把运算放在第二位,这根我的专业有关系。里面的运算其实并不复杂,在入门阶段想尽量减少所接触的东西。 不过说实话,对DSP的外设并和开发环境不满意,这是为什么STM32一出就转向的原因。下面是我自己做过的两
[单片机]
STM32双堆栈及其在uC/OS-II中的使用
说明:里面可能有不少错误的观念,希望大家发现后及时的纠正。 首先了解一下双堆栈的知识,下面的图片来自《Cortex-M3权威指南》,有点枯燥,但还是要看的。 总结: 1.系统复位后默认使用的是MSP,复位后的状态是特权级线程状态,在这个状态下是允许修改寄存器 CONTROL (见上面的图片)的。进入到用户特权以后就不能修改这些寄存器了。 2.用户特权的情况(也就是用户建立的非中断服务程序)下可以使用MSP或PSP,特权模式(中断服务程序)只能使用MSP。 3.还有很重要的一条就是.假如在用户模式下使用的是PSP,那么寄存器的数值被保存到任务堆
[单片机]
<font color='red'>STM32</font>双堆栈及其在uC/OS-II中的使用
基于STM32的元器件特性测试仪过程
元器件特性测试仪任务要求 通过编程完成对5种以上元器件特性的测量 能够自动识别元器件 在OLED屏幕上通过图形化的界面显示各种元器件的符号及测量得到的信息 实验环境 硬件:STM32G031G8U6核心板、硬禾学堂制作的底板 软件:STM32CubeMX、CLion、STM32CubeProgrammer 实现思路 首先进行一个大致的元器件类型的判断,再精确地测量元器件的各项属性,最后显示在OLED屏幕上 各部分的介绍元器件类型的判断 思路:首先给元器件放电,再轮番给这3pin中的每2pin进行正反地通电,会得到六次结果。将每2pin的结果存储下来,进行排序后根据元器件特性进行判断元器件的类型,初步判断后存下引脚信息并进行参数
[单片机]
基于<font color='red'>STM32</font>的元器件特性测试仪过程
STM32与Flash AT45DB321D之间读写数据
Flash这种芯片调试,首先必须要读出他的ID来,才能进行读写操作。 AT45DB321D 8192pages(512/528Bytes/Pages)大约4M左右,与单片机之间SPI通信。 大体流程就是先配置好spi,读出芯片ID,往flash里面写一个数据然后再把它读出来,可以通过串口把写入的数据打印出来。写入的过程就是先将数据写入到缓冲器(1或2),在从缓冲器写到指定页的指定地址(具体页地址和字节地址看芯片手册),读的过程也是一样,时序图都在芯片手册有。在这只放一段读ID的程序,详细代码参考的由振南修改的SPI_FLASH,放在我的Github里面。~~~Github~~~ #define Dummy_Byte
[单片机]
<font color='red'>STM32</font>与Flash AT45DB321D之间读写数据
【32位MCU】9G-STM32 简易BOOT及XMODEM串口IAP移植过程简介
9G-STM32 简易BOOT及XMODEM串口IAP移植过程简介 一,准备EWARM + AN2557软件包 1,在http://www.mcu123.com/news/Soft/embsof/arm/201001/514.html 上 下载 IAR Embedded Workbench for ARM version 5.41 (2010.1.5更新) 软件 CD-EWARM-5411-1760_mcu123.zip http://esoft.mcu123.com/MCU123_temp_20100103@/ARM/CD-EWARM-5411-1760_mcu123.zip 相关文件 IAR_EWARM5.4和谐文
[单片机]
STM32学习笔记:【002】BIN文件通过ST-LINK烧录STM32芯片
以下提供2种下载方式 KEIL编译下载 KEIL 5 在开发中还算是比较强大的一种平台。在开发中通过编译再下载会显得很方便。 尽管这个是老生常谈的问题,但还是在这里补全这个设置步骤 1.点击“魔法棒” 2.Debug 设置 ST官方下载方式 有时候,我们通过各种途径得到了一个bin或者hex文件(比如使用了 embed在线编译器 生成bin文件),那么我们应该怎么样把它烧录到板子中呢? 下面介绍由ST官方下载器烧录bin或者hex到开发板的过程 烧录文件:BIN、或者HEX文件 烧录方式:ST-LINK 烧录芯片:STM32F429I 烧录准备: 1.开发板自带的一根USB线 2.官方烧录软件: STM32
[单片机]
<font color='red'>STM32</font>学习笔记:【002】BIN文件通过ST-LINK烧录<font color='red'>STM32</font>芯片
STM32 SysTick定时器讲解
STM32 SysTick定时器讲解 本文将介绍SysTick定时器、其工作原理与寄存器、及对应的应用实例 SysTick定时器简介 首先、我们先解释下定时器,“定时器”:能够定时、计数的器件 SysTick称为系统滴答定时器,它位于Cortex 内核中是一个定时器,可以对输入的时钟进行计数、若输入的时钟具有周期性的变化,则计数也相当于计时。 系统滴答定时器一般用于操作系统,为操作系统提供时基、维持操作系统的心跳; 系统滴答定时器每过一段时间会产生一个中断,根据这个特性、操作系统就可以实现时间片的任务调度。 工作原理分析 从上述两张图我们可以看出: 系统滴答定时器的时钟源是从SYSCLK处经过分频得到的,另外它处于内核中
[单片机]
<font color='red'>STM32</font> SysTick定时器讲解
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved