I walked from Lisbon to Santiago last year (634 km). IMHO three weeks is not enough unless you plan on walking 30 km + daily. Given the comments above, I recommend Albertinho's comments above to be the closest to reasonable.
I suggest starting in either Tomar or Coimbra and heading north. From Porto to Santiago (250 -260 km +/-), you can choose several routes, including one along the coast. I think there are three distinct routes that all start in Porto and end at Santiago. Last year, I stuck to the Central route that Albertinho suggests. This is about 250 km, and takes 10 days. But, if you want to proceed up the coast to Finisterre, then backwards to Santiago, it will be longer and take more time.
Whatever route you choose, you wil have a great time. The portuguese people are amazingly polite, friendly and generous. Many of them speak at least a little English (their prime time TV is dubbed).
Also, whatever route you choose make certain you obtain two or more sellos during the final 100 km enroute to Santiago. Before that, one sell / stamp per day is adequate to establish your line of march and pace.
Hope this helps.