Opcion 1. "Recicla" el source del BcfgExample
(copialo a otra carpeta, y borra BcfgExample.dep), si deseas renombra BcfgExample.ewp y .eww a otro nombre, y edita el .eww la linea que dice <path> para que haga referencia al .ewp, y reemplaza main.cpp con el codigo del ELF
Opcion 2. Si es un ELF al que le quieres agregar BCFG, aparte de incluir en el main.c/.cpp o como se llame 
#include "..\\include\cfg_items.h"
#include "conf_loader.h"
#include "config_data.h"
debes agregar al proyecto (Project -> Add files):
conf_loader.cpp
config_data.c
Luego, en el lado izquierdo en el IAR, despues de seleccionar Release, click con el boton derecho en config_data.c -> Options
Marcas la casilla "Override inherited settings", luego vas a la pestaña Config, y en ambos casilleros donde dice "Segment base name", pones CONFIG (sí, todo en mayúsculas)
Aparte de agregar esto:
Código:
static int ReconfigElf(void *mess ,BOOK *book)
{
RECONFIG_EVENT_DATA *reconf=(RECONFIG_EVENT_DATA *)mess;
int result=0;
if (wstrcmpi(reconf->path,successed_config_path)==0 && wstrcmpi(reconf->name,successed_config_name)==0)
{
InitConfig();
Timer_ReSet(&timer,REFRESH_TIME,onTimer,0);
result=1;
**
return(result);
**
...
const PAGE_MSG bk_msglst_base[] @ "DYN_PAGE" =
{
ELF_TERMINATE_EVENT, TerminateElf,
ELF_SHOW_INFO_EVENT, ShowAuthorInfo,
ELF_RECONFIG_EVENT, ReconfigElf,
NIL_EVENT_TAG, NULL
**;
const PAGE_DESC bk_base = {"BcfgExample_Base_Page",0,bk_msglst_base**;
Lo mas importante, en la funcion main()
Código:
int main()
{
....
InitConfig();
....
**
Si no pones InitConfig() en el main(), no crea el .bcfg
Si no cambias las opciones del config_data.c para ponerlo en el segmento CONFIG, te crea un .bcfg de 0 bytes (comprobado
)
Nota: Reemplaza los ** por el signo de cerrar llave (el otro que no es este: {
)
Marcadores