Handout for using STM32L1XX buit in bootloader
Along with its limitations which preluded us to develop customized bootloader (and rendered the built in bootloader as unuseable for our application, and hence freed the aggregated knowledge in this presentation to the public domain)
This slide deals with the Input-Output Channel of an IBM 370 computer. It includes three Block diagrams of the I-O channels as well as the Memory Unit with the Description of each and every diagrams.
Computer Architecture – An IntroductionDilum Bandara
Overview on high-level design of internal components of a computer. Cover step-by-step execution of a program through ALU while accessing & updating registers
This slide deals with the Input-Output Channel of an IBM 370 computer. It includes three Block diagrams of the I-O channels as well as the Memory Unit with the Description of each and every diagrams.
Computer Architecture – An IntroductionDilum Bandara
Overview on high-level design of internal components of a computer. Cover step-by-step execution of a program through ALU while accessing & updating registers
The Control Unit and the Arithmetic and Logic Unit constitute the Central Processing Unit
Data and instructions need to get into the system and results out
Input/output
Temporary storage of code and results is needed
Main memory
The Control Unit and the Arithmetic and Logic Unit constitute the Central Processing Unit
Data and instructions need to get into the system and results out
Input/output
Temporary storage of code and results is needed
Main memory
4bit pc report[cse 08-section-b2_group-02]shibbirtanvin
Report on Very Simple Computer Design & Implementation_
4bit PC_DSD_report[CSE-08_Section-B2_Group-02]
Courtesy:
Tanvir Al Amin Popel
Tanvir Ahmed Khan
Imtiaz Ahmad
This note is more helpful to S7 CSE students Under kerala University. It Contains the architecture and memory organization PIC 16f873 Microcontrollers.
Best-embedded-corporate-training-in-mumbaiUnmesh Baile
Vibrant Technologies is headquarterd in Mumbai,India.We are the best Embedded System training provider in Navi Mumbai who provides Live Projects to students.We provide Corporate Training also.We are Best Embedded System Programming classes in Mumbai according to our students and corporators
An Approach to Detecting Writing Styles Based on Clustering Techniquesambekarshweta25
An Approach to Detecting Writing Styles Based on Clustering Techniques
Authors:
-Devkinandan Jagtap
-Shweta Ambekar
-Harshit Singh
-Nakul Sharma (Assistant Professor)
Institution:
VIIT Pune, India
Abstract:
This paper proposes a system to differentiate between human-generated and AI-generated texts using stylometric analysis. The system analyzes text files and classifies writing styles by employing various clustering algorithms, such as k-means, k-means++, hierarchical, and DBSCAN. The effectiveness of these algorithms is measured using silhouette scores. The system successfully identifies distinct writing styles within documents, demonstrating its potential for plagiarism detection.
Introduction:
Stylometry, the study of linguistic and structural features in texts, is used for tasks like plagiarism detection, genre separation, and author verification. This paper leverages stylometric analysis to identify different writing styles and improve plagiarism detection methods.
Methodology:
The system includes data collection, preprocessing, feature extraction, dimensional reduction, machine learning models for clustering, and performance comparison using silhouette scores. Feature extraction focuses on lexical features, vocabulary richness, and readability scores. The study uses a small dataset of texts from various authors and employs algorithms like k-means, k-means++, hierarchical clustering, and DBSCAN for clustering.
Results:
Experiments show that the system effectively identifies writing styles, with silhouette scores indicating reasonable to strong clustering when k=2. As the number of clusters increases, the silhouette scores decrease, indicating a drop in accuracy. K-means and k-means++ perform similarly, while hierarchical clustering is less optimized.
Conclusion and Future Work:
The system works well for distinguishing writing styles with two clusters but becomes less accurate as the number of clusters increases. Future research could focus on adding more parameters and optimizing the methodology to improve accuracy with higher cluster values. This system can enhance existing plagiarism detection tools, especially in academic settings.
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsVictor Morales
K8sGPT is a tool that analyzes and diagnoses Kubernetes clusters. This presentation was used to share the requirements and dependencies to deploy K8sGPT in a local environment.
HEAP SORT ILLUSTRATED WITH HEAPIFY, BUILD HEAP FOR DYNAMIC ARRAYS.
Heap sort is a comparison-based sorting technique based on Binary Heap data structure. It is similar to the selection sort where we first find the minimum element and place the minimum element at the beginning. Repeat the same process for the remaining elements.
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesChristina Lin
Traditionally, dealing with real-time data pipelines has involved significant overhead, even for straightforward tasks like data transformation or masking. However, in this talk, we’ll venture into the dynamic realm of WebAssembly (WASM) and discover how it can revolutionize the creation of stateless streaming pipelines within a Kafka (Redpanda) broker. These pipelines are adept at managing low-latency, high-data-volume scenarios.
6th International Conference on Machine Learning & Applications (CMLA 2024)ClaraZara1
6th International Conference on Machine Learning & Applications (CMLA 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications.
We have compiled the most important slides from each speaker's presentation. This year’s compilation, available for free, captures the key insights and contributions shared during the DfMAy 2024 conference.
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
Understanding Inductive Bias in Machine LearningSUTEJAS
This presentation explores the concept of inductive bias in machine learning. It explains how algorithms come with built-in assumptions and preferences that guide the learning process. You'll learn about the different types of inductive bias and how they can impact the performance and generalizability of machine learning models.
The presentation also covers the positive and negative aspects of inductive bias, along with strategies for mitigating potential drawbacks. We'll explore examples of how bias manifests in algorithms like neural networks and decision trees.
By understanding inductive bias, you can gain valuable insights into how machine learning models work and make informed decisions when building and deploying them.
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
Online aptitude test management system project report.pdfKamal Acharya
The purpose of on-line aptitude test system is to take online test in an efficient manner and no time wasting for checking the paper. The main objective of on-line aptitude test system is to efficiently evaluate the candidate thoroughly through a fully automated system that not only saves lot of time but also gives fast results. For students they give papers according to their convenience and time and there is no need of using extra thing like paper, pen etc. This can be used in educational institutions as well as in corporate world. Can be used anywhere any time as it is a web based application (user Location doesn’t matter). No restriction that examiner has to be present when the candidate takes the test.
Every time when lecturers/professors need to conduct examinations they have to sit down think about the questions and then create a whole new set of questions for each and every exam. In some cases the professor may want to give an open book online exam that is the student can take the exam any time anywhere, but the student might have to answer the questions in a limited time period. The professor may want to change the sequence of questions for every student. The problem that a student has is whenever a date for the exam is declared the student has to take it and there is no way he can take it at some other time. This project will create an interface for the examiner to create and store questions in a repository. It will also create an interface for the student to take examinations at his convenience and the questions and/or exams may be timed. Thereby creating an application which can be used by examiners and examinee’s simultaneously.
Examination System is very useful for Teachers/Professors. As in the teaching profession, you are responsible for writing question papers. In the conventional method, you write the question paper on paper, keep question papers separate from answers and all this information you have to keep in a locker to avoid unauthorized access. Using the Examination System you can create a question paper and everything will be written to a single exam file in encrypted format. You can set the General and Administrator password to avoid unauthorized access to your question paper. Every time you start the examination, the program shuffles all the questions and selects them randomly from the database, which reduces the chances of memorizing the questions.
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdffxintegritypublishin
Advancements in technology unveil a myriad of electrical and electronic breakthroughs geared towards efficiently harnessing limited resources to meet human energy demands. The optimization of hybrid solar PV panels and pumped hydro energy supply systems plays a pivotal role in utilizing natural resources effectively. This initiative not only benefits humanity but also fosters environmental sustainability. The study investigated the design optimization of these hybrid systems, focusing on understanding solar radiation patterns, identifying geographical influences on solar radiation, formulating a mathematical model for system optimization, and determining the optimal configuration of PV panels and pumped hydro storage. Through a comparative analysis approach and eight weeks of data collection, the study addressed key research questions related to solar radiation patterns and optimal system design. The findings highlighted regions with heightened solar radiation levels, showcasing substantial potential for power generation and emphasizing the system's efficiency. Optimizing system design significantly boosted power generation, promoted renewable energy utilization, and enhanced energy storage capacity. The study underscored the benefits of optimizing hybrid solar PV panels and pumped hydro energy supply systems for sustainable energy usage. Optimizing the design of solar PV panels and pumped hydro energy supply systems as examined across diverse climatic conditions in a developing country, not only enhances power generation but also improves the integration of renewable energy sources and boosts energy storage capacities, particularly beneficial for less economically prosperous regions. Additionally, the study provides valuable insights for advancing energy research in economically viable areas. Recommendations included conducting site-specific assessments, utilizing advanced modeling tools, implementing regular maintenance protocols, and enhancing communication among system components.
1. ST built-in Boot Loader
By Omer Korech
Applicable to: STM32L1XX
Due to the technical limitations that will be detailed below,
my company has decided not to use ST built in boot loader
therefore this presentation is released for the public
in hope not to repeat our mistakes
2. Added value in brief
Undocumented important Takeaways:
– When running from bank 2 (nBFB2 = 0),
an attempt to update firmware from system memory
will FAIL, because it will result in jumping back to bank 2
– Unlike STM32L0XXX and STM32L4XXX,
nBFB2 does not result in bank swap
– A concrete bootloader flowchart is presented in slide #7
4. ARM Cortex-M Start UP Sequence
• Electronically
– Fetch Stack Pointer from address 0x00
– Fetch Program Counter from address 0x04
• Software
– Execute assembly function Reset_Handler
Initialize vector table and call the followings:
– Execute c function SystemInit
Initializes clocks and VTOR
– Execute assembly function __iar_data_init3Initialize
Initializes variables
– Call function main
User program
But address 0x00 does not exist in Flash !
It is mapped to other address (0x08000000 in normal execution)
5. System Memory
• Written in ROM within the Flash
• Has two functions:
– Firmware update
(When nBFB2 = 1)
– Execute code from bank 2
(When nBFB2 = 0)
6. nBFB2 bit
• nBFB2 = 1 at startup
– Normal Execution
• nBFB2 = 0 at startup
– Address 0x00 is mapped electronically to System memory
– System memory Jumps to bank 2
• Undocumented important Takeaways:
– When running from bank 2 (nBFB2 = 0),
an attempt to update firmware from system memory
will FAIL, because it will result in jumping back to bank 2
– Unlike STM32L0XXX and STM32L4XXX,
nBFB2 does not result in bank swap
7. Wrtieto EEPROM:
Go_to_BL_Flag=1
Yes
Wake up
from Reset
Go_to_BL_Flag=0
Remap 0x00 to BLflash
Set stackpointer to BLStack
Jump to BL
Yes
Software
Reset
nBFB2 ==1 ?
Field Upgrade
Request ?
Normal code
Run from bank 2
No
Communication
with BL
Established ?
Establish
communication
with BL
Error message
(in application)
Reset (Opt. Byte)
No Writecodeto Bank2
And / Or Datato Bank1
Read To ValidateOK?
Set nBFB2 =0
(Initiatesreset)
Yes
No
Yes
Go_to_BL_Flag==1 ?
No
Remap 0x00
to Flash 2
Remap 0x00 to Flash1No
Set nBFB2 =1
Coderun from bank 1
Field Upgrade
Request ?
No
Yes
Yes
8. BL.C
#include "BL.h"
void GoToBootLoader(void)
{
//Initializing the arguments for HAL functions
FLASH_AdvOBProgramInitTypeDef OBbank1;
OBbank1.BootConfig = OB_BOOT_BANK1;
OBbank1.OptionType = OPTIONBYTE_BOOTCONFIG;
// Write to EEPROM that BootLoader should be executed
HAL_FLASHEx_DATAEEPROM_Unlock();
HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_WORD,
EEPROM_Address_Mode_Of_Execution,
ShouldExecuteBootLoader);
//Change to (or stay at) bank1 and reset the device
HAL_FLASH_OB_Unlock();
HAL_FLASHEx_AdvOBProgram(&OBbank1);
HAL_FLASH_Unlock();
HAL_FLASH_OB_Launch();
}
9. void SystemInit (void)
// Define our function pointer
void (__code*SysMemBootJump)(void);
// Set system memory address.
volatile uint32_t addr = BootLoaderMemoryLocation;
if(…) // MCU was Set to be boot from bank 1
if ( // Jump to boot loader request is registered
// Reset our trigger
HAL_FLASHEx_DATAEEPROM_Erase(FLASH_TYPEPROGRAM_WORD, EEPROM_Address_Mode_Of_Execution);
//Set jump memory location for system memory
SysMemBootJump = (void (*)(void)) (*((uint32_t *)(addr + 4 )));
//Remap system memory to address 0x0000 0000 in address space
__HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH();
SCB->VTOR = 0; // BootLoaderMemoryLocation; Since 0 is mapped to system memory
__set_MSP(*(uint32_t *)addr);
// Point the PC to the System Memory reset vector
SysMemBootJump();
}
else{ // Running Code from bank 1
SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH.*/
}
}
else // run from bank2
{
SCB->VTOR = FLASH_BANK2_BASE | VECT_TAB_OFFSET;
}
10. Requirement from external application
Input
The input to the external (smarthphone) is a binary file of
size X bytes,
where in our case 0x38000 < X < 0x40000 changes from
one update to the other.
Goal
The binary file is to be copied into flash, where the first
byte is copied to address UpdateCodeStartAddress and
the last address is to be copied to
UpdateCodeStartAddress + X, where
UpdateCodeStartAddress = 0x08008000.
After the file is copied (and verified that it is copied
correctly), the micro-controller should be booted from
bank 2.
11. Bootloader limitations
ST bootloader has limited address range allowed to be written (all of
bank 1 and ½ of bank 2).
Usually two valid applications should be available, in order to
accommodate a failure during update of one of the versions.
If the application requires more than ½ the space of a bank, only one
out of the two application may be updated
Why?
Hint: The firmware update by ST built in bootloader may only take
place when nBFB2 = 1.
Due to the above limitation, it has been decided to use custom boot
loader, and therefore this presentation is brought back to the public
domain (as all of my knowledge was learned from the public domain)
12. Memory banks in STM32L1XX
Two Banks
All of Bank 1 and Half of Bank 2 are accessible
by ST ROM Bootloader
Factory Code @ Bank1
(start address 0x08000000)
Updated Code @ Bank2
(start address 0x08040000)
Updated Graphics data @ bank 1
(start address 0x08008000)
Factory Graphics data @ bank2
(start address 0x08048000)