OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10644|回复: 14

移植官方以太网在应用编程STM32F107_LwIP_IAP_V1.0.0到STM32F103C8+ENC28J60

[复制链接]

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2014-7-17
在线时间
6 小时
发表于 2014-8-6 23:54:38 | 显示全部楼层 |阅读模式
一直感觉通过串口更新STM32的程序太繁琐了,刚好最近在做以太网相关的事情,发现官网只有107的IAP,不得不移植一下,研究了下改了个大概,希望使用了以太网的筒子们可以用得上。
目前仅tftp升级成功了,网页升级可以打开网页,但升级不成功...
主程序地址为32KB处,需要将中断向量表重新设置,参考官方文档AN3226、AN2557
ENC28J60硬件连线:
CS_N PA4
SCK PA5
MISO PA6
MOSI PA7
INT_N PB0
BUTTON硬件连线:PA1


stm32f103_eth_iap.rar

2.94 MB, 下载次数: 3658

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-8-7 00:04:39 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2013-10-16
在线时间
0 小时
发表于 2015-4-2 13:50:29 | 显示全部楼层
两个串口,串口1和串口2分别是干什么的?
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2013-10-16
在线时间
0 小时
发表于 2015-4-2 14:41:16 | 显示全部楼层
enc28j60没有初始化
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2014-7-17
在线时间
6 小时
 楼主| 发表于 2015-5-17 21:46:24 | 显示全部楼层
回复【4楼】小悦怡然:
---------------------------------
enc28j60初始化是在:Utilities\Third_Party\lwip_v1.3.1\port\STM32\ethernetif.c,enc28j60Init
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2014-7-17
在线时间
6 小时
 楼主| 发表于 2015-5-17 21:49:10 | 显示全部楼层
回复【3楼】小悦怡然:
---------------------------------
串口1用来调试的,重定向到stdio,可以直接使用stdio的printf函数,串口2没有使用
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2015-7-1
在线时间
0 小时
发表于 2015-7-1 21:48:52 | 显示全部楼层
不错,标记一下学习
回复 支持 反对

使用道具 举报

19

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2014-9-16
在线时间
11 小时
发表于 2015-7-13 10:15:17 | 显示全部楼层
没看明白,楼主的APP是怎么存放的,你最大接收1500祯,应该默认在内部RAM里,那储存大点的APP应该不够吧,也没看见你定位在flash的程序,官方的看不懂,楼主能否解释一下,谢谢
1.怎么储存网口传过来,接收的数据的?
2.怎么储存进FLASH的?
3.中断还是查询方式接受?
回复 支持 反对

使用道具 举报

19

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2014-9-16
在线时间
11 小时
发表于 2015-7-13 14:49:46 | 显示全部楼层
楼主的main函数中:while(1)里面怎么把数据写到flash里去的,搞不懂
  while (1)
    {
      /* check if any packet received */
      ///if (ETH_GetRxPktSize()!=0)
      if (enc28j60hasRxPkt() > 0)
      { 
        /* process received eth packet */
        LwIP_Pkt_Handle();
GPIOB->ODR ^= (1<<9);
      }
      /* eriodic tasks */
      System_Periodic_Handle();
    }

我反复看了几遍,觉得应该把IAP_tftp_recv_callback()函数包含进while中才对吧,只有它是将512字节的数据包复制到flash中,但它又只出现在IAP_tftpd_init();中,被执行了一次,还是初始化时执行,我就糊涂了,
难道不应该是 if (enc28j60hasRxPkt() > 0)检测到有数据包,然后存下写进flash 中么,但   LwIP_Pkt_Handle();里面并没有这个功能啊!
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2014-7-17
在线时间
6 小时
 楼主| 发表于 2015-10-9 22:13:52 | 显示全部楼层
回复【9楼】laoguren1122:
---------------------------------
1.IAP_tftpd_init调用udp_recv(UDPpcb, IAP_tftp_recv_callback, NULL)将IAP_tftp_recv_callback注册进netif;
2.LwIP_Pkt_Handle()调用ethernetif_input(&netif)调用netif->input(p, netif)根据端口号调用netif的回调函数IAP_tftp_recv_callback
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2014-7-17
在线时间
6 小时
 楼主| 发表于 2015-10-9 22:23:17 | 显示全部楼层
回复【8楼】laoguren1122:
---------------------------------
因为只是移植一个网卡,flash的底层操作官方已经做好了,没仔细分析也没有改动;
1.接收数据在IAP_tftp_recv_callback实现;
2.接收到一部分就写入flash,不用全部接收;
3.查询方式接收,if (enc28j60hasRxPkt() > 0) 就是查询;
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-5-15
在线时间
1 小时
发表于 2018-5-18 11:52:32 | 显示全部楼层
我还有点不理解就是每次写入FLISH的开头地址没变啊,那会不会下次写的时候把上次写的擦掉?
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-5-15
在线时间
1 小时
发表于 2018-5-18 11:55:11 | 显示全部楼层
正点原子 发表于 2014-8-7 00:04
不错,谢谢分享。

原子,在你的IAP程序升级历程里给FLISHA 写程序时FLISH开头的地址没变,这样会不会在下次写的时候把上次写的擦掉?
回复 支持 反对

使用道具 举报

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-11-10
在线时间
20 小时
发表于 2018-5-18 13:26:47 | 显示全部楼层
李国富 发表于 2018-5-18 11:55
原子,在你的IAP程序升级历程里给FLISHA 写程序时FLISH开头的地址没变,这样会不会在下次写的时候把上次 ...

你好,你正在调28j60么?能帮我看一下我的帖子么?
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-5-15
在线时间
1 小时
发表于 2018-5-18 15:10:55 | 显示全部楼层
洒洒水啦 发表于 2018-5-18 13:26
你好,你正在调28j60么?能帮我看一下我的帖子么?

我正在调战舰V3的以太网升级。还没有弄出来,可以加个qq细聊。974370320
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 20:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表