►
Description
Scheduler for dynamic patching of task. It's based over FreeRTOS and it helps the user to dynamically update / patch the task without the need for system reboot.
A
So
hopefully
that'll
start
recording
now
any
oh
there.
It
goes
okay
right
so
shall
I
start
sharing
my
screen,
anshul
and
then
I'll
I'll
say
a
little
bit
and
then
you'll.
You
know
you
can
give
us
the
the
demo
of
the
the
finishing
off
this
iteration
of
work.
A
A
So
so
yeah,
so
we've
got
a
little
little
presentation
here.
I
wonder
if
I
can
get
rid
of
that
yeah,
that's
better
a
little
presentation
here
that
just
goes
through
what
problem
needs
to
be
solved,
so
this
is
just
a
reminder
for
those
that
maybe
are
new
to
this.
This
development
that
we've
been
undertaking
over
probably
since
june
last
year,
so
sort
of
sort
of
thing.
A
So
this
is
a
kind
of
actual
in
his
in
his
spare
time,
giving
up
his
time
to
sort
of
try
and
further
this
work.
So
I'll
just
describe
what
problem
he's
trying
to
solve.
There's
a
little
bit
about
requirements:
analysis
where
we
are
in
the
project.
What
we're
trying
to
do
angel's
then
going
to
give
us
a
little
demo
and
then
there's
a
there's,
a
sort
of
open
time
for
questions
and
we'll
then
discuss
the
next
steps
on
the
project.
A
But
what
I
will
say
is
ansel
is
a
very
as
as
all
very
you
know,
intelligent
and
clever
people.
We
have
a
tendency
and
I'll
say
we,
because
I
include
myself
in
that
category
yeah,
I
know
yeah,
but
we
we
have
a
tendency
to.
You
know
dive
into
the
you
know
the
ones
and
zeros
quite
quickly
and
what
I
want
to
encourage
everybody
on
the
call.
A
If
you
don't
understand
something,
please
ask
there
and
then
don't
leave
it
just
you
know
this
is
kind
of
a
you
know,
we're
inviting
for
people
to
try
and
understand
what's
being
presented
rather
than
kind
of
go.
I
understood
it
up
to
a
certain
point
and
now
I'm
lost
but
not
saying
anything
if
that
makes
sense.
So
if
everybody's
comfortable
with
that.
A
Directing
everybody,
no,
I
mean
and
you're
very
capable
as
well.
You
know,
I
put
you
in
that
same
category,
I'm
just
I'm
just
aware
that
you
know
you're,
not
a
you
know
a
software
engineer
in
the
same
sense,
but
so
yeah.
Here
we
go
so
intros
you.
You
probably
know
this.
I
think
most
people
on
the
call
so
anshul
is
currently
working
for
oracle.
A
Still.
Are
you
working
for
oracle?
Still
that's
kind
of
what
he's
doing
in
his
day
to
day,
but
do
you
want
to
say
a
little
bit
something
about
yourself
actually.
B
Yeah,
so
my
main
job
is
with
oracle
working
on
hypervisors.
B
Apart
from
that,
my
open
source
contributions
are,
I
have
I'm
collaborating
with
case
developing
dynamic
scheduler
and
my
other
collaboration
with
is
with
open
research
institute
for
that
I'm
doing
some
fpga
work
for
trans
receiver.
So
yeah,
that's
a
brief
about
me.
A
Yeah,
and
just
so
you
know,
angel
we're,
we're
sort
of
developing
links
with
the
open
research.
Institute's
time
goes
on
as
well,
okay,
which
you
may
or
may
not
be
aware
of,
but
but
I
thought
I'd
mention
it.
A
I
am
so
I'm
just
someone
who's
trying
to
organize
open
source
software
collaborations,
so
work
started
in
july,
2020
part
of
the
open
source
satellite
program,
so
everything
that's
being
developed,
will
go
open
source
and
we're
hoping
to
do
that
very
soon.
But
you
know
before
we
get
to
that
point.
Let's
talk
about
the
problem,
so
we
need
to
be
able
to
modify
code
in
orbit
and
typically,
the
way
this
has
been
done
in
the
past,
with
certain
technologies
is
to
upload
small
patches
of
software.
A
A
So
that's
kind
of
you
know
it
takes
a
little
bit
more
bandwidth
to
get
the
the
data
up
to
the
spacecraft
and
there's
there's
associated
risks
with
you
know,
swapping
out
tasks
in
that
manner,
but
the
more
sort
of
kind
of
safer,
but
also
problematic
way
of
doing
things
is
to
do
a
full-time
image
replacement.
So
that's
where
you've
got
one
image
of
you
know
one
bunch
of
ones
and
zeroes,
which
makes
up
your
program,
and
now
you
want
to
switch
to
a
different
set
of
ones
and
zeros.
A
That
makes
up
your
program
and
the
problem
being
you've
got
to
completely
reset
the
processor
and
you've
got
to
start
from
stage
one
if
you
get
my
meaning
so
any
context
that
that
that
software
had
is
kind
of
lost
in
that
process,
which
is
not
very
not
very
good
from
a
availability
point
of
view,
it's
not
very
good
from
a
attitude
control
point
of
view,
because
the
spacecraft
can
go
out
of
control
in
in
the
meantime,
so
that
you
know
there's
there's
kind
of
downsides
to
this
to
this
third
one,
the
the
main
downside
is
that
you
have
to
upload
the
entire
image
which
can
be
quite
slow
depending
upon
its
size
and
depending
upon
the
bandwidth
available
to
you
on
the
rf
link.
A
So
we
tend
we
wanted
to
be
able
to
do
these
first
two
approaches.
You
know
task
replacement
and
software
patching
and
the
chosen
operating
system
in
its
free
rtos.
A
It's
got
a
shortfall
in
the
sense
that
it
it
doesn't
really
support
this
kind
of
functionality
to
be
able
to
replace
a
task
at
runtime
it
doesn't
it
it
kind
of
does,
because
it
has
this.
This
api
call
called
x
task,
create,
which
can
be
called
any
point.
So
you
could,
you
know,
create
a
task
at
any
point,
the
problem
being
that
you
need
to
be
able
to
link
dynamically
the
uploaded
thing
that
you're
uploading
to
the
already
existing
software
and
that's
the
tricky
bit.
A
That's
that's
the
bit
which
we're
which
we're
looking
for
anshul
to
sort
of
help
us
with
and
fulfill.
A
So
the
tricky
case
is
kind
of
illustrated
here.
Let's
say,
you've
got
a
aocs
task
and
you
have
another
task
over
here:
gathering
historical
telemetry
and
both
of
them
make
an
api
call
to
fetch,
telemetry
and
they're
fetching
that
telemetry
from
this
task.
This
telemetry
server
task,
but
you
know
you've
got
a
bug
in
here
that
you
need
to
fix.
So
you
need
to
replace
this
this
task
and
the
problem
with
doing
so
is
that
these
links
that
you
know
this.
A
A
The
the
project
to
date
has
we've
done
an
iteration
one,
which
was
completed
in
february
2021.
We
ran
two
different
elf
files,
so
just
so
you
know,
an
l
file
is
like
an
executable
sort
of
it's.
It's
it's
a
format
of
a
file
which
describes
where
the
functions
and
the
the
the
software
functions
are
going
to
be
located
and
it's
typically
the
output
from
the
compiler
and
the
linker
and
normally
what
you
do
well.
Normally,
if
you,
if
you
have
like
a
free,
rtos
distribution,
you
only
have
one
elf
file.
A
So
you
know
you
build
all
of
the
code
into
one
lump,
which
is
one
l
file.
Now
that
poses
a
problem
because
we
want
to
be
able
to
upload
more
than
one
thing.
So
we
wanted
to
demonstrate
the
you
know,
working
with
two
l
files,
so
one
with
one
lot
of
code
and
one
with
another
bit
of
code
and
then
kind
of
mashing
them
together
on
on
something
representative
to
demonstrate
that
that's
possible
with
freeattas
running
as
well.
A
So
we
did
that
and
ansel
demonstrated
that
with
chem.
U,
which
is
the
this
sort
of
arm
simulator
that
runs
on
an
x86
or
a
windows
or
linuxc
sort
of
environment.
A
And
then
there's
iteration
two
which
hopefully
we're
going
to
complete
today.
So
that's
running
one
execute
executable
task
on
target,
which
is
software,
including
free
rtos.
So
it's
quite
a
lump
of
software.
You
know
including
free
art,
ours
and
lots
of
bits,
and
then
we
then
anshul's
going
to
demonstrate
the
upload
via
uart
of
an
elf
file.
A
That
includes
only
a
single
free,
rtos
task,
so
this
is
onto
a
real
target
now,
so
we're
we've
removed
chemu
and
we're
actually
doing
this
for
real
on
a
real
target
and
the
target
he's
using
is
a
stm32
nucleo
board
similar
to
the
one
that
ben
is
using
that
jamie's,
using
that
I'm
using
we're
all
pretty
much
using
the
same
sort
of
hardware.
A
It
yeah
and
then
execution
of
that
newly
uploaded
task
without
resetting
the
processor.
So
no
no
processor
reset
required.
It's
still
running
the
code,
it
was
running
and
I
think
yeah,
and
so
this
is
the
scope
anyway
of
the
iteration.
A
The
only
thing
that
we
haven't
done
so
far
is
to
make
that
that
open
source,
so
we
haven't
got
to
that
stage.
Yet
we
have
everything
in
a
private
github
repository
and,
as
you
might
know,
we've
also
engaged
with
richard
barry
along
the
way,
who
is
the
author
of
friatas,
who
seem
quite
interested
in
what
we're
doing
he's
gone
quite
quiet,
since
we
did
our
first
demo,
which
is
a
bit
of
a
shame.
So
I
think
maybe
one
of
the
actions
is
to
try
and
follow
up
with
him.
A
So
I'll
make
a
note
of
that
now,
because
I
think
his
involvement
is
is
really
interesting,
because
this
is
something
that
could
be
useful
outside
of
the
open
source
satellite.
C
How
does
that
work
with
our
free
rtops?
Because,
obviously,
is
there
somebody
who
owned,
who,
who
basically
looks
after
free
rtots
and
only
lets
in
things
that
they're
happy
with,
because
obviously
you're
then
releasing
this
that
works
with
free
articles?
How
does
just
do
they
have
to
sign
off
on
this,
or
can
you
just
release
it,
and
and
people
can
use
it
with
free
assets
if
they
want
to.
A
Well,
it's
it's
completely.
It
works
without
modifications
to
friata's,
so
it's
it's
kind
of
standalone
bit
of
code,
and
so
we
could
release
it
under
our
own
banner.
You
know
without
really
affecting
friatos,
but
richard
barry
has
an
interest
in
it
and
may
want
to
in
some
way
incorporate
aspects
of
it
more.
You
know
into
friata
as
as
a
thing
if
you
get
the
meaning
yeah.
So
that's
that's
a
good
reason
to
to
talk
to
him
plus.
Obviously
he
has
got
a
lot
of
contacts
in
the
embedded
industry
as
well.
A
Okay,
so
just
going
through
this
demo,
then
so,
as
I
said
stage,
one
we'll
upload
free,
rtos
and
base
task
one.
So
that
comes
in
from
stm
cube,
which
is
our
development
environment.
It
goes
on
to
this
to
this
development
board.
I've
got
the
wrong
one
pictured
here,
but
but
you
get
the
idea.
A
So
we
have
this
kind
of
stage
three,
which
is
you
know
where
we're
we're
at
both
tasks
are
actually
running.
A
Yeah,
so
it
just
me,
it
means
what
it
kind
of
sounds
like
it
means
it
it
it's
basically
just
both
tasks
running
simultaneously,
so
they're
actually
separated
that
you
know
when
we
say
replacement.
What
we
mean
is
we're
uploading,
a
replacement
task
to
a
different
location
of
memory,
so
it
doesn't
mean
that
the
other
one
disappears.
It's
still
there.
C
C
A
Yeah
yeah
well,
yeah
I
mean
as
it
stands.
They
can
use
resources
simultaneously.
They
can
do
things
independently,
so
in
in
the
case
of
a
ao,
let's
say
we
were
to
make
this
a
real
sort
of
you
know,
take
it
to
the
to
a
real
situation
where
we
have
an
aocs
task
and
we
want
to
replace
it.
We
probably
wouldn't
do
this,
which
is
to
to
run
them
simultaneously
for
a
time
and
then
replace
one
with
the
other.
A
B
C
Okay,
so
in
the
in,
if
you're
doing
this
in
real
life,
as
paul
says,
you
would
basically
upload
it
and
hand
over
almost
like
immediately
to
the
okay,
okay.
A
A
Yeah,
that's
right
it
just
kind
of.
As
you
see
the
demo,
it
probably
helps
you
to
understand.
What's
going
on
a
little
bit
better,
if,
if
you
have
that
point
three
in
there,
so
it's
really
more
for
a
demo
purpose,
really,
okay,
so
yeah!
So
I
think
at
that
point
I
will
hand
over
to
anshul
I'll
stop
sharing
my
screen.
B
So
paul,
how
do
you
want
me
to
go?
Shall
I
go
through
the
some
of
the
slides
that
were
there
earlier.
A
B
So
yeah
this
is
the
part
that
you
should
actually
just
to
go
over
the
requirements
quickly.
One
of
the
basic
requirement
was,
we
don't
want
the
reboot
process,
that's
highly
unwanted,
because
all
the
context
of
all
that
other
tasks
that
are
in
the
system
that's
removed.
D
B
Yeah
so
one
of
the
one
of
the
most
important
requirement
was
we
don't
want
this
complex,
reboot
process
to
happen.
All
the
tasks
will
will
lose
their
context.
Many
cpu
cycles
are
wasted,
so
we
don't
want
that.
Along
with
that,
we
want
that
the
software
should
always
remain
in
an
up-to-date
state.
B
So
and
third
one
was
that
all
these
things
should
happen
with
with
limited
amount
of
bandwidth,
because
ultimately
we
have
to
upload
the
patch
from
the
ground
station
to
the
satellite.
So
these
were
the
three
basic
requirements
based
on
which
I
focused
on
my
designing
part.
B
So
design
consideration,
as
I
mentioned,
small
footprint
and
program
memory,
that
should
be
there.
Another
thing
is
that
free
rtos,
it's
quite
a
huge
monolithic
blob,
so
that
has
to
be
separate
from
the
application
binaries
or
the
tasks
that
we
will
be
uploading
from
the
ground
station.
So
those
have
to
be
completely
different
part.
Otherwise
the
whole
purpose
is
lost.
A
B
That's
very
important
because
in
the
main
system
module
and
as
as
we
have
discussed
discussed
in
the
past
on
the
satellite,
we
have
main
system
module,
it
will
be
running
telemetry
and
everything
and
everything
will
be
running,
maybe
on
top
of
free
rtos
or
along
with
free
autos,
so
that
should
remain
stable
and
whatever
we
want
to
upload
whatever
tasks
we
want
to
execute,
we
should
be
able
to
transfer
those
tasks
from
the
ground
station
to
the
to
the
to
the
satellite
and
and
at
runtime.
B
Those
tasks
should
start
executing,
so
it
should
be
kind
of
plug-in
architecture.
That
was
my
design
consideration
again.
Another
important
aspect
was
no.
Changes
should
be
made
on
free
rtos,
so
whatever
I
have
to
do,
it
has
to
be
based
on
top
of
free
order.
So
that's
what
again
I
have
taken
care
and
then
again
minimum
performance
overhead,
and
I
I
do.
I
divide
free
outdoors
and
my
solution
into
different
components.
B
So
this
is
an
implementation
overview.
Just
to
give
you
a
high
level
overview,
so
application
binaries
are
compiled
independently
from
the
system.
Binaries
application
binaries
are
position
independent
and
relocate.
Well,
it's
a
software
term,
but
it
helps
to
place
the
binaries
in
whatever
memory
location.
I
want
on
the
card.
Yeah.
C
A
Yeah,
so
I
think
from
from
our
perspective,
what
we
need
to
do
is
identify
those
components
which
are
likely
to
require
changing
you
know
and
then
separate
them
architecturally
into
different
compilable
artifacts,
so
that
we,
you
know
the
obvious
one
is
aocs,
isn't
it
there?
There
will
be
others
as
well,
some
payload
stuff,
perhaps-
and
maybe
even
some-
you
know
service
layer,
things
like
telemetry
capturing
and
things
like
that.
So
there's
yeah.
A
C
Something
that
is
a
a
bigger
elf
file
that
consists
of
several
things.
Several
tasks
you'd
have
to
upload
that
entire
alpha,
because
you,
you
know,
I'm
just
thinking
two
years
into
a
mission,
you
might
suddenly
find
a
bug.
I
know
you
know.
Sometimes
you
do
find
you
know,
because
you
just
happen
to
end
up
in
a
place
where
you
didn't
expect
to,
and
so
on,
something
that
you
consider
robust
and
heritage.
You
might
still
need
to
make
a
a
mod
yeah.
A
C
A
Yeah-
and
I
think
it's
worth
pointing
out
that
if,
if
that
were
to
be,
let's
say
that
that
that
bug
was
found-
let's
say
even
in
the
free
artist
operating
system
and
we
need
to
make
a
change
there.
I
would
imagine
the
and
correct
me
where
I'm,
if
I'm
wrong
here
anshul,
but
my
feeling
is
we
probably
have
to
then
you
know,
revert
back
to
uploading
everything.
You
know
yes,
rather
than
trying
to
patch
a
particular
task
on
top
of
friatos.
A
So
you
know
that
said
three
artists
is
pretty
stable
as
far
as
software
goes,
so
the
things
that
are
likely
much
more
likely
to
be
wrong
are
the
things
that
are
more
sort
of
mission,
specific
or
or
new.
So.
C
B
That's
the
whole
intention
yeah
so,
and
it's
if
you
want,
if
you
think
that
some
of
the
binaries
are
quite
stable
enough
and
they
are,
they
should
be
part
of
the
system.
Then
you
can
make.
Then
you
can
compile
them
along
with
free
outdoors.
So
you
have
that
flexibility.
Also,
then
they
will
be
as
part
of
free
autos
and
others
can
be
loaded
independently.
B
So
system
binary
is
compiled
and
loaded
and
it's
its
execution
start.
Then
system
system
binary
loads,
the
application
binary.
If
the
application
binary
has
been
compiled
along
with
system
binary,
otherwise.
B
Then
the
application
binary
execution
start
then
next
step.
If
you
want
to
upload
any
application,
v1
binary,
then
it's
uploaded
from
the
ground
station.
The
app
v1
is
registered,
allocated
and
link.
Then
task
state
of
app.
The
old
binary
is
transferred
to
app
v1.
Then
the
old
app
is
halted
and
app.
V1
starts
so
yeah.
B
B
So
what
are
the
main
modules?
Important
thing
is,
while,
while
designing
there,
there
was
always
an
option
of
using.
As
paul
knows,
there
was
an
option
of
using
jump
tables
or
other
approaches.
I
went
with
elf
because
it
allows
me
to
control
all
the
aspects
of
a
binary.
B
B
So
I
wanted
to
control
all
the
aspects
of
this
binary
because
it's
quite
critical
path
and
that's
why
I
went
for
elf
binary
and
now
what
all
things
all
the
things
that
os
does
within
elf
binary.
Now
my
module
is
doing
before
handing
the
binary
to
free
rtos
operating
system.
So
I
have
my
module
for
memory
allocator
that
will
read
the
elf
allocate
the
memory
whether
it's
dynamic,
static.
Whatever
elf
says,
I
will
do
that
it
will.
B
I
will
register
it
with
a
binary
tree,
I'm
using
a
binary
tree
to
keep
track
of
all
the
application
binaries
that
I
am
running
and
then
we'll
link
all
the
tasks.
So
basically
all
the
things
that
os
does-
I
am
doing
in
my
own
module
so
as
to
keep
control,
keep
complete
control
of.
I
keep
complete
control
and
track
of
all
the
application
binaries.
I
am
executing
in
my
system.
A
And
when
we're
talking
just
go
back
to
your
previous
slide
here,
anshul
about
splay
tree
and
red
black
tree,
could
you
just
give
us
an
overview
of
what
what
you
mean
by
that.
B
Yes,
so
when,
when
and
when
a
task
is
registered,
then
I
keep
an
entry
in
the
splay
tree
or
there
is.
There
is
a
splay
tree
and
a
red
black
tree.
Then
each
of
the
memory
modules
memory
areas
that
it
allocates
again.
I
keep
them
in
the
in
the
tree,
and
this
helps
me
for
quick,
searching
and
replacement.
A
Okay,
yes,
so
so
it's
a
way
of
it's
a
way
of
organizing
memory
from
you
know
what
you,
what
you're
interpreting
from
the
elf
file,
so
the
l
file
stay
here.
The
stack
is
here
and
the
let's
say
that
the
heap
is
here
and
the
you
know
that
there's
some
I
don't
know
some
members.
Some
memory
for
this
function
requires.
A
B
Yeah
local
variables
are
here:
there
are,
there
can
be
as
we
as
we
as
the
size
of
modules
grow.
There
can
be
multiple
heaps,
multiple
memory,
multiple
malloc
calls.
So
all
these
things
and
it's
the
same
thing-
that's
used
in
linux,
kernel
linux
kernel
also
uses
red
black
tree
to
track
memory
allocations.
C
B
B
A
Yeah
then,
this
is
why
we
got
angel
doing
this.
He
is
a
master
of
everything
linux
kernel,
which
yeah
that's
that's
beyond.
B
So
yeah
code
flow,
it
will
be
better
understood.
Okay,
let
me
go
through
it.
So
elf
binary
is
inserted
into
the
memory.
It's
again
a
bit
of
repetition,
but
just
at
high
level,
elf
binary
is
inserted
into
the
memory
the
system
as
a
whole,
how
it
recognizes
it
recognizes
all
the
tasks
and
their
entry
points
via
e-left
binary.
B
The
system
registers,
all
the
tasks
to
a
task
manager
task
manager
is
an
entity
again.
It's
it's
a
part
of
system
layer,
that's
just
that
sits
above
free
rtos
and
it
makes
the
entries
into
the
red
black
tree
and
splay
trees.
So
that's
the
role
of
task
manager,
it
registers
all
the
tasks
that
are
executing
in
the
system
system
is
able
to
create
new
free,
autos
task
with
now
once
the
task
is
registered.
B
A
And
one
one
thing
I
should
mention:
we
do
have
a
a
risk.
I
have
an
action
to
sort
of
log
the
risks
on
on
the
on
the
projects
and
we've
got
one
about
mpus
and
things
which
I
think
is
a
low
risk,
but
there's
another
one,
basically,
because
one
of
the
goals
is
to
to
minim.
You
know
one
of
the
one
of
the
aims
is
to
minimize
the
amount
of
information
that
needs
to
be
uploaded
when
we
replace
code
now,
elf
files
aren't
binary
files
they're.
A
Well,
they
are
binary,
but
they're
they're
sort
of
they're,
perhaps
bigger
than
than
if
you
were
just
to
upload
the
you
know
the
dot
bin
file,
if
that
makes
any
sense,
so
the
compiler
spits
out
different
files,
there's
a
dot
bin
file
which
is
kind
of
the
very
low
level.
This
is
exactly
what
you
know
the
the
the
processor
is
executing.
Then
you
have
an
elf
file
which
includes
more
information
that
can
be
used.
A
Let's
say
for
a
debugger
if
you
include
debugging
stuff
or
for
this
function,
which
allows
you
to
understand
how
the
memory
needs
to
be
allocated.
A
bin
file
wouldn't
give
you
that
information.
So
that's
why
anshul
is
you
know
wanting
to
use
l
files,
and
that
seems
sensible.
A
The
the
downside
of
that
is
that
l
files
are
bigger
than
bin
files,
so
we
we
kind
of.
We
need
to
recognize
and
track
that
risk
that
you
know
that
by
you
know,
we
might
end
up
with
something
that
allows
us
to
efficient.
You
know
to
replace
things
at
runtime,
which
is
advantageous
from
a
disruption
point
of
view,
but
we
might
not
get
that
benefit
of
the
uploads
taking
a
lower
amount
of
time,
because
the
l
file
is
bigger
than
the
bin
file.
A
So
you
know
one
option
is
to
perhaps
compress
the
bin
file
or
sorry
compress
the
l5
or
something
like
that
on
the
way
up
and
then
decompress
it
before
we,
you
know,
use
it
or
something
like
that,
but
we
we
need
to
to
sort
of
track
that
risk
as
we
go
along.
So
sorry
angel.
Sorry
for
disturbing
you
no.
B
No,
that's
absolutely
valid
point
yeah
we
need
to.
We
need
to
also
figure
out
how
much
of
a
difference
it
is
between
a
pin
file
and
an
l
file,
and
a
second
point
will
be
yes,
as
you
can
see.
If
during
compilation
I
can,
I
can
pass
on
some
flag
to
reduce
the
size
of
l5.
That's
another
option.
We
can
try
and
compression
is
another
thing
that
you
have
mentioned.
B
So
so
this
is
a
just
high
level
diagram,
so
create
drc
is
basically
task.
It
goes
from
here
to
here.
If
it's
unregistered,
then
we
go
from
here.
It
needs
to
be
registered
once
it's
registered
with
this
api
called
task.
Register
task
register
is
a
call
in
task
manager.
Still
it
has
not
reached
free
rtos
domain
once
the
task
register
is
done,
then
we
go
for
task
alloc
again,
it's
my
call
task
catalog.
C
A
And
so
just
going
back
to
that
diagram
that
I'm
sure
the
the
the
sort
of
horizontal
lines
at
the
bottom
there.
D
A
B
B
A
A
Okay,
and
so
everything
above
that
is
essentially
what
what
you've
written.
Yes,.
B
B
So
yeah
as
paul
mentioned,
so
this
was
the
current
phase
goal
application
binary
task
executes.
It
reaches
an
inconsistent
state
and
then
we
wait
for
it
to
reach
in
a
consistent
state,
then
suspend
original
task
allocate
updated
task,
link
the
updated
task,
copy,
the
memory
location
copy,
all
the
atomic
pointers
and
everything
whatever
is
needed
start
the
task
put
it
in
os
control
state
and
start
the
execution
of
the
updated
task.
So
this
was
the
code
just
again
high
level,
graphic
representation.
So
we
have
this
migration
process,
2
3,
4
5
task
code.
B
This
is
code,
v1
v1,
the
ask
data.
So
let's
call
it
task
state
v1,
v1.
The
task
is
executing.
Now
a
request
comes
to
replace
the
task,
so
we
wait
for
the
task
to
reach
a
checkpointable
state.
That's
an
important
state.
This
is
a
state
where
it's
not
making
any
calls
to
any
of
the
libraries
it's
in
its
independent
state.
So
we
wait
for
it
to
achieve
a
checkpointable
state
and
and
then
the
replacement
happen.
And
then
we
have
code
v2
and
then
task38v2v2.
A
So
with
the
checkpoint
state,
so
is
that
something
that
when
you're
writing
a
task,
do
you
need
to
make
a
call
to
say
now?
The
task
is
in
a
checkpointable
state.
A
A
I
guess,
would
it
be
in
like
in
in
the
kind
of
high
level
function
of
the
of
the
you
know,
the
entry
point
to
the
you
know
typically
you'd
enter
a
task
and
it
would
go
around
in
a
loop,
so
I'm
guessing
at
the
high
level
sort
of
c
function
where
you
you
know,
when
you're
coming
back
out
to
this
to
this
main
function,
your
checkpoint,
your
call
might
be
there
to
sort
of
say:
cpo,
I'm
you
you
can,
you
can
do
stuff
now.
A
B
C
Right
so
this,
so
I
guess
this
is
where
the
interests
interesting
bit
comes
in
terms
of
the
aocs
task.
If
you
want
to
replace
that
because
obviously
that's
going
to
be
called
well
could
be
called
at
12
hertz,
so
you're.
E
D
C
Don't
know
whether
you've
done
any
performance
in
terms
of
how
long
you
know
what
chunk
of
time
do
I
need
from
that
check,
pointable
state
to
be
able
to
flip
to
the
new
one.
A
B
It
will
it
will
be
dependent
on
that
now.
How
soon
can
you
reach
to
checkpointable
state
again,
it
depends
how
you
have
written
your
task.
If
it's
making
a
lot
of
function
calls
and
in
that
function
call
you
are
spending
a
lot
of
time.
Then
that's
a
bad
thing,
but
if
you're
making
a
function
call
returning
it
immediately,
then
you
can
quickly
reach
to
a
checkpointable
state.
So
these
are
two
important
things
we
need
to
take
care.
While
we
are
writing
our
task.
Okay,.
A
Yeah
and
just
so
you're
aware,
anshul
the
way,
the
way
we're
hoping
to
write
this
this
task,
and
this
this
might
be
of
interest
to
you-
we're
hoping
to
use
simulink,
which
is
a
you
know,
maths
tool,
which
also
has
the
capability
to
spit
out
c
code.
So
we
develop
a
a
simulink
model
with
some
associated
matlab
code
and
stuff.
A
This
is
what
and
it's
why
ben's
on
the
call
really
as
well
as
suffie,
so
these
guys
are
kind
of
you
know
doing
this
stuff
and
that
spits
out
a
at
the
moment.
The
way
we've
got
it
is
is
one
kind
of
c
function
which
is
called
it
does
a
load
of
maths
and
then
it
returns.
A
So
there
isn't
an
intermediate
point
where
you
know
it
comes
back
and
then
goes
back
in
again.
It
just
kind
of
does
what
it
does
and
then
comes
out.
So
I'm
imagining
that
what
we
would
end
up
with
is
you
know,
you're
in
your
simulink
code,
doing
your
stuff
and
then
you
come
out
and
then
you
might
try
and
enter
your
your
checkpointable
side.
B
A
Yeah
and-
and
I
guess
at
that
point
ben
all
of
the
the
the
the
integrators
all
of
the
you
know-
the
values
in
the
simulink
code
would
be
at
a
at
a
a
stable
state.
Yeah
there's
no
intermediate
nastiness
going
on.
Yes,.
B
I
think
yeah,
it's
important
to
understand
I
I
can
put
a
check
pointable
state,
even
when
you
have
made
a
call,
but
at
the
time
of
copying
your
your
stock,
your
stack,
your
local
variables,
will
not
be
in
updateable
state,
so
it
all
depends
upon
your
requirement.
I
have
no
problem.
I
can
define
a
checkpointable
state
whenever
you
want,
but
then
you
will
get
old
stack,
which
you
don't
want.
So
just
think
of
from
that
perspective,
what
lakehold
variables?
What
stack,
what
heap
you?
A
So
I'm
just
kind
of
thinking
this
through
then.
So
what
what
we've
got
here
is
something
that
sounds
quite
intricate
and
quite
clever
in
the
sense
that
not
only
are
we
replacing
the
task,
we're
also
replacing
the
cut
or
maintaining
this
the
context
of
the
task
in
terms
of
its
its
its
its
local
variables
and
stuff.
Yes,
now
the
question
I
would
have
is
if,
by
modifying
the
task,
you
know
you
introduce
more
interfaces
or
you
interview
in
you
know
you
change
the
the
nature
of
the
way
the
stack
would
be
create.
A
You
know
be
used
because
you're
introducing
new
functionalities,
I'm
guessing
what
we're
doing
is
we're
saying:
okay,
I'm
going
to
take
the
stack
and
I'm
going
to
kind
of
port
it
over
here,
where
that,
where
the
new
stack
for
the
new
task
is
so
that
it
can,
it
can
sort
of
run
the
new
the
new
code,
but
with
the
coefficients-
and
you
know,
integrators
as
they
were
in
the
old
code
right.
A
A
I'm
just
sort
of
thinking
through
I,
I
guess,
there's
a
limit
to
how
much
you
can
change.
You
know
if
you
were
to
completely
re-engineer
your
afcs
code
and
then
try
to
use
this
method.
Would
it
just?
Would
you
just
end
up
there's
no
point
sort
of
trying
to
do
you
know.
Do
you
have
to
you
have
to
write
a
bit
of
code
to
translate
the
stack
or
the
the
the
data
into
the
new
task?
A
Let's
say
that
you
wanted
to
introduce
a
new
variable
for
integrators
or
on
some
new
loop,
or
something
like
that.
That
required
a
data
structure
which
was
different
from
the
old
task,
which
you
have
to
have
something
that
translated
the
data
from
the
old
task
into
the
format
of
the
data
for
the
new
task.
B
Look
what
I
am
translating
is
suppose
you
have
new
variables
introduced
into
the
stack,
so
that
will
be
there
in
the
new
task.
All
variables
in
the
stack
will
be
there
in
the
new
stack
similar.
All
the
heap
memory,
alias
memory
areas
allocated
in
the
old
tasks
will
be
carried
forward
to
the
new
task
and
the
pointers
that
were
pointing
to
those
memory
areas.
Those
will
be
updated
with
new
addresses.
C
A
A
A
Yeah,
okay,
what
do
I
mean
by
that.
A
C
B
That
means
the
pointer
is
also
not
there.
B
E
C
The
the
old
bits
but
as
I
guess,
yeah
paul's,
and
I
I
wonder
if
it's
I
don't
I
don't
know
say,
say
we
had
four
wheels
and
then
one
and
then
one
of
them
breaks
so
that
ben
has
to
only
use
three
wheels.
Whatever.
B
E
Yeah
to
dive
up
things
too
much
just
a
quick
comment
so
in
terms
of
sort
of
task
uploads,
but
again
stick
with
asgs.
If
we
were
to
just
generate
the
whole
aocs
software
from
simulink,
obviously
it
will
chuck
out
like
one
it
chucks
out
like
one
function
that
can
be
run.
That
is
the
full
you
know.
Obviously,
inside
that
function
she
does
in
the
detail,
but
in
terms
of
what
the
task
is
doing.
It's
just
running
that
one
function,
which
is
the
whole
ocs
task.
E
If
we
did
it
that
way,
and
you
had
to
change
like
one
tiny
bit
of
the
algorithm,
you
have
to
change
that
whole.
You
have
to
re-upload
that
whole
task,
wouldn't
you,
which
is
the
whole
way
of
your
software.
E
A
Well,
I
don't,
I
don't
anticipate
the
aacs
tasks
being
particularly
big
in
terms
of
you
know
bits
I
think
it's
likely
to
be
because,
because
everything
it
I
mean,
friata's
itself
is
not
very
big,
so
I'd
imagine
it
would
all
be
quite
small.
A
It
was
one
of
them
to
replace
the
whole
thing
just
for
you
know
for
a
tiny
update,
yeah
and
certainly
in
in
the
presentation
I
gave
previously.
There
was
a
sort
of
another
method
which
you
know
people
have
employed
previously,
which
is
a
small
patch.
Yes,
so
you're
patching
little
bits
of
code
little,
you
know
literally
bits
of
binary
in
and
sometimes
you
can
do
that,
and
sometimes
you
can't
because
it
depends
upon
the
nature
of
how
you're
doing
it
yeah.
E
And
everything
else
is
I've.
Seen
you
know,
sort
of
the
advised
way
of
dealing
with
the
model
based
stuff
is
to
not
actually
touch
the
code
at
all.
In
terms
of
what's
generated,
you
always
go
back
to
the
model.
I
mean
yeah,
so
that
that's
all
lends
itself
to
not
doing
the
patching.
If
you
follow
that
exact,
you
know
follow
that
guideline.
A
People
previous
do
previously
is
basically
you
know
the
way
it
would
probably
work
would
be.
You
have
your
simulink
model,
you
generate
your
code
and
and
then
you,
you
compile
your
code
into
a
binary.
A
So
then
you've
got
your
binary
and
then
let's
say
you
want
to
make
a
very,
very
small
change
to
the
code.
So
what
you'd?
What
you
could
do,
then,
is
change.
Your
simulink
model
create
your
your
c
code,
compile
your
c
code
and
now
you've
got
another
binary
and
what
you
can
do
is
compare
the
two
binaries
and
see
what
the
differences
are.
C
Yeah,
I
think
I
think
you
have
to
do
it
on
a
case-by-case
basis
in
that
instance,
because
some
some
changes
will
be
patchable
and
some
won't,
and
it
was
always
whenever
we
did
it.
Whenever
we
used
a
patch,
especially
on
something
like
the
aocs,
it
was
very
much
a
last
resort.
It
was
not
something
that
we
would
like
to
entertain,
just
because
it
leaves
you
open
to
so
many
risks,
whereas
if
you,
if,
if
you
can
replace
the
entire
task,
it's
a
lot,
it's
better
defined.
A
So
it
may.
I
think
it
would
de-risk
slightly
the
kind
of
problems
that
we've
seen
previously
and
in
in
doing
this
kind
of
live
patching
type
solution,
which
I
don't
think
isa
would
ever
ever
entertain.
C
B
And
one
more
thing:
I
was
just
thinking
over
that
so
when,
when
when
a
new
task
is
uploaded,
I
go
through
the
very
because
the
variables
that
are
defined
in
the
old
dlf
and
the
new
elf,
whatever
you
want
to
reuse,
those
names
will
be
same.
So
I
go
through
the
tree
and
then
copy
only
those
ones
which
exist
in
the
tree
and
are
there
in
the
new
elf.
B
A
But
I
guess
then
I
by
the
way
I
you
know,
I'm
a
typical
software
engineer,
I'm
always
trying
to
find
the
problems
right,
but
but
this
this
is
really.
If
we
could
get
this
to
work,
it
would
be
fantastic
because
it's
it's
it's
proper,
live
patching.
You
know
maintaining
the
context
between
one
thing
to
the
next.
It's
really
efficient
from
a
operational
point
operations.
Point
of
view
it's
challenging
from
a
coding
point
of
view,
which
is
why
I'm
glad
you're
here,
but
I'm
sort
of
thinking
about
okay.
A
A
Yeah
some
martians
come
down
and
add
a
wheel
so
so
we've
we've
now
got
three
wheels,
all
the
context
of
the
way
that
they
were
running
all
the
integrators
and
everything
are
all
in
the
software.
It's
all
good.
The
fourth
wheel
has
no
context
because
it
has
never
run
previously.
A
So
I
yeah
so
that,
from
an
aocs
point
of
view,
that's
an
interesting
thing,
ben,
quite
how
you
deal
with
that.
I
don't
know,
but.
B
C
Point
that
I
could
see
that
happening
is
so,
for
instance,
on
tech
demo
sat,
we
had
four
wheels
and
we
had
a
demo
wheel.
We
had
a
fifth
wheel,
and
that
was
a
different.
We
we
changed
the
bearings
blind
blast,
so
it
was
different
and
we
were
flying
it
to
see
how
it
worked.
C
So
we
could
do
some
experiments
where
we
would
just
spin
it
at
very
low
speed
without
putting
it
in
the
control
loop,
because
the
other
wheels
could
compensate,
and
that
was
fine,
but
there
became
a
point
where
we
needed
to
add
it
into
the
control
loop
and
so
that
that's
what
would
would
be
your
your
your
context?
There
paul
is
where
we
put
it
in,
but
that
again
it's
a
very
you
know
it's
a
it's
a
one-off
case,
probably.
A
Yes,
whether
there's
some
other
things
like
sorry
jb,
could
you
yeah
no
worries
yeah,
it's
just
sort
of
thinking
through,
maybe
not
that
exact.
It's
just
anywhere,
where
we're
adding
functionality.
A
C
Because
it
might
be
that
you
know
in
those
few
number
of
cases
we
just
say
well,
we'll
just
you
know
we'll
we'll,
maybe
upload
the
code
or
do
something
different,
because
it's
such
it
because
you,
I
don't
think
you
will
ever
get
a
one
size
fits
all.
C
There
will
always
be
occasions
where
you
just
have
to
revert
back
to
something
else,
and
I
think
we
need
to
make
sure
that
we
we
want
to
keep
this
as
simple
as
possible
and
have
it
very
well
defined
and
not
try
and
expand
the
boundaries
too
much.
I
think
we
just
need
to
be
careful
that
we
just
don't
you
know,
do
that.
A
C
I
think,
but
I
think
it
is
key
to
understand
the
what
what
what
opportunities
we
may
have
a
problem
with,
so
we
can
list
them
and
go.
This
is
where
we
can't
use
it.
Are
we
happy
that
those.
A
A
D
B
C
B
B
This
is
the
code.
I
will
run
it
from
here.
C
B
This
is
the
command
with
which
I
will
transfer
the
binary
from
my
system
to
the
card.
Why
are
you
what
at
present
it's
later,
we
can
decide
upon
ftp
ftb
tcp,
whatever
we
want,
so
I
will
run
the
code.
B
The
code
stops
in
this
loop
just
for
understanding,
then
it
will
wait
for
some
number
of
it
will
wait
for
some
amount
of
time
to
get
the
binary
and
then
the
processing
will
happen.
So
I
will
do
that
and
this
is
the
uart
screen
here.
You
will
screen
the
here.
You
will
see
the
output
and
here
you
will
see
both
tasks
are
executing
simultaneously
and
then
one
stop
at
the
start.
It's
not
pretty,
but
it's
console
output,
that's
the
best.
I
can
do
yeah.
B
So
that's
fpg.
B
B
A
Okay,
all
right,
so
you
could
sort
of
see
a
time
when
you're
getting
printed
so
one
one
task
was
printing,
something
to
the
to
the
at
the
same
time
as
the
other
one
yeah.
It
was
kind
of
interrupting
the
flow
of
characters.
B
D
B
C
B
This
is
about
9k,
yeah
and
free.
Our
toss
is
around.
A
A
C
B
A
Yeah
yeah
it
gets,
it
gets
quite
a
bit
bigger
it's
better
yeah.
It
might
be
that
there's
ways
of
producing
the
amount
of
information
because
actually.
A
Oh,
it
might
be,
it
might
be,
a
load
of
you
know,
zeros,
just
padding
yeah
I
mean
because
the
l
file
doesn't
have
padding
in
it.
It
just
says
put
this
to
here:
put
that
there
put
that
the
other,
whereas
the
bin
file
can
include
well,
it
will
include,
you
know,
all
padding
information
and
everything.
So
actually
it's
smaller.
B
E
Possible
I'll
think
about
that.
Okay,
I'm
getting
close
to
having
a
bit
of
a
you
know
a
full
loop
against
the
aggregates,
so
perhaps
something
we
could
actually
test
properly
soon.
A
C
A
You
yeah
yeah,
it
is
excellent
and-
and
it
is
it's
really
nice
to
have
you
know
quite
often
you
work
in
you
know
when
you
work
in
the
space
industry,
you're
working
with
people
who
are
space
people
but
you're,
not
working
with
people
who
are
like
experts
in
operating
systems.
You
know
and
and
that's
the
beauty
of
what
we're
doing
here.
You
know
you're
an
expert
in
operating
systems
and
hypervisors,
and
all
of
this
stuff,
which
you
know
most
space
people
won't
touch
with
a
barge
pole.
A
So
so
that's
why
this
is
really
great.
I
have
this
this
kanban
here.
It's
got
this
outstanding
action
to
make
things
open
source,
and
so
I
think,
there's
a
few
there's
a
few
bits
there,
but
I
was
just
gonna.
Add
sorry.
A
C
A
question
on
making
open
source
so
obviously
the
demo
worked,
which
is
brilliant
and
I
guess
paul.
You
have
an
angel
if
you,
if
you
sort
of,
come
together
and
review
the
the
testing
aspects
of
it
so
that
you
know
you're
both
happy
that
it's
been
through,
because,
obviously,
if
we're
going
to
make
it
open
source,
we
need
to
have
made
sure
that
we've
done
sufficient
testing
to
make
sure
that
it's
robust
and
no
disrespect.
But
you
know,
obviously
we
need
to
do
that.
So
has
that?
Has
that
been
done.
A
No,
we
haven't.
This
hasn't
gone
through
like
a
type
2
development
cycle.
This
is
very
much
type
1,
because
it's
it's
all
to
do
with
you
know
it's
like
an
experimental
thing.
So
what
I
was
gonna
do.
I
was
going
to
release
it,
but
with
you
know,
there's
there's
no
just
being
upfront
about
the
level
of
testing
that
it's
got.
You
know
there's.
A
Yeah
there's
no
warrant;
there
won't
be
any
way
because
of
the
license
agreement
on
the
open
source
stuff,
but
certainly
you
know
just
being
upfront
about
the
nature
of
this
software.
If
we,
you
know,
I
think,
probably
in
the
roadmap
to
get
us,
you
know
on
the
satellite,
we
probably
want
to
do
some
more.
You
know
unit
testing,
get
the
code
coverage
up
and
all
of
this
kind
of
stuff,
but.
C
Yeah,
but
I
guess
I
guess
what
I
was
coming,
what
I
was
trying
to
get
is
not
not
yeah,
it
doesn't
have
the
the
full
software
testing,
but
presumably
you
guys
have
discussed
what
testing
it
has
had
and
you're
happy
that
you
know
that
has
made
that
that
makes
sense.
A
Not
in
great
detail
to
be
honest,
okay,
but
it
might
be
an
idea
to
do
that.
Yeah.
A
Yeah,
I
know
I
understand
yeah
yeah,
so
I
mean
just
in
terms
of
I
don't
want
to
lose
what
I
was
thinking.
So
no,
no,
it's
fine.
So
in
the
backlog,
I'm
going
to
add
on
aocs
task
replacement
demo,
which
will
probably
involve
then
and
possibly
suffer
as
well.
A
So
in
the
future
we
could
actually
put
that
into
an
iteration,
so
we're
trying
to
actually
demonstrate
a
full-blown
aocs
task
being
replaced
by
another
one,
so
hand
maintaining
context
and
carrying
on
you
know
what
I
mean
like.
Actually
you
know
we
changed
the
algorithm
and
the
loop
is
running
and
now
it's
still
running
with
a
different
algorithm.
You
know
and
it's
seamless,
wouldn't
that
be
beautiful.
That
would
be
a
thing
of
legends.
A
E
They
were
sort
of
forced
to
think
about
all
like
I
mean
we've
talked
about
it
briefly
before,
but
it
was
to
think
more
about
how
we
physically
would
integrate.
You
know
the
significant
codes
in
the
real
software
until
you
talk
about
you
know
the
structures
going
in
and
out
in
terms
of
how
you
should
give
it
inputs
and
outputs.
You
actually
make
me
think
about
that
in
more
detail.
D
C
To
take
away
his
past,
so
he
has
to
go
back
to
university
at
the
beginning
of
october,
or
is
it
something
that
we?
You
know
that
we
can
demo
when
ben
comes
back
for
his
christmas
party.
A
A
A
B
A
So
this
is
yeah,
so
if
I
make
a
function
call
to,
I
don't
know
printf
from
from
my
binary,
my
my
existing
binary
and
then
I
create
my
new
function.
Oh
sorry,
my
new
task
and
that's
got
a
call
to
printf
this
code
is
able
to
link
the
two
calls
to
printf.
To
the
same
thing
is
that
right.
A
All
right
exactly
because
I
know
one
of
the
main,
the
main
features
of
this
in
this
demo
is
to
print
things
to
the
serial
port,
so
you've
got
to
kind
of
you
know,
print
the
serial
port
function.
Call
and
you've
got
that
going
on
in
the
binary
that
exists
in
the
big
lump,
the
first
binary,
the
big
l
file
and
then
you've
got
another
call
to
the
same
function
in
the
new
l
file.
A
A
That's
with
jump
tables,
okay,
okay,
yeah,
and
I
think
there
was
something
that
you
I
don't
know
how
to
express
this,
then
maybe
I'll
mix.
B
I
got
it,
I
got
it,
we
had
a
discussion
with
andy
who
is
in
new
zealand,
and
then
we
identified
this
action
item
during
that
call.
A
Yeah
yeah,
that's
right,
yeah!
So
it's
it's
it's
because
I
think
you
had
a
thought
about
how
you
might
be
able
to
do
that
with
the
linker.
Yes,.
A
A
A
It's
right,
I
don't
need
to
change
this
and
I
feel
like
that
would
be
a
good
one
to
get
into
this
next
iteration.
I
don't.
B
B
A
B
Agree
and
also
carrying
over
heap
right
now,
it's
a
stack
so
carrying
over
heap
from
old
task
to
the
new
task.
A
A
Okay,
yeah
so
but,
but
maybe
I
don't
know,
maybe
what
we
could
do
is
open
source.
What
we
have,
including
some
instructions
on
how
to
how
to
demo
it
and
that's
the
sort
of
high
priority
and
at
that
point,
tag
it
and
and
there's
probably
another
action
to
to
go
through
testing
testing
in
what
andrew
was
saying.
B
Yeah,
open
source
should
be,
I
think,
high
priority,
because
I'm
planning
to
I
wanted
to
discuss
this
with
you.
I'm
planning
to
demo
it
to
japan
embedded
conference
in
december.
B
A
A
B
No,
I
think
that
doesn't
make
sense
before
december.
I
want
to
get
this
ready.
I
will
try
to
get
this
functionality
added.
B
A
All
right:
okay,
okay!
So
all
right!
Okay!
So
how
does
this
sound
and
then
investigate
the
mpu
on
m7,
core
and
impact?
I
think
you've
done
that
right,
yeah.
A
No
impact
have
a
look
at
tasks
being
replaced.
They're
called
by
other
tasks,
see
if
there's
a
ways
to
linking
the
replacement
task,
even
though
changing
location
so
that
one's
on
the
backlog.
I
don't
know
if
you
can
understand
that,
I'm
just
trying
to
marry
up.
You
know,
what's
in
the
backlog,
with
what
we
should
put
in
for
the
next
iteration.
Basically,.
B
Maybe
yeah
interaction
with
os
and
interaction
between
different
tasks.
Do
we
want
interaction
between
different
tasks.
A
Well,
andy
advised
not
because
what
we
could
do
is
have
the
interaction
between
the
tasks
go
through
the
operating
system.
You
should
use
queues
or
you'd
use.
Some
kind
of
you
know
no
direct
calls
between
one
task
and
another,
because
I
think
to
do
that.
You'd
have
to
build
them
as
one
big
blob
anyway,
so
yeah
so
yeah.
I
think
this.
This
needs
to
change,
focus
slightly
yeah,
okay,
so
we'll
leave
that
there.
B
A
Yeah
yeah
it'll
be
already
there
yeah.
So
then
there
was,
you
know:
malloc
handling,
matlock
and
things
like
that.
But
these.
A
Okay-
okay,
okay,
all
right
great,
so
I
think
we've
got
you
know
an
idea
for
the
for
the
next
lot
of
work,
the
priority
making
it
a
sort
of
open
source-
and
we
want
to
do
that-
you
well
you
want
to
do
that
before
december.
D
A
No
so
sounds
good,
I
mean
I
mean,
should
we
should
we
try
and
if
it's
december,
should
we
try
and
sort
of
you
know
make
this
happen
for
kind
of
a
november
time
frame.
A
B
E
A
Is
there
anything
actual,
we
can
be
doing
differently
to
support
you
in
what
you're
doing.
A
It's
all
good,
that's
all
good!
Well,
actually,
I
think
it's
it's
a
really
good
demo.
I
think
it's
been.
You
know
I
think,
from
where
we've
been
before
as
well.
Just
in
terms
of
you
know
what
we've
done
today
this
this,
you
know
it's
been
a
lot
more
good.
It's
been
better
for
those
you're
presenting
to.
I
think
I
don't
know
if
everybody
would
agree.
Yeah.
C
I
mean
I,
I
found
it
very
useful.
It
was,
I
know
you
had
to
dumb
it
down,
but
I
found
it
it
it
useful
and
I
actually
understood
what
you're
trying
to
do
and
how
you're
doing
it
and
yeah
I
thought
it
was
it
was.
It
was
very
useful
for
me
as
well.
D
Very
good
what's
happening
so
does
this
maintain
the
contexts
between
resets
of
new
tasks
that
are
uploaded?
B
A
It's
a
good
point,
isn't
it
I
mean?
Maybe
that
way,
just
sorry,
maybe
there's
a
way
of
you
know
committing
what
we've
done
here
to
novel
at
all
memory
in
some
way,
yeah
as
well.
So.
C
Yeah,
so
if
I
have
to
power
cycle
the
obc,
for
instance,
it
goes
back
to
the
state
that
I
was
in
after
I
had
uploaded
that
new
task,
because
you
wouldn't
want
to
you,
wouldn't
want
to
necessarily
have
to
upload
it
again
because
you
put
it
in
there
for
a
reason.
It's
a
good
catch
like
jamie.
I
haven't
thought
about
that.
B
C
B
A
We'll
check
it
into
this
iteration,
okay,
but
yeah.
That's
a
that's
a
good!
That's
a
good
shout!
So
I've
added
on
to
the
backlog
add
commit
to
non-volatile
memory
so
that
reset
power
and
power
cycle.
A
Maintain
new
task
context
in
what
context
new
tasks
yeah
link,
but
I
don't.
B
A
Yeah
yeah
so
yeah
I've
just
added
something
into
the
backlog
there
too,
so
that
we
can.
We
can
just
not
lose
sight
of
that
in
the
future.
Yeah
brilliant
okay,
so
I
think
we've
got
an
idea
of
what
we're
aiming
for
for
november
and
it
just
really
just
remains
me
to
say
I'm
in
awe
of
your
you
know
software
engineering
prowess.
I
wish
I
was
as
clever
as
you.
A
C
A
So
yeah
yeah.
Thank
you
very
much
angel
and
yeah.
It's
it's
really
really
good
effort
you're
putting
in
there,
and
I
think
it's
gonna
be
valuable
not
only
to
up
to
osap
but
to
the
wider
free
rtos
community
as
well.
B
Thanks
for
giving
me
this
opportunity,
it's
wonderful
and
any
plan,
anything
has
been
finalized
for
our
rideshare
when
we
are
flying.
A
Yeah
we
we
were,
we
were
unsuccessful,
unfortunately,
in
getting
a
some
funding
in
that
we
put
a
grant.
We
put
a
grant
proposal
in.
I
think
we
found
out
last
week
or
the
week
before.
A
Maybe
yeah
we
were
unsuccessful,
unfortunately,
in
getting
that
grant
funding
there
are
opportunities
coming
up
and
john
has
some
every
day
is
a
different
thing.
You
know
so
there's
there's
something
that
we're.
I
don't
know
if
I'm
allowed
to
talk
about
these
things.
To
be
honest,
I
don't
know.
A
There's
lots
of
opportunities
continuously
coming
up
that
john
john
looks
at
and
he's
looking
at
it
and
saying:
okay:
well,
does
this
fit
with
ossat?
Does
it
fit
with
maybe
something
else?
So
the
answer
is
no,
we
don't
have
enough.
Well,
we
don't
it's
not
a
good
update.
The
update
is
we
didn't
get
a
load
of
funding
so.
C
But
I
think
the
key
thing
is
we're
pushing
forward,
because
when
we
get
an
opportunity
we
want
to
be,
you
know
if
we
can
be
further
down
the
line,
then
that
that's
great
so
we're
you
know
we're
still
moving
forward
a
pace
to
try
and
get
the
the
project
moving
forward,
such
that
when
we
do
get
these
customers
there's
there's
less
to
do
than
you
know
previously.
So.