Flash memory won its edge over many other storage media for embedded systems, because it provides better tolerance to the extreme environments which embedded systems are exposed to. In this paper, techniques referred to as wear leveling for the lengthening of flash-memory overall lifespan are considered. This paper presents the dual-pool algorithm, which realizes two key ideas: To cease the wearing of blocks by storing cold data, and to smartly leave alone blocks until wear leveling takes effect. The proposed algorithm requires no complicated tuning, and it resists changes of spatial locality in workloads. Extensive evaluation and comparison were conducted, and the merits of the proposed algorithm are justified in terms of wear-leveling performance and resource conservation.