程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10588|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! R2 {* E2 ?. z! b#include <linux/init.h>
2 @6 f6 `6 M9 p5 }# {0 z( z#include <linux/module.h>
. g5 k: t* X- W# b4 K- D#include <linux/kernel.h>  k& L+ E' F- y
#include <linux/types.h>* C% k2 ~1 N0 M
#include <linux/gpio.h>
* K0 }! A3 @7 k; `7 `9 @2 t3 Z) G#include <linux/leds.h>
7 K' L: ]. M! V& e7 Q4 e9 ^5 |#include <linux/platform_device.h>3 M& V; x' d! F5 g0 q% E0 e( ]2 Z' \. X
$ R! B3 j, M1 o* f0 }/ n3 W! a
#include <asm/mach-types.h>
7 `1 r7 w  \5 t#include <asm/mach/arch.h>/ L$ Y# X5 [. U
#include <mach/da8xx.h>1 n! D5 J* G+ H6 S: P7 z' d
#include <mach/mux.h>
$ ]7 `" b7 p( O& k" d. u  L! }
7 d" X% t3 @, P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; q+ W4 C1 T5 c$ d& |) m! w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); r- w$ Z1 w- r) v* e9 A7 |
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) I) ?1 \2 f1 V& y) ^/ e( ]" i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ v, C% b' |& W5 v7 r3 F/ p

% b. k& r1 ?: |- j: P4 q  a/ r' S/* assign the tl som board LED-GPIOs*/
5 o" S' d8 o! V7 r* g$ lstatic const short da850_evm_tl_user_led_pins[] = {* R% |8 r$ e( A' K2 D4 s- h
        /* These pins are definition at <mach/mux.h> file */
7 e  @4 k5 H: z' @# w" Z" B& |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 S& k- k7 i" Q0 A1 W
        -1/ V  I( l$ W3 N1 v
};+ R& \$ w# E1 J9 D+ l5 ?

+ E$ Q- d; V% ~& ?1 _static struct gpio_led da850_evm_tl_leds[] = {
" q' w8 ^; D& k        {9 d, {9 \& m. m; K0 l4 Z
                .active_low = 0,$ c& `, k( E3 |6 t+ V# S5 b
                .gpio = DA850_USER_LED0,
& c" I7 w) Y+ I) p                .name = "user_led0",
7 e' @+ d( R1 P$ |2 a$ F6 e5 Q                .default_trigger = "default-on",
: i/ a. S% O) _# ?3 x        },0 r2 K5 ~2 @# D
        {
% u: A+ M$ R+ C$ P' F                .active_low = 0,9 }( s- X+ y6 p1 c2 t( B1 f
                .gpio = DA850_USER_LED1,  |* ~1 [4 Q/ c
                .name = "user_led1",
8 O: t! `9 I+ z. ]& K  d$ b                .default_trigger = "default-on",
. p& U* d% f0 t        },4 G( M1 u# q5 s" Q
        {
# I4 o- ]; H0 h- N/ `) W                .active_low = 0,
/ g8 `4 P/ w) [' v                .gpio = DA850_USER_LED2,5 M, I+ ^) V" {
                .name = "user_led2",
/ R0 H0 ]& O0 W) N9 r, ^; _0 A                .default_trigger = "default-on",6 j: L! b9 [/ F. X( b% C- k
        },
$ K; {7 u% T: q; I        {
) ?9 W+ G" r0 B3 H7 i7 l                .active_low = 0,# L! k% r6 t  ~4 ^" s7 y, n* B
                .gpio = DA850_USER_LED3,! @2 U. F% p  A0 r( ^) p1 |
                .name = "user_led3",* T- z& d4 y; d& _0 P+ P" z
                .default_trigger = "default-on",) n8 q5 B* h" k% f
        },7 U8 H5 i% J: a5 j% {% d
};
! y1 Y) |/ ]2 A) D
/ k9 D" x9 y' astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. D+ R5 N9 v- k5 {' k" w$ U& g: `        .leds = da850_evm_tl_leds,. {- F4 f3 ?5 \2 \) ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 o; Y% |$ a# [( P  i$ m};# t& P! i# x1 n: Z0 M- U
3 e: ~9 Y' G1 ~# }  r# m. M
static void led_dev_release(struct device *dev)$ `0 B6 D+ O- G; R2 @5 e% Y2 W
{
5 e. N) j: L; o' A0 D0 r};
. }+ }0 Y$ `. T8 z2 \* F/ N
: Y1 d/ {/ i% |static struct platform_device da850_evm_tl_leds_device = {& }& E: O9 t1 i" X. q8 Y5 k7 u
        .name                = "leds-gpio",
( j& h" P0 `, E6 n        .id                = 1,7 ~6 A0 Z4 M. O+ o0 f
        .dev = {. c1 |+ l+ U' X$ @0 r% c" @
                .platform_data = &da850_evm_tl_leds_pdata,3 y/ T6 z* D: M' W1 q
                .release = led_dev_release,; ]" ]& D7 G. F. E. e5 {( K, ~
        }! \8 G1 r5 f" ^+ c  C5 D1 o
};
0 Y3 q9 t2 ]% `# b2 j7 W5 v2 K) w1 S- }6 i
static int __init led_platform_init(void)
$ j1 r& m3 q+ r& _9 |7 n{& l. Y% E. w$ C; h* {
        int ret;8 I% `2 n1 ^1 V, ~
#if 0
# I  ]$ A. m. }) H7 z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* l# U7 z2 g7 c* L% \        if (ret)
/ w* c) Q2 F& k4 }# u( K1 @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 j2 l, \% F# B. T, r( p
                                "%d\n", ret);
! G7 Z" _$ ?5 ~9 m; X#endif
: z* t- @% j4 e% d1 X5 V        ret = platform_device_register(&da850_evm_tl_leds_device);
7 Y" P: ^! R; v: h  E$ ]: @6 L        if (ret)
7 [5 V; t1 E. Q/ E% R1 L; A                pr_warning("Could not register som GPIO expander LEDS");' G* K/ m, q6 ]: W5 {
        else* E5 h4 ?" R  O, P+ T6 l
                printk(KERN_INFO "LED register sucessful!\n");( Z9 B$ N  V2 ]  H) X8 G; G) C4 ]

  }8 H5 R! u& y! ?$ ~2 U' R, H+ S1 V        return ret;' \. L# F6 o) p8 d' l6 `" s
}3 p! s! @$ y! \: X$ M  [

3 Y: Q, Z+ u3 r) {- a7 Estatic void __exit led_platform_exit(void), J( H: b+ m* X( n
{' c; C; L) ?& L2 x6 j
        platform_device_unregister(&da850_evm_tl_leds_device);
/ @! Y( L1 ?1 q9 w- `! h+ r( t- D7 Z4 j' m* X
        printk(KERN_INFO "LED unregister!\n");% i, t& h8 X: Z+ n6 b+ h% y: |
}6 x" q2 N" s1 L/ u

  K( g2 _4 D; z0 H! L1 i/ tmodule_init(led_platform_init);
4 Y3 A& @4 a  h& T  [4 h% I4 Omodule_exit(led_platform_exit);
+ D; K$ R; i" i! Y1 Q. T% ~$ W) |2 b) J/ l1 j# ^! s
MODULE_DESCRIPTION("Led platform driver");
. _. x3 U' T: S1 f' R- s4 G, FMODULE_AUTHOR("Tronlong");
( _1 H5 x# \% q$ G+ |, PMODULE_LICENSE("GPL");& L- }1 m& h: [+ v6 B/ v2 Z% R
5 _1 l$ t7 |" M7 H; e6 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-20 11:15 , Processed in 0.038925 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表