Sunteți pe pagina 1din 14

Ministère de l'éducation, de la culture et de la recherche

de la République de Moldova
Université technique de Moldavie
Faculté d’Ordinateur, Informatique et Microélectronique
Filière francophone “Informatique”

IoT

Travail pratique nr.2


Thème: Sisteme de Operare

Effectué par l’étudiant(e) de gr FI-181 : Damean Alexandra

Vérifié par le professeur : Bîrnaz Adrian

Chișinau 2021
Scopul lucrării și sarcinile propuse :
Realizarea unei aplicații pentru MCU care va rula minim 3 task-uri in doua versiuni -
Secvential si cu FreeRTOS

Aplicația va rula minim 3 task-uri printre care :

 Button Led - Schimbare stare LED la detecția unei apăsări pe buton.


 un al doilea Led Intermitent în faza în care LED-ul de la primul Task e stins
 Incrementare/decrementare valoare a unei variabile la apăsarea a doua butoane care va
reprezenta numărul de recurențe/timp în care ledul de la al doilea task se va afla într-o stare
 Task-ul de Idle se va utiliza pentru afișarea stărilor din program, cum ar fi, afișare stare LED,
și afișare mesaj la detecția apăsării butoanelor, o implementare fiind ca la apăsarea butonului
sa se seteze o variabila, iar la afișare mesaj - resetare, implementând mecanismul
provider/consumer.

Teorie :
FreeRTOS este un sistem de operare open source, în timp real, pentru microcontrolere, care
face ca dispozitivele de dimensiuni mici, cu consum redus, să fie ușor de programat, implementat,
securizat, conectat și administrat.
Distribuit gratuit sub licența open source MIT, FreeRTOS include un nucleu și un set tot
mai mare de biblioteci software adecvate pentru utilizare în sectoare și aplicații industriale. Aceasta
include conectarea în siguranță a dispozitivelor dvs. mici, cu consum redus de energie, la serviciile
AWS Cloud precum AWS IoT Core sau la dispozitive Edge mai puternice care rulează AWS IoT
Greengrass .
FreeRTOS este construit cu accent pe fiabilitate și ușurință în utilizare și oferă
predictibilitatea lansărilor de asistență pe termen lung.
Un microcontroler conține un procesor simplu, limitat de resurse, care poate fi găsit pe
multe dispozitive, inclusiv aparate, senzori, trackere de fitness, automatizare industrială și
automobile. Multe dintre aceste dispozitive mici pot beneficia de conectarea la cloud sau local la alte
dispozitive, dar au o putere de calcul și o capacitate de memorie limitate și îndeplinesc de obicei
sarcini simple și funcționale.
Microcontrolerele rulează frecvent sisteme de operare care pot să nu aibă funcționalitate
încorporată pentru a se conecta la rețelele locale sau la cloud, ceea ce face ca aplicațiile IoT să fie o
provocare. FreeRTOS vă ajută să rezolvați această problemă oferind nucleului să ruleze dispozitive
cu consum redus de energie, precum și biblioteci software care facilitează conectarea în siguranță la
cloud sau la alte dispozitive marginale, astfel încât să puteți colecta date de la acestea pentru
aplicații IoT și să luați măsuri.
FreeRTOS include suport pentru Transport Layer Security (TLS v1.2) și PKCS # 11 pentru
a vă ajuta dispozitivele să se conecteze în siguranță la AWS. De asemenea, puteți programa cu
ușurință capabilitățile obișnuite IoT pe dispozitivul dvs., inclusiv biblioteci de software care vă ajută
să configurați dispozitivele într-o rețea locală utilizând opțiuni de conectivitate comune, cum ar fi
Wi-Fi sau Ethernet, sau să vă conectați la un dispozitiv mobil utilizând Bluetooth Low Energy.
FreeRTOS include, de asemenea, o bibliotecă de actualizare over-the-air (OTA) pentru a
actualiza de la distanță dispozitivele cu îmbunătățiri ale caracteristicilor sau patch-uri de securitate și
o caracteristică de semnare a codului pentru a vă asigura că codul dispozitivului dvs. nu este
compromis în timpul implementării și actualizărilor OTA.

FreeRTOS oferă tot ce aveți nevoie pentru a programa cu ușurință dispozitive conectate
bazate pe microcontroler și a colecta date de la acestea pentru aplicații IoT. Puteți începe alegând un
microcontroler calificat FreeRTOS din catalogul de dispozitive partener AWS . Apoi, puteți utiliza
consola AWS sau GitHub pentru a selecta și descărca biblioteci relevante FreeRTOS sau integrări
de referință IoT pre-validate. Accesați pagina noastră de începere pentru a afla mai multe despre
toate opțiunile.

Puteți conecta în siguranță dispozitivele FreeRTOS la servicii cloud precum AWS IoT
Core, la un dispozitiv local de margine sau la un dispozitiv mobil prin Bluetooth Low Energy și le
puteți actualiza de la distanță utilizând funcția de actualizare OTA disponibilă cu AWS IoT Device
Management. O integrare cu AWS IoT Device Defender facilitează raportarea cu privire la valorile
de pe partea dispozitivului pentru a detecta anomaliile atunci când aceste valori se abat de la
comportamentul așteptat.
Source Code FreeRTOS:
#include <Arduino.h>
#include <Arduino_FreeRTOS.h>
#include <semphr.h>
#include <stdio.h>

#const int tumblerButtonPin 2


#const int plusButtonPin 6
#const int minusButtonPin 7

SemaphoreHandle_t xSerialSemaphore;

bool tumbler = true;

const int ledPin = 13;

const int togglingLedPin = 12;


unsigned long relativeTime;
int togglingDelay = 500;

static FILE uartout = {0} ;

static int my_putChar( char ch, FILE * stream)


{
Serial.write( ch );
return 0;
}

void toggleLed(int delay) {


if (millis() >= relativeTime && !tumbler) {
digitalWrite(togglingLedPin, !digitalRead(togglingLedPin));
relativeTime = millis() + delay;
}
}

void TaskTumblerButtonHandler(void *pvParameters);

void TaskPlusButtonHandler(void *pvParameters);

void TaskMinusButtonHandler(void *pvParameters);

void TaskTogglingProcess(void *pvParameters);

void setup() {
fdev_setup_stream (&uartout, my_putChar, NULL, _FDEV_SETUP_RW);

pinMode(tumblerButtonPin, INPUT);
pinMode(plusButtonPin, INPUT);
pinMode(minusButtonPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(togglingLedPin, OUTPUT);
Serial.begin(9600);
relativeTime = millis();
stdout = &uartout ;
printf("Start");

while (!Serial) {
if (xSerialSemaphore == NULL) {
xSerialSemaphore = xSemaphoreCreateMutex();
if ((xSerialSemaphore) != NULL)
xSemaphoreGive((xSerialSemaphore));
}
}

xTaskCreate(
TaskTumblerButtonHandler, "TaskTumblerButtonHandler", 128, NULL, 2, NULL);
xTaskCreate(
TaskPlusButtonHandler, "TaskPlusButtonHandler", 128, NULL, 2, NULL);
xTaskCreate(
TaskMinusButtonHandler, "TaskMinusButtonHandler", 128, NULL, 2, NULL);
xTaskCreate(
TaskTogglingProcess, "TaskTogglingProcess", 128, NULL, 2, NULL);
}

void loop() {

void TaskTumblerButtonHandler(void *pvParameters __attribute__((unused))) {


int buttonState = 0;
int lastButtonState = 0;
int counter = 0;

while (1) {
buttonState = digitalRead(tumblerButtonPin);
if (buttonState != lastButtonState) {
counter++;
if (counter % 2 == 0) {
tumbler = !tumbler;
if (xSemaphoreTake(xSerialSemaphore, (TickType_t) 5) == pdTRUE) {
printf("on");
xSemaphoreGive(xSerialSemaphore);
}
if (counter >= 100000000) {
counter = 0;
}
} else {
if (xSemaphoreTake(xSerialSemaphore, (TickType_t) 5) == pdTRUE) {
printf("off");
xSemaphoreGive(xSerialSemaphore);
}
}
vTaskDelay(4);
}
lastButtonState = buttonState;
vTaskDelay(1);
}
}

void TaskPlusButtonHandler(void *pvParameters __attribute__((unused))) {


int plusButtonState = 0;
int lastPlusButtonState = 0;
int plusCounter = 0;

while (1) {
plusButtonState = digitalRead(plusButtonPin);
if (plusButtonState != lastPlusButtonState) {
// was pressed
plusCounter++;
if (plusCounter % 2 == 0) {
togglingDelay += 100;
if (xSemaphoreTake(xSerialSemaphore, (TickType_t) 5) == pdTRUE) {
printf("Plus button pressed \n");
printf("%d \n", togglingDelay);
xSemaphoreGive(xSerialSemaphore);
}
if (plusCounter >= 100000000) {
plusCounter = 0;
}
}
vTaskDelay(4);
}
lastPlusButtonState = plusButtonState;
vTaskDelay(1);
}
}

void MinusButtonHandler(void *pvParameters __attribute__((unused))) {


int minusButtonState = 0;
int lastMinusButtonState = 0;
int minusCounter = 0;

while (1) {
minusButtonState = digitalRead(minusButtonPin);
if (minusButtonState != lastMinusButtonState) {
// was pressed
minusCounter++;
if (minusCounter % 2 == 0) {
if (togglingDelay > 0) {
togglingDelay -= 100;
}
if (xSemaphoreTake(xSerialSemaphore, (TickType_t) 5) == pdTRUE) {
printf("Minus button pressed \n");
printf("%d \n", togglingDelay);
xSemaphoreGive(xSerialSemaphore);
}
if (minusCounter >= 100000000) {
minusCounter = 0;
}
}
vTaskDelay(4);
}
lastMinusButtonState = minusButtonState;
vTaskDelay(1);
}
}

void TogglingProcess(void *pvParameters) {


while (1) {
if (tumbler) {
digitalWrite(ledPin, HIGH);
digitalWrite(togglingLedPin, LOW);
} else {
digitalWrite(ledPin, LOW);
}

toggleLed(togglingDelay);
vTaskDelay(1);
}
}

timer.h
#include <Arduino.h>
#include <Arduino_FreeRTOS.h>

#define tumblerButtonPin 2
#define plusButtonPin 6
#define minusButtonPin 7

// sudo chmod a+rw /dev/ttyACM0

// on off button
int buttonState = 0;
int lastButtonState = 0;
int counter = 0;
bool tumbler = true;

// frequency buttons

// plus
int plusButtonState = 0;
int lastPlusButtonState = 0;
int plusCounter = 0;

// minus
int minusButtonState = 0;
int lastMinusButtonState = 0;
int minusCounter = 0;

// simple led
const int ledPin = 13;

// toggling led
const int togglingLedPin = 12;
unsigned long relativeTime;
int togglingDelay = 500;

//int buttonPushCounter = 0;

void toggleLed(int delay) {


if (millis() >= relativeTime && !tumbler) {
digitalWrite(togglingLedPin, !digitalRead(togglingLedPin));
relativeTime = millis() + delay;
}
}

void setup() {
pinMode(tumblerButtonPin, INPUT);
pinMode(plusButtonPin, INPUT);
pinMode(minusButtonPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(togglingLedPin, OUTPUT);
Serial.begin(9600);
relativeTime = millis();
Serial.println("Start");
}

void loop() {

// on off button
buttonState = digitalRead(tumblerButtonPin);
if (buttonState != lastButtonState) {
counter ++;
if (counter % 2 == 0) {
tumbler = !tumbler;
Serial.println("on");
if (counter >= 100000000) {
counter = 0;
}
} else {
Serial.println("off");

}
delay(50);
}
lastButtonState = buttonState;

// plus button
plusButtonState = digitalRead(plusButtonPin);
if (plusButtonState != lastPlusButtonState) {
// was pressed
plusCounter++;
if (plusCounter % 2 == 0) {
togglingDelay += 100;
Serial.println("Plus button pressed");
Serial.print(togglingDelay);
Serial.print("\n");
if (plusCounter >= 100000000) {
plusCounter = 0;
}
}
delay(50);
}
lastPlusButtonState = plusButtonState;

// minus button
minusButtonState = digitalRead(minusButtonPin);
if (minusButtonState != lastMinusButtonState) {
// was pressed
minusCounter++;
if (minusCounter%2 ==0) {
if (togglingDelay > 0) {
togglingDelay -= 100;
}
Serial.println("Minus button pressed");
Serial.print(togglingDelay);
Serial.print("\n");
if (minusCounter >= 100000000) {
minusCounter = 0;
}
}
delay(50);
}
lastMinusButtonState = minusButtonState;

if (tumbler) {
digitalWrite(ledPin, HIGH);
digitalWrite(togglingLedPin, LOW);
} else {
digitalWrite(ledPin, LOW);
}

toggleLed(togglingDelay);
}

Result:
Video: https://youtu.be/Cu7JI5pQx24
Concluzie :
În această lucrare de laborator am lucrat cu Sistemul de operare FreeTos, care este
destinat pentru programarea micropocesoarelor. Am studiat si folosit task-urile. Am realizat 3
task-rui care presupuneau, schimabrea ledului, incrementarea si decrementarea valorii unui led
la apasarea butonului.
Bibliografie :
https://commons.wikimedia.org/wiki/File:Freertos.svg

https://www.freertos.org/RTOS-RISC-V-FreedomStudio-QMEU.html

https://jaywang.info/using-native-freertos-in-stm32-microcontrollers/

S-ar putea să vă placă și

  • Damean Alexandra IOT5
    Damean Alexandra IOT5
    Document9 pagini
    Damean Alexandra IOT5
    Damean Alexandra
    Încă nu există evaluări
  • Damean Alexandra IOT4
    Damean Alexandra IOT4
    Document9 pagini
    Damean Alexandra IOT4
    Damean Alexandra
    Încă nu există evaluări
  • Damean Alexandra IOT6
    Damean Alexandra IOT6
    Document11 pagini
    Damean Alexandra IOT6
    Damean Alexandra
    Încă nu există evaluări
  • LL3 IoT ECiobanu
    LL3 IoT ECiobanu
    Document6 pagini
    LL3 IoT ECiobanu
    Ecaterina Ciobanu
    Încă nu există evaluări
  • IoT LL2
    IoT LL2
    Document9 pagini
    IoT LL2
    Anya Mr
    Încă nu există evaluări
  • IoT Laborator NR 2
    IoT Laborator NR 2
    Document10 pagini
    IoT Laborator NR 2
    crismaruion
    Încă nu există evaluări
  • Lab7 IOT
    Lab7 IOT
    Document8 pagini
    Lab7 IOT
    DanuIepuras
    Încă nu există evaluări
  • PPE Lab7
    PPE Lab7
    Document14 pagini
    PPE Lab7
    danielploaia
    Încă nu există evaluări
  • PS ME-091 Raspuns
    PS ME-091 Raspuns
    Document4 pagini
    PS ME-091 Raspuns
    Rusu Valeriu
    Încă nu există evaluări
  • Damean Alexandra IOT3
    Damean Alexandra IOT3
    Document8 pagini
    Damean Alexandra IOT3
    Damean Alexandra
    Încă nu există evaluări
  • IoT Exm
    IoT Exm
    Document73 pagini
    IoT Exm
    viorel amigo
    Încă nu există evaluări
  • PS TS
    PS TS
    Document14 pagini
    PS TS
    Victor Turculet
    Încă nu există evaluări
  • IoT LL1
    IoT LL1
    Document12 pagini
    IoT LL1
    Anya Mr
    100% (1)
  • IoT LL4
    IoT LL4
    Document4 pagini
    IoT LL4
    Anya Mr
    Încă nu există evaluări
  • IoT LL6
    IoT LL6
    Document8 pagini
    IoT LL6
    Anya Mr
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document4 pagini
    Lab 2
    Fil Gorea
    Încă nu există evaluări
  • 1arhitect Lab 2
    1arhitect Lab 2
    Document11 pagini
    1arhitect Lab 2
    UTM
    Încă nu există evaluări
  • Ppe 1-3
    Ppe 1-3
    Document86 pagini
    Ppe 1-3
    Doinita Dumanov
    Încă nu există evaluări
  • Lab 2 Pam
    Lab 2 Pam
    Document5 pagini
    Lab 2 Pam
    Augusta Bucataru
    Încă nu există evaluări
  • Examen IOC Chirtoacă Maxim
    Examen IOC Chirtoacă Maxim
    Document3 pagini
    Examen IOC Chirtoacă Maxim
    Maxim Chirtoacă
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document8 pagini
    Lab 1
    dtatn
    Încă nu există evaluări
  • Examen, TS, Bilet 75
    Examen, TS, Bilet 75
    Document1 pagină
    Examen, TS, Bilet 75
    Никита Баранов
    Încă nu există evaluări
  • Lab. Nr.1 - S.A.V - Ciubotaru Mihai
    Lab. Nr.1 - S.A.V - Ciubotaru Mihai
    Document10 pagini
    Lab. Nr.1 - S.A.V - Ciubotaru Mihai
    Mihai Ciubotaru
    Încă nu există evaluări
  • Examen TIDPP
    Examen TIDPP
    Document3 pagini
    Examen TIDPP
    Rosca Doinita
    Încă nu există evaluări
  • SEI Atest 1
    SEI Atest 1
    Document20 pagini
    SEI Atest 1
    Nicoleta Lesan
    100% (1)
  • Lab 4 TMPS BridgePattern
    Lab 4 TMPS BridgePattern
    Document4 pagini
    Lab 4 TMPS BridgePattern
    Guzun Ion
    Încă nu există evaluări
  • SOMIPP Lab 5
    SOMIPP Lab 5
    Document5 pagini
    SOMIPP Lab 5
    Augusta Bucataru
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document12 pagini
    Lab 1
    Nicolae Arpentii
    Încă nu există evaluări
  • Examen PW
    Examen PW
    Document71 pagini
    Examen PW
    DorinRotaru
    Încă nu există evaluări
  • Lab 1 Tmps
    Lab 1 Tmps
    Document5 pagini
    Lab 1 Tmps
    Victor Turculet
    Încă nu există evaluări
  • Lab 2 SI
    Lab 2 SI
    Document4 pagini
    Lab 2 SI
    UTM SOE-161
    Încă nu există evaluări
  • Proiect de Curs AMOO Druta
    Proiect de Curs AMOO Druta
    Document48 pagini
    Proiect de Curs AMOO Druta
    nn nnn
    Încă nu există evaluări
  • Iot 6
    Iot 6
    Document10 pagini
    Iot 6
    DanuIepuras
    Încă nu există evaluări
  • A1
    A1
    Document11 pagini
    A1
    Amarfii Sergiu
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document4 pagini
    Lab 3
    Rosca Doinita
    Încă nu există evaluări
  • Si PBL
    Si PBL
    Document230 pagini
    Si PBL
    Sorin Crăcană
    Încă nu există evaluări
  • Manual IOC
    Manual IOC
    Document55 pagini
    Manual IOC
    Popescu ionut
    Încă nu există evaluări
  • Ioc PDF
    Ioc PDF
    Document8 pagini
    Ioc PDF
    Victoria Bîlici
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document9 pagini
    Lab 1
    Cristian Conea
    Încă nu există evaluări
  • Iepuras Daniel LAB 3 TS
    Iepuras Daniel LAB 3 TS
    Document8 pagini
    Iepuras Daniel LAB 3 TS
    DanuIepuras
    Încă nu există evaluări
  • SI Nadejda Constantinescu Lab 1
    SI Nadejda Constantinescu Lab 1
    Document7 pagini
    SI Nadejda Constantinescu Lab 1
    Nadia
    Încă nu există evaluări
  • Atestare NR 2 Dutca Alexandru CR 182
    Atestare NR 2 Dutca Alexandru CR 182
    Document2 pagini
    Atestare NR 2 Dutca Alexandru CR 182
    Dutca Alexandru
    Încă nu există evaluări
  • PAD Laborator 1
    PAD Laborator 1
    Document15 pagini
    PAD Laborator 1
    Victor Negruta
    100% (1)
  • Programarea in Windows Lucrare de Laborator Nr. 2
    Programarea in Windows Lucrare de Laborator Nr. 2
    Document3 pagini
    Programarea in Windows Lucrare de Laborator Nr. 2
    Liviu Doloscan
    Încă nu există evaluări
  • Somipp Linux 2 UTM
    Somipp Linux 2 UTM
    Document7 pagini
    Somipp Linux 2 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • PCAD
    PCAD
    Document4 pagini
    PCAD
    Fiodor Ciumac
    Încă nu există evaluări
  • Lab 3 PS Nadia
    Lab 3 PS Nadia
    Document13 pagini
    Lab 3 PS Nadia
    Nadia
    Încă nu există evaluări
  • Raspunsuri La Ppe
    Raspunsuri La Ppe
    Document3 pagini
    Raspunsuri La Ppe
    dasfas
    Încă nu există evaluări
  • Lucrare de Laborator Nr1 SDA Ciobanu Cristina TI-194
    Lucrare de Laborator Nr1 SDA Ciobanu Cristina TI-194
    Document14 pagini
    Lucrare de Laborator Nr1 SDA Ciobanu Cristina TI-194
    David Turner
    Încă nu există evaluări
  • RC Examen
    RC Examen
    Document50 pagini
    RC Examen
    Belinschi Andrei
    Încă nu există evaluări
  • PS TS
    PS TS
    Document16 pagini
    PS TS
    Grosu Elena
    Încă nu există evaluări
  • Lab7 AMOO
    Lab7 AMOO
    Document11 pagini
    Lab7 AMOO
    Сергей Борта
    Încă nu există evaluări
  • Laborator NR.2
    Laborator NR.2
    Document9 pagini
    Laborator NR.2
    Daniil
    Încă nu există evaluări
  • PSI Lab 3
    PSI Lab 3
    Document10 pagini
    PSI Lab 3
    Nicolae
    Încă nu există evaluări
  • PR Lab2
    PR Lab2
    Document5 pagini
    PR Lab2
    Сергей Борта
    Încă nu există evaluări
  • PPE Lab4-5
    PPE Lab4-5
    Document8 pagini
    PPE Lab4-5
    danielploaia
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document5 pagini
    Lab 3
    Fil Gorea
    Încă nu există evaluări
  • Lab2 Somipp
    Lab2 Somipp
    Document6 pagini
    Lab2 Somipp
    Iov Albu
    Încă nu există evaluări
  • IoT2 Raport
    IoT2 Raport
    Document10 pagini
    IoT2 Raport
    crismaruion
    Încă nu există evaluări
  • Controale de Tip Fereastră Descendent: Hwndparent Getparent (HWND)
    Controale de Tip Fereastră Descendent: Hwndparent Getparent (HWND)
    Document33 pagini
    Controale de Tip Fereastră Descendent: Hwndparent Getparent (HWND)
    Dead inside
    Încă nu există evaluări
  • Damean Alexandra IoT 2
    Damean Alexandra IoT 2
    Document14 pagini
    Damean Alexandra IoT 2
    Damean Alexandra
    Încă nu există evaluări
  • Chestionar Evaluarea II La SAV
    Chestionar Evaluarea II La SAV
    Document21 pagini
    Chestionar Evaluarea II La SAV
    Damean Alexandra
    Încă nu există evaluări
  • ARC3 Damean Alexandra FI
    ARC3 Damean Alexandra FI
    Document10 pagini
    ARC3 Damean Alexandra FI
    Damean Alexandra
    Încă nu există evaluări
  • Damean Alexandra IOT3
    Damean Alexandra IOT3
    Document8 pagini
    Damean Alexandra IOT3
    Damean Alexandra
    Încă nu există evaluări
  • Tema 4. Mediul de Marketing
    Tema 4. Mediul de Marketing
    Document4 pagini
    Tema 4. Mediul de Marketing
    Damean Alexandra
    Încă nu există evaluări
  • Tema 7. Segmentarea Clienţilor
    Tema 7. Segmentarea Clienţilor
    Document3 pagini
    Tema 7. Segmentarea Clienţilor
    Damean Alexandra
    Încă nu există evaluări
  • Tema 2. Conceptul de Marketing
    Tema 2. Conceptul de Marketing
    Document3 pagini
    Tema 2. Conceptul de Marketing
    Damean Alexandra
    Încă nu există evaluări
  • Tema 8. Noţiune de Marfă. Strategia de Elaborarea A Mărfurilor
    Tema 8. Noţiune de Marfă. Strategia de Elaborarea A Mărfurilor
    Document4 pagini
    Tema 8. Noţiune de Marfă. Strategia de Elaborarea A Mărfurilor
    Damean Alexandra
    Încă nu există evaluări
  • Tema 5. Cercetări de Marketing
    Tema 5. Cercetări de Marketing
    Document4 pagini
    Tema 5. Cercetări de Marketing
    Damean Alexandra
    Încă nu există evaluări
  • Tema 10.promovarea Marfurilor Si Serviciilor
    Tema 10.promovarea Marfurilor Si Serviciilor
    Document5 pagini
    Tema 10.promovarea Marfurilor Si Serviciilor
    Damean Alexandra
    Încă nu există evaluări
  • Tema 3. Procesul de Gestionare A Marketingului
    Tema 3. Procesul de Gestionare A Marketingului
    Document3 pagini
    Tema 3. Procesul de Gestionare A Marketingului
    Damean Alexandra
    Încă nu există evaluări
  • SOMIPP
     SOMIPP
    Document6 pagini
    SOMIPP
    Damean Alexandra
    Încă nu există evaluări
  • Probleme 2
    Probleme 2
    Document3 pagini
    Probleme 2
    Damean Alexandra
    Încă nu există evaluări
  • SOMIPP7
    SOMIPP7
    Document3 pagini
    SOMIPP7
    Damean Alexandra
    Încă nu există evaluări
  • Raspunsuri Teste Examen
    Raspunsuri Teste Examen
    Document14 pagini
    Raspunsuri Teste Examen
    Damean Alexandra
    Încă nu există evaluări
  • Somipp 2
    Somipp 2
    Document8 pagini
    Somipp 2
    Damean Alexandra
    Încă nu există evaluări
  • Somipp SOMIPP5
    Somipp SOMIPP5
    Document6 pagini
    Somipp SOMIPP5
    Damean Alexandra
    Încă nu există evaluări
  • SOMIPP
     SOMIPP
    Document6 pagini
    SOMIPP
    Damean Alexandra
    Încă nu există evaluări