General Cannon was commissioned in 1967 as a distinguished military graduate from the University of Texas. His early assignments included a detail as an Infantry Officer with the 3rd Battalion, 10th Infantry, 5th Infantry Division and as a Company Commander with the 2nd Battalion, 60th Infantry, 9th Infantry Division in Vietnam.
Following attendance at the Command and General Staff College, he became the Executive Officer for Petroleum Distribution in Korea followed by an assignment as the Assistant Executive Officer to the Deputy Chief of Staff for Logistics. In 1982, he was assigned as the Division Support Command Executive Officer, 1st Cavalry Division followed by an assignment as the Director for Bulk Fuels, 200th Theater Army Materiel Management Center, and then as Commander, 8th Infantry Division Support Command.
During his assignment as the Assistant Deputy Chief of Staff for Logistics, he temporarily served as the commander for the Support Implementation Force (IFOR) in Zagreb, Croatia. In 1999, General Cannon became the Acting Deputy Chief of Staff for Logistics and in 2000, the Chief of Staff, Army Materiel Command.