def start_program_page_with_buffer(self, buffer_number, address):
        """!
        @brief Start flashing one or more pages.
        """
        assert buffer_number < len(self.page_buffers), "Invalid buffer number"
        assert self._active_operation == self.Operation.PROGRAM

        # get info about this page
        page_info = self.get_page_info(address)

        # update core register to execute the program_page subroutine
        result = self._call_function(self.flash_algo['pc_program_page'], address, page_info.size, self.page_buffers[buffer_number])
!
        @brief Start flashing one or more pages.