본관은 함양(咸陽). 자는 자허(子虛), 호는 토헌(土軒).
1391년(공양왕 3) 불교배척 상소문으로 사형을 받게 되었으나 정몽주(鄭夢周)의 변호로 사면되었다. 1404년(태종 4)에 사헌부좌헌납(司憲府左獻納) 재직 중, 전에 선공감승(繕工監丞)으로 있을 때 관용의 철(官鐵)을 사사로이 사용하였다는 사실로 인하여 장형(杖刑: 태장을 맞는 신체에 대한 형벌)에 처해졌다. 1413년 수군도만호(水軍都萬戶)로 회례사(回禮使)가 되어 일본에 다녀왔고, 그해에 전라도수군도만호 겸 해진군사(全羅道水軍萬戶兼海珍郡事)를 역임하였다.
1417년 제주목사에 임명되었으나 관물(官物)을 축재하였다는 죄목으로 파직당하였다가 이어 의주목사에 임명되었다. 1418년(태종 8) 병조참의를 거쳐 이듬해 좌군절제사·전라도수군도절제사·경상우도수군처치사(慶尙右道水軍處置使), 1421년 도안무사(都安撫使)를 지내고 좌군동지총제(左軍同知摠制)를 역임하였다.
1424년 북변에 여진의 침입이 잦으므로 조정에서 경원부(慶源府)를 남쪽으로 옮기려 하자, 이에 반대, 부령(富寧)에 존속하게 함으로써 국토가 축소되지 않게 하였다. 1431년 강계절도사로 재직 중 침범해온 야인들과 싸우지 않았다는 죄목으로 직첩(職牒: 관직 임명 사령장)을 삭탈당하였고, 전옥서유사(典獄署有司)에게 검거되지 않으려 하다 왕의 엄명으로 고신(告身: 관직에 임명된 자에게 주던 사령장)을 추탈당하였다가 뒤에 복관되었다.