When I place function directive 'code', the Keil compiler recognize it as supposed to be located in execution area. But how the Keil knows, the 'code' can only mean CODE. In my case CODE does not exist, but the ECODE only. And there is no workaround to push 'code' into ECODE segment.