Atoliic TrueStudio, STL Linker, STM32F407 Discovery Kit
Project installation files - https://drive.google.com/drive/folders/1Qda3X5TBNdP7TIRw4iMCDkEmkc2ffdsa?usp=sharing
25.1.22
Open source H/W development
PLC (Programmable logic controller)
STM 32 - ARM 32 bit controller
ARM single core -> multicore -> (multi stage boot processing?) -> integrate with real time OS -> design and dev of device drivers
Industrial applications - GPIU, UART drivers, developing small library routines (test with STM devices)
To-Do:
Revise C
bitwise, unions, fxn prototypes
learn how to read datasheets
Edit-
STM32F407 pin structure, datasheet - go through
22.2.22
Call led APIs
Call different leds for different tasks
Suspend it for a few seconds 1000ms
4 tasks - one by one using rtos
To check if the scheduler is working fine
Fix1: heap error
Make a new folder and add these files : libs.ld; men.ld; sections.ld
Project -> Properties -> C/C++ Build -> Settings -> Tool settings -> C Linker -> append by adding -T “location\of\the\3files” separately
Fix2: calling stlmain(); in main
Include this prototype -
extern void stlmain(void);
25.2.22
Tasks:
Offline - becomes active if event occurs for that; event driven task
Periodic- becomes active when timer expires /timeout happens
Online and background- cycle repeats automatically
Offline class will work without timer by suspending for 1 sec. Similarly for periodic.
Note : this is not freeRTOS
Edit - read up on rtos scheduling
suspend works, millisec delay doesn't. why??
1.3.22
task to be done - write a timer function.
Go through the datasheet and understand timers. Timer #2.
Implement for periodic functions.
Online:
T1 Blue LED ON
T2 Red LED ON
T3 Green LED ON
T4 Yellow LED ON
Offline: T5 Blue LED OFF
PRDC: T6 Red LED OFF
BGND: T7 all LEDs OFF
Assignments:
- Test all the task functions
- Learn how timer software is coded
- Start UART concept in STM32
write UART driver ( printf statements)
learn how to make GPIO connections to RS232 serial cable
HAL interface
GPIO based drivers
25.4.22
Tera Term setup -
Receive tab - Auto
Transmit tab - CR + LF
rest - default
need to write IRQ interrupts (GPIO based)
whenever the pin is high/low, interrupt s/w is needed
interrupts - asynchronous time
periodic task - configure period and print
IRQ - only for offline tasks