param: Build param without linker script

Changed to enable the posix_sitl_simple target to build and run

param show *

without using a linker script

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
This commit is contained in:
Mark Charlebois
2015-09-11 02:33:42 -07:00
parent 885dbe045f
commit b9ef1ee6ed
6 changed files with 80 additions and 34 deletions
+5 -3
View File
@@ -86,9 +86,11 @@ extern struct param_info_s param_array[];
extern struct param_info_s *param_info_base;
extern struct param_info_s *param_info_limit;
#else
extern char __param_start, __param_end;
static const struct param_info_s *param_info_base = (struct param_info_s *) &__param_start;
static const struct param_info_s *param_info_limit = (struct param_info_s *) &__param_end;
extern const struct param_info_s __param_start, __param_end;
// FIXME - start and end are reversed
static const struct param_info_s *param_info_base = &__param_end;
static const struct param_info_s *param_info_limit = &__param_start;
#endif
#define param_info_count ((unsigned)(param_info_limit - param_info_base))
+3 -24
View File
@@ -346,34 +346,13 @@ __EXPORT int param_load_default(void);
*/
/** define an int32 parameter */
#define PARAM_DEFINE_INT32(_name, _default) \
static const \
__attribute__((used, section("__param"))) \
struct param_info_s __param__##_name = { \
#_name, \
PARAM_TYPE_INT32, \
.val.i = _default \
}
#define PARAM_DEFINE_INT32(_name, _default)
/** define a float parameter */
#define PARAM_DEFINE_FLOAT(_name, _default) \
static const \
__attribute__((used, section("__param"))) \
struct param_info_s __param__##_name = { \
#_name, \
PARAM_TYPE_FLOAT, \
.val.f = _default \
}
#define PARAM_DEFINE_FLOAT(_name, _default)
/** define a parameter that points to a structure */
#define PARAM_DEFINE_STRUCT(_name, _default) \
static const \
__attribute__((used, section("__param"))) \
struct param_info_s __param__##_name = { \
#_name, \
PARAM_TYPE_STRUCT + sizeof(_default), \
.val.p = &_default \
}
#define PARAM_DEFINE_STRUCT(_name, _default)
/**
* Parameter value union.