A communication apparatus, comprising: a memory that stores first data on firmware before update , second data on firmware after the update and a table in which the first data or the second data is associated with an address where the first data or the second data is positioned; a processor that executes processing based on the first data or the second data positioned at the address defined in the table ; further comprising: a writing unit that determines, for each cycle in which the firmware before the update is executed, whether or not the update of the firmware before the update is required at an update timing corresponding to processing status of a process of a program of the firmware before the update , based on the presence or absence of an update flag at an updating point which is incorporated in advance into the firmware before the update , and rewrites the address associated with the first data in the table to the address where the second data is positioned when it is determined that the update is required, wherein the updating point is incorporated in advance at a plurality of points including before an execution of a single process, during the execution of the single process, and after the execution of the single process, when the single process corresponding to a function included in the program of the firmware before the update is to be updated. a memory that stores first data on firmware before update , second data on firmware after the update and a table in which the first data or the second data is associated with an address where the first data or the second data is positioned; a processor that executes processing based on the first data or the second data positioned at the address defined in the table ; further comprising: a writing unit that determines, for each cycle in which the firmware before the update is executed, whether or not the update of the firmware before the update is required at an update timing corresponding to processing status of a process of a program of the firmware before the update , based on the presence or absence of an update flag at an updating point which is incorporated in advance into the firmware before the update , and rewrites the address associated with the first data in the table to the address where the second data is positioned when it is determined that the update is required, wherein the updating point is incorporated in advance at a plurality of points including before an execution of a single process, during the execution of the single process, and after the execution of the single process, when the single process corresponding to a function included in the program of the firmware before the update is to be updated. a writing unit that determines, for each cycle in which the firmware before the update is executed, whether or not the update of the firmware before the update is required at an update timing corresponding to processing status of a process of a program of the firmware before the update , based on the presence or absence of an update flag at an updating point which is incorporated in advance into the firmware before the update , and rewrites the address associated with the first data in the table to the address where the second data is positioned when it is determined that the update is required, wherein the updating point is incorporated in advance at a plurality of points including before an execution of a single process, during the execution of the single process, and after the execution of the single process, when the single process corresponding to a function included in the program of the firmware before the update is to be updated. <EOS>