gicking / STM8_templates

STM8 Libraries and Examples with Arduino look&feel
Apache License 2.0
23 stars 7 forks source link

Compilation error Cosmic #1

Closed RandoSY closed 6 years ago

RandoSY commented 6 years ago

Basic Project ... I'm seeing these errors...

----------- Project STM8_Template - STM8 Cosmic - Configuration Debug -------------

Compiling ........\library\base\gpio.c... cxstm8 +warn +modsl +debug -pxp -no -pp -l -dUSE_TIM4_ISR -dDEBUG -i........\library\base -i.. -i....\stm8_lib -i..\stm8_lib -i........\library\muboard -i..\stvd_cosmic -i"C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8\Hstm8" -clDebug\ -coDebug\ ........\library\base\gpio.c

error cpstm8 ........\library\base\stm8as.h:195 bad # operand

error cpstm8 ........\library\base\stm8as.h:196 bad # operand

........\library\base\gpio.c:

Apparently cxstm8 doesn't like #asm, #endasm in the define statment

error cpstm8 ........\library\base\stm8as.h:195 bad # operand

error cpstm8 ........\library\base\stm8as.h:196 bad # operand

This is a great project! Thanks for posting.

gicking commented 6 years ago

hi RandoSY,

thanks a lot for pointing this out! However, lately I have been extending the functionality of the STM8_templates quite a bit, including SPL support, more STM8 families, and auto-dependency detection (similar to Arduino). Therefore there haven't been updates for quite a while - sorry for that!

Unfortunately I recently ran into a stupid, non-technical issue. Basically my intention was to replace my custom "stm8as.h" by the device headers from the SPL --> support all STM8 families without having to create my own headers (which is a LOT of effort). However, as pointed out by spth the SPL licence still is not OS --> shouldn't use it here :-(

I am still struggling about how to proceed from here, ideally without having to scrap the work of the past months...

Ok, but to come back to your question: I will look into that and try to fix it. Thanks again for pointing it out!

gicking commented 6 years ago

hi RandoSY,

I have just updated the repository with my current status. As you can see I have made up my mind to stick to my own headers (i.e. not use SPL), but to provide an example how to mix with SPL.

All examples have been tested with the latest SDCC and Cosmic-Eval compilers (latter with exception of "STM8_StdPeriphLib"). Please let me know what you think of the changes, and if it now works for you. Thanks a lot in advance!

Greetings, Georg

PS: with the new ISR structure, I believe things are now much more robust. At least updating the examples to the new structure, and mixing with SPL, turned out to be a breeze so far... :-)

RandoSY commented 6 years ago

Hi Georg,

Wow! Thanks so much for the consideration of your prompt reply.

I am testing with a fresh install of ST Visual Develop, and recently licensed COSMIC stm8 C compiler (cxstm8).

Still seeing L

----------- Project STM8_Template - STM8 Cosmic - Configuration Release -------------

Compiling ........\library\base\src\gpio.c...

cxstm8 +mods0 -pp -i.. -i........\library\base\inc -i........\library\stm8s_discovery\inc -i"C:\Program Files\COSMIC\CXSTM8_EVAL\Hstm8" -clRelease\ -coRelease\ ........\library\base\src\gpio.c

error cpstm8 ........\library\base\inc\stm8as.h:195 bad # operand

error cpstm8 ........\library\base\inc\stm8as.h:196 bad # operand

........\library\base\src\gpio.c:

The command: "cxstm8 +mods0 -pp -i.. -i........\library\base\inc -i........\library\stm8s_discovery\inc -i"C:\Program Files\COSMIC\CXSTM8_EVAL\Hstm8" -clRelease\ -coRelease\ ........\library\base\src\gpio.c" has failed, the returned value is: 1

exit code=1.

STM8_Template.elf - 4 error(s), 0 warning(s)

I wonder if it’s something wrong in my setup???

Thanks again, all your STM8 work is GREAT! I really need to get over to Linux and take a look at SDCC and your excellent project…

Best,

Randy

PS. Happy Holidays!!!

From: Georg Icking-Konert [mailto:notifications@github.com] Sent: Tuesday, December 26, 2017 6:32 PM To: gicking/STM8_templates Cc: RandoSY; Author Subject: Re: [gicking/STM8_templates] Compilation error Cosmic (#1)

hi RandoSY,

I have just updated the repository with my current status. As you can see I have made up my mind to stick to my own headers (i.e. not use SPL), but to provide an example how to mix with SPL.

All examples have been tested with the latest SDCC and Cosmic-Eval compilers (latter with exception of "STM8_StdPeriphLib"). Please let me know what you think of the changes, and if it now works for you. Thanks a lot in advance!

Greetings, Georg

PS: with the new ISR structure, I believe things are now much more robust. At least updating the examples to the new structure, and mixing with SPL, turned out to be a breeze so far... :-)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gicking/STM8_templates/issues/1#issuecomment-354024833 , or mute the thread https://github.com/notifications/unsubscribe-auth/AAlOm_J4F_4UlTLXHeufIhEyk1YqBqYFks5tEYH1gaJpZM4RLKoc . https://github.com/notifications/beacon/AAlOm7l6QpSI7InKMAZ9D0nWHc5NYkB-ks5tEYH1gaJpZM4RLKoc.gif

RandoSY commented 6 years ago

Georg,

OK, finally have correct compiler in path, simplest template example. Sorry I am SO SLOW today. Way, way too much party over XMAS.

Removing intermediate files ... Done!

----------- Project STM8_Template - STM8 Cosmic - Configuration Release -------------

Compiling ........\library\base\src\gpio.c...

cxstm8 +mods0 -pp -i.. -i........\library\base\inc -i........\library\stm8s_discovery\inc -i"C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8\Hstm8" -cl..\stvd_cosmic\ -co..\stvd_cosmic\ ........\library\base\src\gpio.c

error cpstm8 ........\library\base\inc\stm8as.h:195 bad # operand

error cpstm8 ........\library\base\inc\stm8as.h:196 bad # operand

........\library\base\src\gpio.c:

The command: "cxstm8 +mods0 -pp -i.. -i........\library\base\inc -i........\library\stm8s_discovery\inc -i"C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8\Hstm8" -cl..\stvd_cosmic\ -co..\stvd_cosmic\ ........\library\base\src\gpio.c" has failed, the returned value is: 1

exit code=1.

STM8_Template.elf - 3 error(s), 0 warning(s)

From

/**

simple C-project without Arduino-like initialization and

setup()/loop(). No assumption is made, no interrupts used.

Can be used as starting point for projects with extreme

memory limitations or real-time requirements.

Functionality:

**/

/*----------------------------------------------------------

INCLUDE FILES

----------------------------------------------------------*/

include "stm8as.h" // STM8 peripheral registers

include "gpio.h" // pin access routines

include "sw_delay.h" // dummy pause without timer

// define board LED pin for STM8S Discovery Board

define LED pinSet(PORT_D, pin0)

// main routine

void main(void) {

// switch to 16MHz (default is 2MHz)

CLK.CKDIVR.byte = 0x00;

// configure LED pin as output

pinMode(PORT_D, pin0, OUTPUT);

// main loop

while (1) {

// toggle LED

LED ^= 1;

// wait some time

sw_delay(500);

} // main loop

} // main

Best,

Randy

From: Georg Icking-Konert [mailto:notifications@github.com] Sent: Tuesday, December 26, 2017 6:32 PM To: gicking/STM8_templates Cc: RandoSY; Author Subject: Re: [gicking/STM8_templates] Compilation error Cosmic (#1)

hi RandoSY,

I have just updated the repository with my current status. As you can see I have made up my mind to stick to my own headers (i.e. not use SPL), but to provide an example how to mix with SPL.

All examples have been tested with the latest SDCC and Cosmic-Eval compilers (latter with exception of "STM8_StdPeriphLib"). Please let me know what you think of the changes, and if it now works for you. Thanks a lot in advance!

Greetings, Georg

PS: with the new ISR structure, I believe things are now much more robust. At least updating the examples to the new structure, and mixing with SPL, turned out to be a breeze so far... :-)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gicking/STM8_templates/issues/1#issuecomment-354024833 , or mute the thread https://github.com/notifications/unsubscribe-auth/AAlOm_J4F_4UlTLXHeufIhEyk1YqBqYFks5tEYH1gaJpZM4RLKoc . https://github.com/notifications/beacon/AAlOm7l6QpSI7InKMAZ9D0nWHc5NYkB-ks5tEYH1gaJpZM4RLKoc.gif

RandoSY commented 6 years ago

Georg,

Here’s the offending section, of the required header file. ???, looks correct to me???

// Cosmic compiler

if defined(CSMC)

define reg(addr,type,name) extern volatile type name @addr ///< syntax for variables at absolute addresses

define ASM(mnem) _asm(mnem) ///< single line inline assembler

define ASM_START #asm ///< start multi-line inline assembler

define ASM_END #endasm ///< end multi-line inline assembler

Have a great day.

Best,

Randy

From: Georg Icking-Konert [mailto:notifications@github.com] Sent: Tuesday, December 26, 2017 6:32 PM To: gicking/STM8_templates Cc: RandoSY; Author Subject: Re: [gicking/STM8_templates] Compilation error Cosmic (#1)

hi RandoSY,

I have just updated the repository with my current status. As you can see I have made up my mind to stick to my own headers (i.e. not use SPL), but to provide an example how to mix with SPL.

All examples have been tested with the latest SDCC and Cosmic-Eval compilers (latter with exception of "STM8_StdPeriphLib"). Please let me know what you think of the changes, and if it now works for you. Thanks a lot in advance!

Greetings, Georg

PS: with the new ISR structure, I believe things are now much more robust. At least updating the examples to the new structure, and mixing with SPL, turned out to be a breeze so far... :-)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gicking/STM8_templates/issues/1#issuecomment-354024833 , or mute the thread https://github.com/notifications/unsubscribe-auth/AAlOm_J4F_4UlTLXHeufIhEyk1YqBqYFks5tEYH1gaJpZM4RLKoc . https://github.com/notifications/beacon/AAlOm7l6QpSI7InKMAZ9D0nWHc5NYkB-ks5tEYH1gaJpZM4RLKoc.gif

gicking commented 6 years ago

hi RandoSY,

looking at lines 195 and 196 I think that the error is triggered by the hashtags inside the #define. Seems like this is forbidden for ANSI-C. But what I don't understand is, that it did compile on my PC - very strange indeed! Give some more time to investigate this...

As a first try: can you please comment lines 195 and 196 in stm8as.h and see if this solves this issue? ASM_START and ASM_END are currently only used in eeprom.h, so it should be ok for a test. Thanks in advance!

Georg

gicking commented 6 years ago

just downloaded and installed "Cosmic Eval" fresh, and "General_Examples/Minimal-C" compiles here without warning or error (see below). Seems like the Cosmic preprocessor can handle hashtags within #defines.

Is there anything special about your installation, e.g. does your build-process use the gcc preprocessor before compiling with cxstm8...? Else I'm at a loss...

Georg

----------- Project STM8_Template - STM8 Cosmic - Configuration Release ------------- Removing intermediate files ... Done!

----------- Project STM8_Template - STM8 Cosmic - Configuration Release -------------

Compiling ........\library\base\src\gpio.c... cxstm8 +mods0 -pp -i.. -i........\library\base\inc -i"C:\Program Files\COSMIC\CXSTM8_EVAL\Hstm8" -clRelease\ -coRelease\ ........\library\base\src\gpio.c ........\library\base\src\gpio.c:

Compiling ........\library\base\src\stm8_interrupt_vector.c... cxstm8 +mods0 -pp -i.. -i........\library\base\inc -i"C:\Program Files\COSMIC\CXSTM8_EVAL\Hstm8" -clRelease\ -coRelease\ ........\library\base\src\stm8_interrupt_vector.c ........\library\base\src\stm8_interrupt_vector.c:

Compiling ..\main.c... cxstm8 +mods0 -pp -i.. -i........\library\base\inc -i"C:\Program Files\COSMIC\CXSTM8_EVAL\Hstm8" -clRelease\ -coRelease\ ..\main.c ..\main.c:

Running Linker clnk -l"C:\Program Files\COSMIC\CXSTM8_EVAL\Lib" -o Release\STM8_Template.sm8 Release\STM8_Template.lkf cvdwarf Release\STM8_Template.sm8

Running Post-Build step chex -o Release\STM8_Template.s19 Release\STM8_Template.sm8

STM8_Template.elf - 0 error(s), 0 warning(s)

RandoSY commented 6 years ago

Hi Georg,

I’m thinking we’re getting somewhere

Here’s where I’ve been downloading my free Cosmic Compiler … (after they send me the license file)

http://cosmicsoftware.com/download_stm8_free.php

This is where my Cosmic STM8 compiler lives … C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8, etc. …

Whereas I notice your compiler’s instance is installed to here … C:\Program Files\COSMIC\CXSTM8_EVAL … DIFFERENT!

So I bet that is at the heart of the matter!

Now that I’ve sobered up a little, it did occur to me to search throughout the code base and just substitute literally whatever the #define statement was attempting to do, and see if that would correct the matter.

By way of doing something expeditious, commenting out the two offending lines works just dandy.

I really want to use the ST Develop IDE with your code, the debugger works great, got an old IAR feel, and I mean in a good way.

Thanks again!!!

Randy

Ivy Tech

https://www.ivytech.edu/

From: Georg Icking-Konert [mailto:notifications@github.com] Sent: Wednesday, December 27, 2017 5:06 PM To: gicking/STM8_templates Cc: RandoSY; Author Subject: Re: [gicking/STM8_templates] Compilation error Cosmic (#1)

just downloaded and installed "Cosmic Eval" fresh, and "General_Examples/Minimal-C" compiles here without warning or error (see below). Seems like the Cosmic preprocessor can handle hashtags within #defines.

Is there anything special about your installation, e.g. does your build-process use the gcc preprocessor before compiling with cxstm8...? Else I'm at a loss...

Georg

----------- Project STM8_Template - STM8 Cosmic - Configuration Release ------------- Removing intermediate files ... Done!

----------- Project STM8_Template - STM8 Cosmic - Configuration Release -------------

Compiling ........\library\base\src\gpio.c... cxstm8 +mods0 -pp -i.. -i........\library\base\inc -i"C:\Program Files\COSMIC\CXSTM8_EVAL\Hstm8" -clRelease\ -coRelease\ ........\library\base\src\gpio.c ........\library\base\src\gpio.c:

Compiling ........\library\base\src\stm8_interrupt_vector.c... cxstm8 +mods0 -pp -i.. -i........\library\base\inc -i"C:\Program Files\COSMIC\CXSTM8_EVAL\Hstm8" -clRelease\ -coRelease\ ........\library\base\src\stm8_interrupt_vector.c ........\library\base\src\stm8_interrupt_vector.c:

Compiling ..\main.c... cxstm8 +mods0 -pp -i.. -i........\library\base\inc -i"C:\Program Files\COSMIC\CXSTM8_EVAL\Hstm8" -clRelease\ -coRelease\ ..\main.c ..\main.c:

Running Linker clnk -l"C:\Program Files\COSMIC\CXSTM8_EVAL\Lib" -o Release\STM8_Template.sm8 Release\STM8_Template.lkf cvdwarf Release\STM8_Template.sm8

Running Post-Build step chex -o Release\STM8_Template.s19 Release\STM8_Template.sm8

STM8_Template.elf - 0 error(s), 0 warning(s)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gicking/STM8_templates/issues/1#issuecomment-354184588 , or mute the thread https://github.com/notifications/unsubscribe-auth/AAlOm-4vKA9-VtdU6BPSM5ESozA1gkIRks5tEr9IgaJpZM4RLKoc . https://github.com/notifications/beacon/AAlOmx77DFYDZK8S1PY--c-qvxMfna6Sks5tEr9IgaJpZM4RLKoc.gif

gicking commented 6 years ago

hi RandoSY,

just found this hint -> seems like I don't need the hashtag after all :-) Can you please try with the updated stm8as.h on Github? Let me know if it works now. Good luck!

Regards, Georg

RandoSY commented 6 years ago

Hi Georg!,

Remarkably I found this link as well, and wondered if it wouldn’t apply.

In answer to your question, works like CHAMP! Now I can get to understanding mapping the Arduino application architecture to this new chip.

I’ve taken a hard look at debugging Arduino applications inside Atmel Studio, this works but it’s quite difficult to follow all the twists and turns, and esp. the obsufications of the C++ based libraries, this should be much simpler.

Also, I’m really feeling the way you progress your examples from dead simple, to interrupt driven low power operation, with convenient printf style UART access.

Kudos!

Here’s point is the STM8 is so cheap relatively, it’s almost disposable. Perfect for education, lot’s to learn, and much appreciated.

Best,

Randy

From: Georg Icking-Konert [mailto:notifications@github.com] Sent: Thursday, December 28, 2017 3:04 AM To: gicking/STM8_templates Cc: RandoSY; Author Subject: Re: [gicking/STM8_templates] Compilation error Cosmic (#1)

hi RandoSY,

just found this hint https://stackoverflow.com/questions/3030099/pragma-in-define-macro -> seems like I don't need the hashtag after all :-) Can you please try with the updated stm8as.h on Github? Let me know if it works now. Good luck!

Regards, Georg

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gicking/STM8_templates/issues/1#issuecomment-354247303 , or mute the thread https://github.com/notifications/unsubscribe-auth/AAlOm-Vt4PrS1vBZNqbJd7-8njj00Lrpks5tE0t2gaJpZM4RLKoc . https://github.com/notifications/beacon/AAlOm7dAbHDWx-sMRPGBGtEG7vjqDcaVks5tE0t2gaJpZM4RLKoc.gif

gicking commented 6 years ago

hi again,

great to hear this works now!

The way you write it, it sounds like I the progression from simple to complex projects was made on purpose... However, I have to tell you that I'm just learning as I go along - and as a side-effect I get some (hopefully) useful code. I guess that's also why I had some major changes already, i.e. when I stumbled into a issue that required some structural change. Hope it won't happen too often, since it's rather dull work.

I totally agree that C++ support would be really nice indeed. Apparently there is a way to achieve this with SDCC via LLVM, but it seems to be rather incomplete.

One more thing: if you are looking for true Arduino look&feel with STM8, you may also want to take a look at the sduino project. I see my project rather as a means to learn low(er)-level embedded programming - and to provide useful code for myself...

Thanks again for pointing this issue out and have a happy New Year! :-)

Georg

RandoSY commented 6 years ago

Georg,

Working through your other Github folders, of course, what I’ve just learned applies across your other examples.

If you wouldn’t mind I have a question. Whatever attracted you to the STM8 processor in the first place?

It seems you’ve created a lot of the open source infrastructure that allows the STM8 to be used by the maker community.

Best,

Randy

From: Georg Icking-Konert [mailto:notifications@github.com] Sent: Thursday, December 28, 2017 11:14 AM To: gicking/STM8_templates Cc: RandoSY; Author Subject: Re: [gicking/STM8_templates] Compilation error Cosmic (#1)

hi again,

great to hear this works now!

The way you write it, it sounds like I the progression from simple to complex projects was made on purpose... However, I have to tell you that I'm just learning as I go along - and as a side-effect I get some (hopefully) useful code. I guess that's also why I had some major changes already, i.e. when I stumbled into a issue that required some structural change. Hope it won't happen too often, since it's rather dull work.

I totally agree that C++ support would be really nice indeed. Apparently there is a way to achieve this https://sourceforge.net/p/sdcc/mailman/message/36061704/ with SDCC via LLVM, but it seems to be rather incomplete.

One more thing: if you are looking for true Arduino look&feel with STM8, you may also want to take a look at the sduino project https://github.com/tenbaht/sduino . I see my project rather as a means to learn low(er)-level embedded programming - and to provide useful code for myself...

Thanks again for pointing this issue out and have a happy New Year! :-)

Georg

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gicking/STM8_templates/issues/1#issuecomment-354313133 , or mute the thread https://github.com/notifications/unsubscribe-auth/AAlOm2whHBTgw1gErtXA1x8PzFEPADw6ks5tE75lgaJpZM4RLKoc . https://github.com/notifications/beacon/AAlOmw8CDBNKgf1Z_D1FusXdGV-Ff73Aks5tE75lgaJpZM4RLKoc.gif

gicking commented 6 years ago

hi Randy,

not at all! I am working for an automotive supplier, and we've been using the STM8 for quite a while as our bred & butter controller. Reason is - as you correctly pointed out - an unparalleled features vs. price ratio.

So when I developed an IC validation tool ("muBoard") years ago, of course it was based on STM8. Unfortunately I overlooked the fact that no OS C-compiler was available (and Cosmic didn't offer eval versions). So use of the muBoard was restricted to the lucky holders of a Dongle :-( The "solution" for this was a new language with corresponding byte code interpreter. But while that was a very interesting endeavor, and works surprisingly well, it also has some major drawbacks. So, when SDCC became available, I started porting (and extending) the muBoard SW-functions to SDCC, and tried to make the toolchain as easy to use as muBatch. The result is what you see on Github.

Why stick to STM8 and not switch to Arduino? Well, recently a colleague developed a muBoard successor, which is Arduino based -> in principle I could (and probably should) stop putting effort into STM8. However, while I use Arduinos a lot nowadays and appreciate the great community support, the universe of available libraries, and the ease of use, I sometimes miss the dirty, low-level programming. Besides, I still prefer the STM8 for my more serious projects, because it's very lean on HW, extremely robust, and has very good power-saving features (especially STM8L). Especially the latter makes it perfect for battery powered devices - and is the reason for the Minimal-C projects without any overhead.

So what's your reason to look into STM8, if I may ask?

Regards, Georg

PS: how about switching to PM (icking@onlinehome.de) instead of using the issues page on Github?

RandoSY commented 6 years ago

Hi Georg!

I did respond and forward to the (icking@onlinehome.de) email address you posted.

Best,

Randy

From: Georg Icking-Konert [mailto:notifications@github.com] Sent: Friday, December 29, 2017 2:40 AM To: gicking/STM8_templates Cc: RandoSY; Author Subject: Re: [gicking/STM8_templates] Compilation error Cosmic (#1)

hi Randy,

not at all! I am working for an automotive supplier, and we've been using the STM8 for quite a while as our bred & butter controller. Reason is - as you correctly pointed out - an unparalleled features vs. price ratio.

So when I developed an IC validation tool ("muBoard") years ago, of course it was based on STM8. Unfortunately I overlooked the fact that no OS C-compiler was available (and Cosmic didn't offer eval versions). So use of the muBoard was restricted to the lucky holders of a Dongle :-( The "solution" for this was a new language with corresponding byte code interpreter https://frosch.piandmore.de/en/pam9/call/public-media/event_media/160611_Vortrag_Interpreter.pdf . But while that was a very interesting endeavor, and works surprisingly well, it also has some major drawbacks. So, when SDCC became available, I started porting (and extending) the muBoard SW-functions to SDCC, and tried to make the toolchain as easy to use as muBatch. The result is what you see on Github.

Why stick to STM8 and not switch to Arduino? Well, recently a colleague developed a muBoard successor, which is Arduino based -> in principle I could (and probably should) stop putting effort into STM8. However, while I use Arduinos a lot nowadays and appreciate the great community support, the universe of available libraries, and the ease of use, I sometimes miss the dirty, low-level programming. Besides, I still prefer the STM8 for my more serious projects, because it's very lean on HW, extremely robust, and has very good power-saving features (especially STM8L). Especially the latter makes it perfect for battery powered devices - and is the reason for the Minimal-C projects without any overhead.

So what's your reason to look into STM8, if I may ask?

Regards, Georg

PS: how about switching to PM (icking@onlinehome.de) instead of using the issues page on Github?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gicking/STM8_templates/issues/1#issuecomment-354410546 , or mute the thread https://github.com/notifications/unsubscribe-auth/AAlOm2jTK-WTVvIuQmWNyLxsj2xaf4Fvks5tFJc5gaJpZM4RLKoc . https://github.com/notifications/beacon/AAlOm5LAOpiEjGKJdIb80KDNNhJ-jlSuks5tFJc5gaJpZM4RLKoc.gif