The 28-year-old spent the majority of last season with the Saddlers and continued to feature for Dean Smith's men during pre-season while his future was discussed.
"I am relieved to get things sorted," he told the club's official website. "It's been a long process, but I am happy that everything is now agreed and I can concentrate on the season ahead.
"I feel fit and determined; I've come back in decent nick and it's been nice to get a couple of games and a goal under my belt already."
Smith added: "It's a situation that's dragged on for a while, but I am happy that Craig has signed a new deal with us.
"He was an integral part of the squad that did so well in the second half of last season."
Westcarr, who began his career with Nottingham Forest, scored five times in 11 starts last season after making his loan move from Chesterfield permanent in late January.