aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.h
blob: b920bf47f5e5435f54126fd9672b8c1c19c9e3b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
 * FlashProgram.h
 *
 *  Created on: Jan 22, 2019
 *      Author: shlomo
 */

#ifndef DRIVERS_FLASH_RAM_FLASHPROGRAM_H_
#define DRIVERS_FLASH_RAM_FLASHPROGRAM_H_

#define FLASH_RAM_BASE 0x000D0000

#define MOTOR_MAP_IN_FLASH    (FLASH_RAM_BASE + 0X0000 )
#define ALARM_MAP_IN_FLASH    (FLASH_RAM_BASE + 0X2000 )
#define JOB_MAP_IN_FLASH      (FLASH_RAM_BASE + 0X4000 )
#define GENHWCFG_MAP_IN_FLASH (FLASH_RAM_BASE + 0X10000)
#define OTHER_MAP_IN_FLASH    (FLASH_RAM_BASE + 0X12000)

#define FLASH_SIZE 0X30000

//*****************************************************************************
//
// Read application data from a buffer and program it into flash.
//
// \return Zero if successful or non-zero if the file cannot be read or
// programmed.
//
//*****************************************************************************
uint32_t ReadAppAndProgram(uint32_t ui32FlashStart,uint32_t ui32FileSize,void* buffer);
void FlashInit(void);
uint32_t EraseFlashSection(uint32_t ui32FlashStart,uint32_t ui32FileSize);



#endif /* DRIVERS_FLASH_RAM_FLASHPROGRAM_H_ */
ss */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: JobDescriptionFileSegment.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "JobDescriptionFileSegment.pb-c.h"
void   job_description_file_segment__init
                     (JobDescriptionFileSegment         *message)
{
  static const JobDescriptionFileSegment init_value = JOB_DESCRIPTION_FILE_SEGMENT__INIT;
  *message = init_value;
}
size_t job_description_file_segment__get_packed_size
                     (const JobDescriptionFileSegment *message)
{
  assert(message->base.descriptor == &job_description_file_segment__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t job_description_file_segment__pack
                     (const JobDescriptionFileSegment *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &job_description_file_segment__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t job_description_file_segment__pack_to_buffer
                     (const JobDescriptionFileSegment *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &job_description_file_segment__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
JobDescriptionFileSegment *
       job_description_file_segment__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (JobDescriptionFileSegment *)
     protobuf_c_message_unpack (&job_description_file_segment__descriptor,
                                allocator, len, data);
}
void   job_description_file_segment__free_unpacked
                     (JobDescriptionFileSegment *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &job_description_file_segment__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor job_description_file_segment__field_descriptors[3] =
{
  {
    "",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(JobDescriptionFileSegment, name),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(JobDescriptionFileSegment, has_length),
    offsetof(JobDescriptionFileSegment, length),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_INT32,
    offsetof(JobDescriptionFileSegment, has_brushstopscount),
    offsetof(JobDescriptionFileSegment, brushstopscount),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned job_description_file_segment__field_indices_by_name[] = {
  2,   /* field[2] = BrushStopsCount */
  1,   /* field[1] = Length */
  0,   /* field[0] = Name */
};
static const ProtobufCIntRange job_description_file_segment__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor job_description_file_segment__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "",
  "",
  "",
  "",
  sizeof(JobDescriptionFileSegment),
  3,
  job_description_file_segment__field_descriptors,
  job_description_file_segment__field_indices_by_name,
  1,  job_description_file_segment__number_ranges,
  (ProtobufCMessageInit) job_description_file_segment__init,
  NULL,NULL,NULL    /* reserved[123] */
};