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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 ]& w: m4 i# u7 P  }5 m
#include <linux/init.h>& s: ]# o3 j. Q4 L3 W
#include <linux/module.h>- R/ f! `( b. P
#include <linux/kernel.h>
  |+ I0 g% `# r8 C2 G#include <linux/types.h>
) g" b0 U" \4 _5 m7 v/ h#include <linux/gpio.h>
9 \& ?/ E+ `8 s8 v/ m" Q4 e1 M+ T#include <linux/leds.h># b" j4 |0 b  {# F
#include <linux/platform_device.h>
+ r4 d  Z" e4 v% J+ s& N
( x' ]* }7 U$ H% q9 B& \% s# N#include <asm/mach-types.h>% y8 g- U, Y1 t; J/ ?' Z% s
#include <asm/mach/arch.h>
8 h' L: Q8 W5 w$ ~* p) Q7 j1 [#include <mach/da8xx.h>& a* Y6 l+ P5 c. D4 Y, P
#include <mach/mux.h>, c6 P# s( r& b5 J5 A9 ?+ @
$ |2 E. Q1 ]+ _* _$ N) c+ A( D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% f- a2 C# _% c( z* ^
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 C1 O0 @; I& b, R+ e2 e! x" I6 r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 X! w2 j& v# {4 o# o* L6 i9 V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" c# y+ G3 l/ ?3 P

& v7 ~- G5 o! l; O! L/* assign the tl som board LED-GPIOs*// `) d( x8 {4 p
static const short da850_evm_tl_user_led_pins[] = {
2 _9 L6 \7 W5 |0 o: ~2 b& Q4 `' I        /* These pins are definition at <mach/mux.h> file */
) p, W$ J$ u( G$ }; C$ q. @        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) _8 K1 f- F8 O1 X  p7 E2 b        -1+ F/ z) `% O6 H7 Y
};
; U: p( C: V0 s
6 w, P- D! M2 `5 Q( wstatic struct gpio_led da850_evm_tl_leds[] = {
" C9 V7 |+ k. m7 ^$ }2 J! c        {
; r; [& |+ U6 I9 B! H                .active_low = 0,# l; r3 a/ |% g9 Q2 b. Z- ?
                .gpio = DA850_USER_LED0,% i% F+ a% K9 s! o7 v8 H1 k! U' G# H
                .name = "user_led0",
; k8 F1 F# n+ H/ i2 T                .default_trigger = "default-on",3 [* T5 |+ {4 `8 c5 s* y/ j* w
        },+ m5 u& s( h" c
        {, h1 ?# s9 e7 k) R
                .active_low = 0,; c) e4 z5 ]3 V. u
                .gpio = DA850_USER_LED1,: k+ ]* L3 J  L& X0 r1 H& a) D# J
                .name = "user_led1",
0 y$ t* c: x; h                .default_trigger = "default-on",2 e+ W5 K% V" b* s; D/ N4 c0 i* g( j. H
        },, y( i1 j! ^2 {' ?# T' m, _
        {
0 r# _9 m. U' E1 N, ]; G3 m3 S                .active_low = 0,
% }0 L7 i. B# Z8 ?( \                .gpio = DA850_USER_LED2,7 @/ N8 k, o+ W0 A
                .name = "user_led2",
, w' _! H' t3 r+ A0 N4 S, E5 b$ _2 T                .default_trigger = "default-on",5 G  w9 {9 z3 X/ a" ~6 l
        },+ ?( x3 U) e  v
        {. `$ R; u4 v9 X- g
                .active_low = 0,
1 Q; L, ~6 X, I5 Y, s) |; \$ o% n# j% b                .gpio = DA850_USER_LED3,
; b; f1 Y2 |3 t, x                .name = "user_led3",
5 `' i0 `" c2 \                .default_trigger = "default-on",3 A! T& @& n( y
        },
4 F' q* N# {5 {* a- }1 y};
( A; R9 n4 o. \( x( G% b. p# A) s$ ~) G- v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 p6 `. ?! b2 [* ]. V, Z, X8 \! `        .leds = da850_evm_tl_leds,! X* Y- \1 G  |4 ^; s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 z- Q' p$ v% T1 h! T+ I1 i; d
};
, S0 d5 w& e. L: `
' Q, o4 B( E, t8 Bstatic void led_dev_release(struct device *dev)
" M+ k0 X& L9 D& s{* d& u) U: `! p+ ~6 [- V# z
};
. }. z: o' H% {  t  ~9 c, L+ o7 X, ], a/ U! ^
static struct platform_device da850_evm_tl_leds_device = {
7 a+ u* d( U4 Z  O' Z3 z2 R        .name                = "leds-gpio",  u8 Z: O& g3 M+ D5 H! y
        .id                = 1,4 M/ b6 O  b# h- ?& i- i7 c
        .dev = {
2 |3 i" `1 }- ~. Q1 _                .platform_data = &da850_evm_tl_leds_pdata,
( B+ a( P8 Q5 Z( p- w                .release = led_dev_release,2 Y3 [& ~8 V9 `4 @$ z. G
        }
% x2 a! ^  |9 b4 V};7 p3 Z5 L. ~1 V2 k
: g  A; R4 `! w
static int __init led_platform_init(void)
( x' p% |0 M) y' P. T/ ]5 t{) r* r$ \" f; ]% l9 W& V
        int ret;
7 T  H3 K9 C6 G% Y6 m#if 0
% O/ I" d$ H( w4 D& `# i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  d3 J8 i6 p( ~) k        if (ret)
! p, z% W& k+ L7 z2 `$ P5 G                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  w  C/ ?# J& ~5 M2 g6 f; e" b
                                "%d\n", ret);0 ?. _3 Z3 u* o* q4 v
#endif
4 h9 _  f6 W2 d; V' E! ~        ret = platform_device_register(&da850_evm_tl_leds_device);
5 h* e0 T- r  P, [' S        if (ret). i! W0 A. ^" \" q, c' {
                pr_warning("Could not register som GPIO expander LEDS");+ j& @9 r' W2 T& M: ?% a
        else
5 _' Z' a) B% ]( C, D/ c9 E7 h, e                printk(KERN_INFO "LED register sucessful!\n");1 k/ c7 r) M9 I7 v0 H. K
  o6 y, C' ~6 m4 h. o3 x4 _1 e
        return ret;
7 Q4 \2 O2 ?* F7 B% ]}
! y5 X  f& M* l/ [& i0 j# Q1 _* f* ]5 r  U
static void __exit led_platform_exit(void): R& B; ^$ `1 t5 g. B+ E' @2 c& _/ _
{
& j) {% G8 T6 c: I/ w) C, B        platform_device_unregister(&da850_evm_tl_leds_device);0 ?. I, ]1 W2 o( K( x

: ~4 I# F8 }. \6 z2 |( K  l; M$ N        printk(KERN_INFO "LED unregister!\n");7 M' K: r6 r+ m* ^
}% V; R8 S! l1 a# Y; t
: P+ q' b7 V$ g4 X
module_init(led_platform_init);  l. \7 q% `. S
module_exit(led_platform_exit);
# g# h+ v1 J: c! e) z; ?7 \7 S. {0 W7 R* j1 t) {6 R
MODULE_DESCRIPTION("Led platform driver");# N, o0 w! u2 l" r% D
MODULE_AUTHOR("Tronlong");& l" x$ I. u" D, ^  t
MODULE_LICENSE("GPL");7 ?+ i; w" s9 V* f2 N

* ?$ h8 S4 V$ H- x! G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 08:09 , Processed in 0.038342 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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