diff --git a/dynamixel_manager/Makefile b/dynamixel_manager/Makefile index 9058279e15f2830c3a5dacd9dc8e7721fcd4e70b..4ebb37992b0d459fc28f3864365f430b99e11ee1 100755 --- a/dynamixel_manager/Makefile +++ b/dynamixel_manager/Makefile @@ -14,8 +14,9 @@ COMPILE_OPTS_M3 = -mfloat-abi=softfp -mcpu=cortex-m3 COMM_PATH = ../comm UTILS_PATH = ../utils DYN_BASE_PATH = ../dynamixel_base +MEMORY_PATH = ../memory -INCLUDE_DIRS = -I./include/ -I./include/modules -I$(COMM_PATH)/include -I$(UTILS_PATH)/include -I$(DYN_BASE_PATH)/include +INCLUDE_DIRS = -I./include/ -I./include/modules -I$(COMM_PATH)/include -I$(UTILS_PATH)/include -I$(DYN_BASE_PATH)/include -I$(MEMORY_PATH)/include TCHAIN_PREFIX=arm-none-eabi- diff --git a/dynamixel_manager/include/dyn_manager.h b/dynamixel_manager/include/dyn_manager.h index 241c7231d719a0fb3cc74d12055cfde76e7d533b..b9f03388a2dcf3461dcad06f3d654ff32a2c3adf 100644 --- a/dynamixel_manager/include/dyn_manager.h +++ b/dynamixel_manager/include/dyn_manager.h @@ -1,14 +1,28 @@ #ifndef _DYN_MANAGER_H #define _DYN_MANAGER_H +#include "dyn_manager_registers.h" #include "dynamixel_master.h" - -#define DYN_MANAGER_MAX_NUM_MASTERS 4 -#define DYN_MANAGER_MAX_NUM_MODULES 8 -#define DYN_MANAGER_MAX_NUM_DEVICES 32 -#define DYN_MANAGER_MAX_NUM_SINGLE_OP 16 -#define DYN_MANAGER_MAX_NUM_SYNC_OP 4 -#define DYN_MANAGER_MAX_NUM_BULK_OP 4 +#include "memory.h" + +#ifndef DYN_MANAGER_MAX_NUM_MASTERS + #define DYN_MANAGER_MAX_NUM_MASTERS 4 +#endif +#ifndef DYN_MANAGER_MAX_NUM_MODULES + #define DYN_MANAGER_MAX_NUM_MODULES 8 +#endif +#ifndef DYN_MANAGER_MAX_NUM_DEVICES + #define DYN_MANAGER_MAX_NUM_DEVICES 32 +#endif +#ifndef DYN_MANAGER_MAX_NUM_SINGLE_OP + #define DYN_MANAGER_MAX_NUM_SINGLE_OP 16 +#endif +#ifndef DYN_MANAGER_MAX_NUM_SYNC_OP + #define DYN_MANAGER_MAX_NUM_SYNC_OP 4 +#endif +#ifndef DYN_MANAGER_MAX_NUM_BULK_OP + #define DYN_MANAGER_MAX_NUM_BULK_OP 4 +#endif #define DYN_MANAGER_MAX_NUM_OP ((DYN_MANAGER_MAX_NUM_SINGLE_OP+DYN_MANAGER_MAX_NUM_SYNC_OP+DYN_MANAGER_MAX_NUM_BULK_OP)*DYN_MANAGER_MAX_NUM_MASTERS) #define DYN_MANAGER_PERIODIC 0xFF @@ -23,8 +37,6 @@ #define DYN_MANAGER_BULK 0x40 #define DYN_MANAGER_NONE 0x00 -#define DYN_MANAGER_DEFAULT_PERIOD_US 7800 - typedef enum {single_rd_op=DYN_MANAGER_SINGLE|DYN_MANAGER_READ, single_wr_op=DYN_MANAGER_SINGLE|DYN_MANAGER_WRITE, sync_rd_op=DYN_MANAGER_SYNC|DYN_MANAGER_READ, @@ -101,10 +113,11 @@ typedef struct{ unsigned short int period_us; void (*init_timer)(void); void (*set_period)(unsigned short int period_us); + TMemModule mem_module; }TDynManager; // public functions -void dyn_manager_init(TDynManager *manager); +unsigned char dyn_manager_init(TDynManager *manager,TMemory *memory); void dyn_manager_set_period(TDynManager *manager,unsigned short int period_us); unsigned short int dyn_manager_get_period(TDynManager *manager); void dyn_manager_scan(TDynManager *manager); diff --git a/dynamixel_manager/include/dyn_manager_registers.h b/dynamixel_manager/include/dyn_manager_registers.h new file mode 100644 index 0000000000000000000000000000000000000000..7099cc7d5ce6a4292d3a7b7c2c96164bbe2e0264 --- /dev/null +++ b/dynamixel_manager/include/dyn_manager_registers.h @@ -0,0 +1,26 @@ +#ifndef _DYN_MANAGER_REGISTERS_H +#define _DYN_MANAGER_REGISTERS_H + +#ifndef RAM_DYN_MANAGER_BASE_ADDRESS + #define RAM_DYN_MANAGER_BASE_ADDRESS ((unsigned short int)0x0000) +#endif + +#ifndef EEPROM_DYN_MANAGER_BASE_ADDRESS + #define EEPROM_DYN_MANAGER_BASE_ADDRESS ((unsigned short int)0x0000) +#endif + +#define RAM_DYN_MANAGER_LENGTH 2 + +#define EEPROM_DYN_MANAGER_LENGTH 2 + +#define DYN_MANAGER_PERIOD EEPROM_DYN_MANAGER_BASE_ADDRESS + +#define DYN_MANAGER_NUM_MODULES RAM_DYN_MANAGER_BASE_ADDRESS +#define DYN_MANAGER_NUM_MASTERS (RAM_DYN_MANAGER_BASE_ADDRESS+1) + +#ifndef DEFAULT_DYN_MANAGER_PERIOD + #define DEFAULT_DYN_MANAGER_PERIOD 0x1E78 +#endif + +#endif + diff --git a/dynamixel_manager/include/dyn_module.h b/dynamixel_manager/include/dyn_module.h index 3da912ac704ae0d5623d954bb045585a79cee1cc..f4c6d44fad8636bfe75fb69f09f4484344900090 100644 --- a/dynamixel_manager/include/dyn_module.h +++ b/dynamixel_manager/include/dyn_module.h @@ -1,9 +1,12 @@ #ifndef _DYN_MODULE_H #define _DYN_MODULE_H -#define MODULE_MAX_NUM_MODELS 32 +#ifndef MODULE_MAX_NUM_MODELS + #define MODULE_MAX_NUM_MODELS 32 +#endif #include "dyn_manager.h" +#include "memory.h" typedef struct TDynModule{ TDynManager *manager; @@ -19,10 +22,11 @@ typedef struct TDynModule{ void (*pre_process)(void *module_data); void (*post_process)(void *module_data); void *data; + TMemModule *mem_module; }TDynModule; //public functions -void dyn_module_init(TDynModule *module); +unsigned char dyn_module_init(TDynModule *module); inline void dyn_module_enable(TDynModule *module); inline void dyn_module_disable(TDynModule *module); inline unsigned char dyn_module_is_enabled(TDynModule *module); diff --git a/dynamixel_manager/include/dyn_module_registers.h b/dynamixel_manager/include/dyn_module_registers.h new file mode 100644 index 0000000000000000000000000000000000000000..c4c7afdf264b1289021c6f3478da61db963cfe8e --- /dev/null +++ b/dynamixel_manager/include/dyn_module_registers.h @@ -0,0 +1,19 @@ +#ifndef _DYN_MODULE_REGISTERS_H +#define _DYN_MODULE_REGISTERS_H + +#define RAM_DYN_MODULE_LENGTH 3 + +#define EEPROM_DYN_MODULE_LENGTH 1 + +#define DYN_MODULE_PERIOD EEPROM_DYN_MODULE_BASE_ADDRESS + +#define DYN_MODULE_CNTRL RAM_DYN_MODULE_BASE_ADDRESS +#define DYN_MODULE_NUM_MODELS (RAM_DYN_MODULE_BASE_ADDRESS+1) +#define DYN_MODULE_NUM_DEVICES (RAM_DYN_MODULE_BASE_ADDRESS+2) + +#ifndef DEFAULT_DYN_MODULE_PERIOD + #define DEFAULT_DYN_MODULE_PERIOD 0x01 +#endif + +#endif + diff --git a/dynamixel_manager/include/modules/motion_manager.h b/dynamixel_manager/include/modules/motion_manager.h index 74a12817c1752533f3b7e12ee1acca72fd900180..b5d3bbe2e32678e5d0c055bb3bd27d08c02fa9c8 100644 --- a/dynamixel_manager/include/modules/motion_manager.h +++ b/dynamixel_manager/include/modules/motion_manager.h @@ -3,7 +3,12 @@ #include "dyn_module.h" -#define MAX_NUM_MOTION_MODULES 8 +#ifndef MM_MAX_NUM_MOTION_MODULES + #define MM_MAX_NUM_MOTION_MODULES 8 +#endif +#ifdef MM_MAX_NUM_MODELS + #define MODULE_MAX_NUM_MODELS MM_MAX_NUM_MODELS +#endif typedef enum {MM_NONE = -1, MM_ACTION = 0, @@ -38,7 +43,7 @@ struct TMotionModule; typedef struct { TDynModule dyn_module; - struct TMotionModule *modules[MAX_NUM_MOTION_MODULES]; + struct TMotionModule *modules[MM_MAX_NUM_MOTION_MODULES]; unsigned char num_modules; TServoConfig servo_configs[DYN_MANAGER_MAX_NUM_DEVICES]; TServoValues servo_values[DYN_MANAGER_MAX_NUM_DEVICES]; @@ -49,7 +54,7 @@ typedef struct { void (*balance)(short int offsets[DYN_MANAGER_MAX_NUM_DEVICES]); }TMotionManager; -void mmanager_init(TMotionManager *mmanager); +unsigned char mmanager_init(TMotionManager *mmanager,TMemory *memory); TDynModule *mmanager_get_dyn_module(TMotionManager *mmanager); void mmanager_enable_balance(TMotionManager *mmanager); void mmanager_disable_balance(TMotionManager *mmanager); diff --git a/dynamixel_manager/include/modules/motion_manager_registers.h b/dynamixel_manager/include/modules/motion_manager_registers.h new file mode 100644 index 0000000000000000000000000000000000000000..208e6b810965e8a28d47268820f151b25498137e --- /dev/null +++ b/dynamixel_manager/include/modules/motion_manager_registers.h @@ -0,0 +1,62 @@ +#ifndef _MOTION_MANAGER_REGISTERS_H +#define _MOTION_MANAGER_REGISTERS_H + +#include "dyn_module_registers.h" + +#ifndef RAM_MM_BASE_ADDRESS + #define RAM_MM_BASE_ADDRESS ((unsigned short int)0x0000) +#endif + +#ifndef EEPROM_MM_BASE_ADDRESS + #define EEPROM_MM_BASE_ADDRESS ((unsigned short int)0x0000) +#endif + +#define RAM_MM_LENGTH (RAM_DYN_MODULE_LENGTH + ) + +#define EEPROM_MM_LENGTH (EEPROM_DYN_MODULE_LENGTH + ) + +#define MM_PERIOD DYN_MODULE_PERIOD + +#define MM_CNTRL DYN_MODULE_CNTRL +#define MM_NUM_MODELS DYN_MODULE_NUM_MODELS +#define MM_NUM_DEVICES DYN_MODULE_NUM_DEVICES + +#ifndef DEFAULT_MM_PERIOD + #define DEFAULT_MM_PERIOD DEFAULT_DYN_MODULE_PERIOD +#endif +#define MM_SERVO0_OFFSET ((unsigned short int)0x0011) +#define MM_SERVO1_OFFSET ((unsigned short int)0x0012) +#define MM_SERVO2_OFFSET ((unsigned short int)0x0013) +#define MM_SERVO3_OFFSET ((unsigned short int)0x0014) +#define MM_SERVO4_OFFSET ((unsigned short int)0x0015) +#define MM_SERVO5_OFFSET ((unsigned short int)0x0016) +#define MM_SERVO6_OFFSET ((unsigned short int)0x0017) +#define MM_SERVO7_OFFSET ((unsigned short int)0x0018) +#define MM_SERVO8_OFFSET ((unsigned short int)0x0019) +#define MM_SERVO9_OFFSET ((unsigned short int)0x001A) +#define MM_SERVO10_OFFSET ((unsigned short int)0x001B) +#define MM_SERVO11_OFFSET ((unsigned short int)0x001C) +#define MM_SERVO12_OFFSET ((unsigned short int)0x001D) +#define MM_SERVO13_OFFSET ((unsigned short int)0x001E) +#define MM_SERVO14_OFFSET ((unsigned short int)0x001F) +#define MM_SERVO15_OFFSET ((unsigned short int)0x0020) +#define MM_SERVO16_OFFSET ((unsigned short int)0x0021) +#define MM_SERVO17_OFFSET ((unsigned short int)0x0022) +#define MM_SERVO18_OFFSET ((unsigned short int)0x0023) +#define MM_SERVO19_OFFSET ((unsigned short int)0x0024) +#define MM_SERVO20_OFFSET ((unsigned short int)0x0025) +#define MM_SERVO21_OFFSET ((unsigned short int)0x0026) +#define MM_SERVO22_OFFSET ((unsigned short int)0x0027) +#define MM_SERVO23_OFFSET ((unsigned short int)0x0028) +#define MM_SERVO24_OFFSET ((unsigned short int)0x0029) +#define MM_SERVO25_OFFSET ((unsigned short int)0x002A) +#define MM_SERVO26_OFFSET ((unsigned short int)0x002B) +#define MM_SERVO27_OFFSET ((unsigned short int)0x002C) +#define MM_SERVO28_OFFSET ((unsigned short int)0x002D) +#define MM_SERVO29_OFFSET ((unsigned short int)0x002E) +#define MM_SERVO30_OFFSET ((unsigned short int)0x002F) +#define MM_SERVO31_OFFSET ((unsigned short int)0x0030) + + +#endif + diff --git a/dynamixel_manager/src/dyn_manager.c b/dynamixel_manager/src/dyn_manager.c index 9a29a8cf4222aa5ddbbd932f71723710701262a5..8499d2c1a5130a45251b9d02167c47bba4e6338d 100644 --- a/dynamixel_manager/src/dyn_manager.c +++ b/dynamixel_manager/src/dyn_manager.c @@ -1,5 +1,6 @@ #include "dyn_manager.h" #include "dyn_module.h" +#include "ram.h" extern unsigned char dyn_master_start_read_table(TDynamixelMaster *master,unsigned char id,unsigned short int address,unsigned short int length,unsigned char *data); extern unsigned char dyn_master_is_read_table_done(TDynamixelMaster *master,unsigned char id,unsigned short int address,unsigned short int length,unsigned char *data); @@ -17,6 +18,28 @@ extern unsigned char dyn_master_is_bulk_read_done(TDynamixelMaster *master,unsig typedef enum {start_single_ops,wait_single_ops,start_sync_ops,wait_sync_ops,start_bulk_ops,wait_bulk_ops,ops_done} dyn_manager_states_t; // private functions +void dyn_manager_write_cmd(TDynManager *module,unsigned short int address,unsigned short int length,unsigned char *data) +{ + unsigned short int uint16_value; + unsigned char *data_ptr; + + if(ram_in_window(DYN_MANAGER_PERIOD,2,address,length)) + { + uint16_value=dyn_manager_get_period(module); + data_ptr=(unsigned char *)&uint16_value; + if(ram_in_range(DYN_MANAGER_PERIOD,address,length)) + data_ptr[0]=data[DYN_MANAGER_PERIOD-address]; + if(ram_in_range(DYN_MANAGER_PERIOD+1,address,length)) + data_ptr[1]=data[DYN_MANAGER_PERIOD+1-address]; + dyn_manager_set_period(module,uint16_value); + } +} + +void dyn_manager_read_cmd(TDynManager *module,unsigned short int address,unsigned short int length,unsigned char *data) +{ + ram_read_table(address,length,data); +} + unsigned char dyn_manager_check_id(TDynManager *manager,unsigned char id) { if(id>=DYN_MANAGER_MAX_NUM_DEVICES) @@ -188,7 +211,7 @@ void dyn_manager_delete_op_single_master(TDynManager *manager,unsigned char mast } // public functions -void dyn_manager_init(TDynManager *manager) +unsigned char dyn_manager_init(TDynManager *manager,TMemory *memory) { unsigned char i,j,k; @@ -261,7 +284,21 @@ void dyn_manager_init(TDynManager *manager) /* initialize timer */ if(manager->init_timer!=0x00000000) manager->init_timer(); - dyn_manager_set_period(manager,DYN_MANAGER_DEFAULT_PERIOD_US); + manager->set_period(DEFAULT_DYN_MANAGER_PERIOD); + + /* initialize memory module */ + mem_module_init(&manager->mem_module); + manager->mem_module.data=manager; + manager->mem_module.write_cmd=(void(*)(void *,unsigned short int, unsigned short int,unsigned char *))dyn_manager_write_cmd; + manager->mem_module.read_cmd=(void(*)(void *,unsigned short int, unsigned short int,unsigned char *))dyn_manager_read_cmd; + if(!mem_module_add_ram_segment(&manager->mem_module,RAM_DYN_MANAGER_BASE_ADDRESS,RAM_DYN_MANAGER_LENGTH)) + return 0x00; + if(!mem_module_add_eeprom_segment(&manager->mem_module,EEPROM_DYN_MANAGER_BASE_ADDRESS,EEPROM_DYN_MANAGER_LENGTH)) + return 0x00; + if(!mem_add_module(memory,&manager->mem_module)) + return 0x00; + + return 0x01; } void dyn_manager_set_period(TDynManager *manager,unsigned short int period_us) @@ -275,6 +312,8 @@ void dyn_manager_set_period(TDynManager *manager,unsigned short int period_us) if(manager->modules[i]!=0x00000000 && manager->modules[i]->set_period!=0x00000000) manager->modules[i]->set_period(manager->modules[i]->data,period_us); manager->period_us=period_us; + ram_data[DYN_MANAGER_PERIOD]=period_us%256; + ram_data[DYN_MANAGER_PERIOD+1]=period_us/256; } } @@ -329,6 +368,7 @@ void dyn_manager_add_master(TDynManager *manager,TDynamixelMaster *master) { manager->masters[i]=master; manager->num_masters++; + ram_data[DYN_MANAGER_NUM_MASTERS]++; } } @@ -362,6 +402,7 @@ void dyn_manager_add_module(TDynManager *manager,TDynModule *module) manager->modules[i]=module; manager->num_modules++; module->manager=manager; + ram_data[DYN_MANAGER_NUM_MODULES]++; } } diff --git a/dynamixel_manager/src/dyn_module.c b/dynamixel_manager/src/dyn_module.c index 8f2e76b2ab3f6e8d5312ca344b5b5e3e313cd017..4207dee7a4b61ba1383b94fe7d4d4b9441326fe2 100644 --- a/dynamixel_manager/src/dyn_module.c +++ b/dynamixel_manager/src/dyn_module.c @@ -1,6 +1,6 @@ #include "dyn_module.h" -void dyn_module_init(TDynModule *module) +unsigned char dyn_module_init(TDynModule *module) { unsigned char i; @@ -17,19 +17,21 @@ void dyn_module_init(TDynModule *module) module->pre_process=0x00000000; module->post_process=0x00000000; module->data=0x00000000; + + return 0x01; } -inline void dyn_module_enable(TDynModule *module) +void dyn_module_enable(TDynModule *module) { module->enabled=0x01; } -inline void dyn_module_disable(TDynModule *module) +void dyn_module_disable(TDynModule *module) { module->enabled=0x00; } -inline unsigned char dyn_module_is_enabled(TDynModule *module) +unsigned char dyn_module_is_enabled(TDynModule *module) { return module->enabled; } @@ -48,7 +50,7 @@ void dyn_module_add_model(TDynModule *module,unsigned short int model) } } -inline unsigned char dyn_module_get_num_models(TDynModule *module) +unsigned char dyn_module_get_num_models(TDynModule *module) { return module->num_models; } @@ -70,7 +72,7 @@ void dyn_module_add_device(TDynModule *module,unsigned char id, unsigned short i } } -inline unsigned char dyn_module_get_num_assigned_devices(TDynModule *module) +unsigned char dyn_module_get_num_assigned_devices(TDynModule *module) { return module->num_assigned_ids; } @@ -91,7 +93,7 @@ void dyn_module_set_period(TDynModule *module,unsigned char period) module->period_count=period; } -inline unsigned char dyn_module_get_period(TDynModule *module) +unsigned char dyn_module_get_period(TDynModule *module) { return module->period_count; } diff --git a/dynamixel_manager/src/modules/motion_manager.c b/dynamixel_manager/src/modules/motion_manager.c index bbcca07ee8d43db53294443c0cf49723ccad98df..9c8c7dc992e7f8098e6ab3ba4c4c4fcedf20625f 100644 --- a/dynamixel_manager/src/modules/motion_manager.c +++ b/dynamixel_manager/src/modules/motion_manager.c @@ -3,12 +3,27 @@ #include "dyn_devices.h" #include "dyn_servos.h" +/* private variables */ +uint16_t mm_eeprom_data[] __attribute__ ((section (".eeprom")))={DEFAULT_ADC_PERIOD,ADC_PERIOD}; + /* private functions */ +void mmanager_read_cmd(void *module,unsigned short int address,unsigned short int length,unsigned char *data) +{ + +} + +void mmanager_write_cmd(void *module,unsigned short int address,unsigned short int length,unsigned char *data) +{ + +} + +unsigned short int mmanager_angle_to_value(TMotionManager *mmanager,unsigned char servo_id,short int angle); inline unsigned short int mmanager_angle_to_value(TMotionManager *mmanager,unsigned char servo_id,short int angle) { return ((angle+mmanager->servo_configs[servo_id].center_angle)*mmanager->servo_configs[servo_id].encoder_resolution)/mmanager->servo_configs[servo_id].max_angle; } +short int mmanager_value_to_angle(TMotionManager *mmanager,unsigned char servo_id,unsigned short int value); inline short int mmanager_value_to_angle(TMotionManager *mmanager,unsigned char servo_id,unsigned short int value) { return (((short int)((value*mmanager->servo_configs[servo_id].max_angle)/mmanager->servo_configs[servo_id].encoder_resolution))-mmanager->servo_configs[servo_id].center_angle); @@ -43,7 +58,7 @@ void mmanager_compute_angles(TMotionManager *mmanager) for(i=0;i<DYN_MANAGER_MAX_NUM_DEVICES;i++) { if(mmanager->servo_values[i].enabled)// servo is enabled and present - mmanager->servo_values[i].current_angle=mmanager_value_to_angle(mmanager,i,mmanager->servo_values[i].current_value); + mmanager->servo_values[i].current_angle=(mmanager_value_to_angle(mmanager,i,mmanager->servo_values[i].current_value)<<9); } } @@ -252,7 +267,7 @@ void mmanager_post_process(TMotionManager *mmanager) } /* public functions */ -void mmanager_init(TMotionManager *mmanager) +unsigned char mmanager_init(TMotionManager *mmanager,TMemory *memory) { unsigned char i; @@ -313,6 +328,20 @@ void mmanager_init(TMotionManager *mmanager) mmanager->motion_op=0x00000000; mmanager->feedback_op=0x00000000; mmanager->balance=0x00000000; + + /* initialize memory module */ + mem_module_init(&manager->mem_module); + manager->mem_module.data=manager; + manager->mem_module.write_cmd=mmanager_write_cmd; + manager->mem_module.read_cmd=mmanager_read_cmd; + if(!mem_module_add_ram_segment(&manager->mem_module,RAM_MM_BASE_ADDRESS,RAM_MM_LENGTH)) + return 0x00; + if(!mem_module_add_eeprom_segment(&manager->mem_module,EEPROM_MM_BASE_ADDRESS,EEPROM_MM_LENGTH)) + return 0x00; + if(!mem_add_module(memory,&manager->mem_module)) + return 0x00; + + return 0x01; } TDynModule *mmanager_get_dyn_module(TMotionManager *mmanager) diff --git a/dynamixel_manager/test/Makefile b/dynamixel_manager/test/Makefile index 0b1f534f18d1ef42c24e01ed0e18a4d5d2567416..5ebaf504ae096678463832ddd32da27cbd77bb57 100755 --- a/dynamixel_manager/test/Makefile +++ b/dynamixel_manager/test/Makefile @@ -2,9 +2,9 @@ # modified by zerom for WinARM 8/2010 PROJECT_NAME=dynamixel_manager_test -TARGET_FILES=$(wildcard *.c) -TARGET_FILES+=$(wildcard ../src/*.c) +TARGET_FILES+=$(wildcard *.c) TARGET_FILES+=$(wildcard ../src/modules/*.c) +TARGET_FILES+=$(wildcard ../src/*.c) TARGET_FILES+=$(wildcard ../../utils/src/*.c) TARGET_FILES+=$(wildcard ../../comm/src/*.c) BUILD_PATH=build @@ -14,8 +14,8 @@ INCLUDE_DIRS = -I../include -I../include/modules -I../../utils/include -I../../c CC = gcc -UTILS_OBJS_TMP = $(notdir $(TARGET_FILES:.c=.o)) -UTILS_OBJS = $(patsubst %,$(BUILD_PATH)/%,$(UTILS_OBJS_TMP)) +TEST_OBJS_TMP = $(notdir $(TARGET_FILES:.c=.o)) +TEST_OBJS = $(patsubst %,$(BUILD_PATH)/%,$(TEST_OBJS_TMP)) OUT_FILE=$(BIN_PATH)/$(PROJECT_NAME) @@ -40,8 +40,8 @@ $(BUILD_PATH)/%.o: ../../utils/src/%.c $(BUILD_PATH)/%.o: ../../comm/src/%.c $(CC) -c -g $(INCLUDE_DIRS) -o $@ $< -$(OUT_FILE): make_dirs $(UTILS_OBJS) - $(CC) -g $(UTILS_OBJS) -lpthread --output $@ +$(OUT_FILE): make_dirs $(TEST_OBJS) + $(CC) -g $(TEST_OBJS) -lpthread --output $@ clean: -rm -rf $(BUILD_PATH)