当前位置: 首页 > news >正文

网络推广的工作好做吗上海企业网站优化

网络推广的工作好做吗,上海企业网站优化,上海网站制作科技公司,用钢铁侠做网站文章目录 目的基础说明关键配置关键代码示例链接总结 目的 以太网是比较常用到的功能#xff0c;STM32系列单片机使用CubeMX配置使用以太网功能比非常方便。不过对于H7系列来说需要使能 DCache 才能启用LwIP#xff0c;启用Cache后又会带来一些需要特别注意的事情。这篇文章… 文章目录 目的基础说明关键配置关键代码示例链接总结 目的 以太网是比较常用到的功能STM32系列单片机使用CubeMX配置使用以太网功能比非常方便。不过对于H7系列来说需要使能 DCache 才能启用LwIP启用Cache后又会带来一些需要特别注意的事情。这篇文章将对相关内容进行介绍。 基础说明 STM32单片机以太网基础的配置启用等内容可以参考我之前的文章 《STM32单片机示例ETH_DP83848_DHCP_NonOS_Poll_F407》 目前虽然在CubeMX中需要配置 DCache 才能启用LwIP但是配置生成的代码里直接注释掉主函数头部的 SCB_EnableDCache(); 以太网和LwIP也能正常工作如果没有特别要求的话完全可以这样就直接用。 如果要使用 DCache 的话就需要特别注意DMA和CPU读写同一片内存数据不同步的问题了。 一种简单的解决方案是在 low_level_output 中使用 SCB_CleanDCache... 将Cache中数据更新到SRAM在 low_level_input 中将使用 SCB_InvalidateDCache... 将SRAM中数据加载到Cache。 当然只要合理设置MPU也可以不用清Cache和无效化Cache操作比如官方例程的设置 https://github.com/stm32-hotspot/STM32H7-LwIP-Examples 需要注意的是上面官方例程中虽然都是H7系列的但是根据内存大小的不同内存分布设置也是不同的可以通过全局搜索 ETH_CODE 关键词来查看各个项目中相关的改动。 上面官方例程都是使用了 FreeRTOS 下面将不使用操作系统的情况进行演示。 关键配置 时钟 Cache和MPU 以太网 LwIP 堆栈 关键代码 main.c 中一些手动添加的代码 #include main.h #include lwip.hUART_HandleTypeDef huart6;/* With GCC, small printf (option LD Linker-Libraries-Small printf set to Yes) calls __io_putchar() */ #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) // 实现__io_putchar函数 #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */PUTCHAR_PROTOTYPE {HAL_UART_Transmit(huart3, (uint8_t *)ch, 1, 0xFFFF); // for printf()return ch; }int main(void) {HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_LWIP_Init(); // 初始化网络功能MX_USART6_UART_Init();while (1){MX_LWIP_Process(); // 处理网络相关事务static uint32_t previous 0;if((HAL_GetTick() - previous)1000){previous HAL_GetTick();extern struct netif gnetif; // 网卡对象在lwip.c文件中定义// 打印时间和IP地址printf(%ld - loop: ip addr %s\n, HAL_GetTick(), ip4addr_ntoa(netif_ip_addr4(gnetif)));}} }lwip.c 中一些手动添加的代码 /*** brief Notify the User about the network interface config status* param netif: the network interface*/ static void ethernet_link_status_updated(struct netif *netif) {if (netif_is_up(netif)){printf(%ld - link status callback: netif_is_up!\n, HAL_GetTick());}else /* netif is down */{printf(%ld - link status callback: netif_is_down!\n, HAL_GetTick());} }STM32H743ZITX_FLASH.ld 中一些手动添加的代码 ...} RAM_D1/* ETH_CODE: add placement of DMA descriptors and RX buffers */.lwip_sec (NOLOAD) :{. ABSOLUTE(0x30040000);*(.RxDecripSection) . ABSOLUTE(0x30040060);*(.TxDecripSection). ABSOLUTE(0x30040200);*(.Rx_PoolSection) } RAM_D2/* Remove information from the standard libraries *//DISCARD/ :...ethernetif.c 中一些手动添加的代码 /* USER CODE BEGIN 2 */ /* ETH_CODE: placement of RX_POOL* Please note this was tested only for GCC compiler.* Additional code needed in linkerscript for GCC.** Also this buffer can be placed in D1 SRAM* if there is not sufficient space in D2.* This can be case of STM32H72x/H73x devices.* However the 32-byte alignment should be forced.* Below is example of placement into BSS section** . ALIGN(32);* *(.Rx_PoolSection)* . ALIGN(4);* _ebss .;* __bss_end__ _ebss;* } RAM_D1*/ #if defined ( __ICCARM__ ) /*! IAR Compiler */ #pragma location 0x30040200 extern u8_t memp_memory_RX_POOL_base[];#elif defined ( __CC_ARM ) /* MDK ARM Compiler */ __attribute__((at(0x30040200)) extern u8_t memp_memory_RX_POOL_base[];#elif defined ( __GNUC__ ) /* GNU Compiler */ __attribute__((section(.Rx_PoolSection))) extern u8_t memp_memory_RX_POOL_base[];#endif /* USER CODE END 2 */上面的修改可能会在有些编译环境下保存可以 lwipopts.h 中一些手动添加的代码 /* USER CODE BEGIN 1 / #undef LWIP_PROVIDE_ERRNO #define LWIP_ERRNO_STDINCLUDE / USER CODE END 1 */示例链接 仓库地址 https://github.com/NaisuXu/STM32_MCU_Examples 本文中的示例位于仓库中 ETH_LAN8742_DHCP_NonOS_Poll_H743 。 总结 通过上面的配置和改动就网络部分就可以正常使用了。之后网络应用的开发同样还是参考官方例程和文档 《UM1713 使用 LwIP TCP/IP 栈在 STM32Cube 上开发应用》
http://www.pierceye.com/news/515466/

相关文章:

  • 西部数码网站流量怎么充优化网站界面的工具
  • 街区网站建设东阳市住房和城乡建设局网站
  • 怎样建设网站是什么网站代码制作软件
  • 成华区微信网站建设计公司加盟
  • 找个男做那个视频网站好高端网站建设公司
  • 做网站 毕业设计广东手机网页制作
  • 沈阳口碑最好的男科医院seo排名优化什么意思
  • 光谷做网站推广价格手机网站 教程
  • 泉州做网站多少钱关键词排名快照优化
  • 威海网站建设费用网站不能调用样式
  • 网站链接建设及引流营销世界500强企业中国有几家
  • 哪个网站做网络推好推广引流的10个渠道
  • 上海企业一网通办沂seo网站推广
  • 资阳网站网站建设官方网站建设公司
  • 企业网站建设一条龙服务内容如何自己免费创建网站
  • 重庆智能网站建设多少钱临海做网站
  • 创建好网站如何把浏览器合肥道路建设从哪个网站可以看到
  • 湖北省和建设厅网站自助建站模板
  • 西安网站建设 美科动seo关键词优化哪个平台好
  • 副食店年报在哪个网站做mc建筑网站
  • 网站建设不足之处2017网站设计尺寸
  • 网站架构招聘怎么免费的安装wordpress主题
  • 海天建设集团网站深圳西乡地铁站
  • 上海html5网站建设第九影院用wordpress版权信息
  • 东莞网站建设运营方案尺寸在线做图网站
  • 萍乡网站推广陕西省住房和城乡建设厅网站上查询
  • 南京市浦口区建设局网站多商户商城app开发
  • 网站设置不能通过链接访问中专网站建设与管理就业前景
  • 大连网站建设哪个公司好郑州最新通告
  • 如何自己搭建网站做装修的业务网站