Forum: Mikrocontroller und Digitale Elektronik [ARM]DiscoverF4 CycloneTCP Stack Webserver/Client Demo mit CoIDE


von Torsten S. (tse)


Angehängte Dateien:

Lesenswert?

Auf der Suche nach einer Alternative für lwip bin ich hier fündig 
geworden[1].

Anbei ist ein Projekt für CoIDE 1.7.5 mit dem Netzwerk-Stack CycloneTCP. 
Es basiert auf die im Quelltext vorliegenden Demos für Keil.

Hardware ist das DiscoveryF4 mit dem DP83848 Modul von Waveshare. Auf 
USART6 laufen verschieden Statusmeldungen.

Nach dem Einschalten wird versucht via DHCP eine IP zu erhalten. Gelingt 
das, leuchet die grüne LED und auf der USART wird die IP ausgegeben. 
Eine rote LED blinkt solange das Programm läuft.

Den Webserver kann man ausprobieren indem man die erhaltene IP im 
Browser eingibt.

Wenn man den blauen Taster betätigt, wird die Startseite von diesem 
Forum geholt und auf der USART ausgegeben. Während dessen leuchtet die 
orange LED.

Als Terminalprogramm für die USART hat sich Putty sehr bewährt.

Die Demo läuft deutlich stabiler als die von ST. Die Codequalität des 
Stacks spricht auch für sich.


Viel Spaß!


[1]www.oryx-embedded.com

von Khang (Gast)


Lesenswert?

Hallo,

I have following problem while building with Coocox 1.7.0 or 1.7.8 
(unfortunately I dont have the Coocox 1.7.5 to test it):

[cc] Starting link
       [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 
-mfloat-abi=softfp -mthumb -Wall -g -nostartfiles -Wl,-Map=Websrv.map 
-Os -Wl,--gc-sections -LC:\CooCox\CoIDE\configuration\ProgramData\Websrv 
-Wl,-TC:\CooCox\CoIDE\configuration\ProgramData\Websrv/arm-gcc-link.ld 
-g -o Websrv.elf ..\obj\socket.o ..\obj\pkcs5.o ..\obj\whirlpool.o 
..\obj\raw_socket.o ..\obj\stm32f4xx_syscfg.o ..\obj\idea.o 
..\obj\cipher_mode_cbc.o ..\obj\stm32f4xx_sdio.o ..\obj\tcp.o 
..\obj\tcp_timer.o ..\obj\icecast_client.o ..\obj\stm32f4xx_cryp_aes.o 
..\obj\stm32f4xx_hash.o ..\obj\arp.o ..\obj\icmpv6.o 
..\obj\stm32f4xx_hash_sha1.o ..\obj\seed.o ..\obj\chargen.o 
..\obj\camellia.o ..\obj\mld.o ..\obj\os.o ..\obj\dhcp_client.o 
..\obj\stm32f4xx_usart.o ..\obj\tcp_ip_stack.o ..\obj\stm32f4xx_pwr.o 
..\obj\daytime.o ..\obj\yarrow.o ..\obj\mpi.o ..\obj\dsa.o 
..\obj\cipher_mode_ecb.o ..\obj\stm32f4xx_can.o ..\obj\slaac.o 
..\obj\stm32f4_discovery_sdio_sd.o ..\obj\ripemd128.o 
..\obj\stm32f4xx_wwdg.o ..\obj\ipv4_frag.o ..\obj\stm32f4xx_hash_md5.o 
..\obj\str.o ..\obj\stm32f4xx_dac.o ..\obj\tiger.o ..\obj\discard.o 
..\obj\startup_stm32f4xx.o ..\obj\stm32f4x7_eth.o 
..\obj\stm32f4_discovery.o ..\obj\sha512_256.o ..\obj\base64.o 
..\obj\stm32f4xx_crc.o ..\obj\stm32f4xx_iwdg.o ..\obj\echo.o 
..\obj\main.o ..\obj\dhcpv6_client.o ..\obj\stm32f4xx_rcc.o 
..\obj\dhcpv6_debug.o ..\obj\tcp_misc.o ..\obj\sha256.o 
..\obj\dhcpv6_relay.o ..\obj\dns_client.o ..\obj\timers.o 
..\obj\smtp_client.o ..\obj\sha384.o ..\obj\cipher_mode_ctr.o 
..\obj\des3.o ..\obj\dh.o ..\obj\endian.o ..\obj\ndp.o 
..\obj\stm32f4xx_adc.o ..\obj\asn1.o ..\obj\stm32f4xx_dcmi.o 
..\obj\pem.o ..\obj\ping.o ..\obj\tasks.o ..\obj\aes.o ..\obj\md2.o 
..\obj\stm32f4xx_cryp_des.o ..\obj\stm32f4xx_cryp.o 
..\obj\cipher_mode_gcm.o ..\obj\stm32f4xx_fsmc.o ..\obj\ipv4.o 
..\obj\sha512_224.o ..\obj\md4.o ..\obj\cipher_mode_ofb.o 
..\obj\dhcp_common.o ..\obj\ethernet.o ..\obj\stm32f4xx_gpio.o 
..\obj\x509.o ..\obj\stm32f4xx_flash.o ..\obj\md5.o ..\obj\list.o 
..\obj\cipher_mode_ccm.o ..\obj\system_stm32f4xx.o ..\obj\syscalls.o 
..\obj\res.o ..\obj\mime.o ..\obj\stm32f4xx_dma.o ..\obj\sha224.o 
..\obj\ipv6.o ..\obj\ssi.o ..\obj\tcp_ip_stack_mem.o ..\obj\port.o 
..\obj\queue.o ..\obj\dp83848.o ..\obj\ripemd160.o ..\obj\debug.o 
..\obj\igmp.o ..\obj\sha1.o ..\obj\hmac.o ..\obj\croutine.o ..\obj\udp.o 
..\obj\ip.o ..\obj\rc4.o ..\obj\stm32f4xx_spi.o ..\obj\aria.o 
..\obj\stm32f4xx_i2c.o ..\obj\dhcpv6_common.o ..\obj\stm32f4xx_rng.o 
..\obj\resource_manager.o ..\obj\sha512.o ..\obj\stm32f4xx_exti.o 
..\obj\icmp.o ..\obj\ipv6_frag.o ..\obj\misc.o ..\obj\cipher_mode_cfb.o 
..\obj\rc6.o ..\obj\dhcp_debug.o ..\obj\rsa.o ..\obj\stm32f4xx_rtc.o 
..\obj\http_server.o ..\obj\stm32f4xx_cryp_tdes.o ..\obj\des.o 
..\obj\nic.o ..\obj\date_time.o ..\obj\stm32f4xx_tim.o ..\obj\tcp_fsm.o 
..\obj\stm32f4xx_dbgmcu.o ..\obj\ftp_client.o -L..\..\.. -lm -lgcc -lc
       [cc] c:/program files (x86)/gnu tools arm embedded/4.9 
2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/ 
armv7e-m/softfp\libc.a(lib_a-fclose.o):  In function `fclose':
       [cc] fclose.c:(.text.fclose+0x0): multiple definition of `fclose'
       [cc] 
..\obj\resource_manager.o:D:\Work\References\Ethernet\OryxWebsrv\Cyclone 
TCP_CycloneSSL_CycloneCrypto_Open_1_3_5\common/resource_manager.c:286: 
first defined here
       [cc] collect2.exe: error: ld returned 1 exit status


Do you have an idea?
Khang.

von Khang (Gast)


Lesenswert?

Hallo,

I can now successfully build the demo with CoIDE-V2Beta-20150213. It 
seems that CoIDE is not really stable?!?!?

Khang.

von Torsten S. (tse)


Lesenswert?

So what is your question?

von Khang (Gast)


Lesenswert?

I've found that the problem comes from the version of GNU Tool ARM 
Embedded that I use. So no question any more.

Thanks,
Khang

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.