程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) G$ I( t: U; t- C
#include <linux/init.h>
$ v  q8 j/ v3 }% l: K9 |" q#include <linux/module.h>; ~# Y9 I' J: l* Y- D5 w
#include <linux/kernel.h>. G! ~) x3 S! u2 b8 H! G- G5 j
#include <linux/types.h>$ F' j% a5 p  I
#include <linux/gpio.h>' g/ U( u* ]. w! o! [7 |
#include <linux/leds.h>
2 T+ d6 X% [7 S3 O8 G#include <linux/platform_device.h>0 V; ]5 N8 J. P  @: t7 G
4 j& J  D: ?6 ?5 E' {
#include <asm/mach-types.h>
( I. I8 V2 t8 S0 E6 h#include <asm/mach/arch.h>, h) ~0 k- L; l  d- F" l- R3 k
#include <mach/da8xx.h>& U: n: K; x/ @: S
#include <mach/mux.h>
" ~' O4 N' o+ @2 Q
5 A  p2 f/ j2 d. @) n% \#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- l# ^- W. L/ l6 p2 {
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 ^; q- f5 w3 G3 y, U3 v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: [% k: l; q- t8 Q+ e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 b* d( L0 m, _* h4 ^. P; W2 `  n8 o' L* O+ F$ Q9 O5 a6 n
/* assign the tl som board LED-GPIOs*/7 A5 D: [4 ?3 ~+ I; k9 |4 K
static const short da850_evm_tl_user_led_pins[] = {
' L! z* {: H- ?8 t0 D; b+ A( h        /* These pins are definition at <mach/mux.h> file */6 a4 H5 y) `# a# Z' k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% p2 }) e9 `, p7 q+ d
        -1
" Y; l0 m1 ^9 }1 [$ z  C. n};
0 G+ M6 t3 ^% I5 C" m; d. E% E0 q" {) _3 {8 o. g1 I  L
static struct gpio_led da850_evm_tl_leds[] = {
4 m( Q! G" w1 S2 |: d' B2 c        {2 p: @/ k3 ~0 S
                .active_low = 0,! g$ `- D( p5 f
                .gpio = DA850_USER_LED0,8 \+ J( K% r& l: |
                .name = "user_led0",
% c/ `0 |2 |; @# K" L0 T& l% ?/ s                .default_trigger = "default-on",
9 [6 j# D# v3 }6 l( v6 }        },& a! g% y9 c1 ~- E/ k/ E) W
        {9 x) _% ~5 P4 ?% D  O6 G2 u
                .active_low = 0,
$ T( Y/ k' T# e' r8 E                .gpio = DA850_USER_LED1,
1 R( n  }" V# Z: o                .name = "user_led1",
8 G  ]: t6 f+ q5 s$ ]. p7 ?                .default_trigger = "default-on",  p# G3 p. e; U4 y
        },- R7 Z. Y4 j. T4 k5 B2 J* }
        {* [& S+ B+ B( m& S" |% @
                .active_low = 0,
$ g4 \5 g8 `( |0 S                .gpio = DA850_USER_LED2,* [+ i$ |* o% K6 Z. c% c2 ^3 j( ^
                .name = "user_led2",
% W# K! a2 g6 w                .default_trigger = "default-on",3 S( U8 s9 v5 l( K* n0 N& m
        },
  y& E. y/ J$ g6 z" l% G8 y7 Y        {
% @( G& Y* p/ e9 ~. n                .active_low = 0,
0 x7 i& {) l/ O. V: \" I7 o                .gpio = DA850_USER_LED3,( M& K% {+ g5 x9 H
                .name = "user_led3",
0 a7 L# A0 T7 U. w4 G  F                .default_trigger = "default-on",$ l: b; j) U5 I' F
        },
5 K. `& S* k" e0 e# _- f};
9 |- b* A& _4 a0 u. r4 c
2 S$ ]9 a3 W! y) z, z: mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& V  [  X/ Y/ Q: h* [6 k        .leds = da850_evm_tl_leds,% ~* E+ W' c7 _2 d/ _8 X) j" c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ y4 @$ r  J2 a  a4 Q; i! m, v
};' N$ x2 W- M7 V2 W
, u. s8 o* E. M) ?4 Z
static void led_dev_release(struct device *dev)
- ^) Q' q9 e1 C* X{* `$ O( u! S) A; i5 K
};! }- f1 L& _# _3 a2 p
0 o; ]8 A# k5 M: s
static struct platform_device da850_evm_tl_leds_device = {1 N, q/ r. T: V9 |
        .name                = "leds-gpio",
3 @6 S8 z' [1 b( B: k1 y        .id                = 1,1 l- v+ O0 {. V2 N! Y' {
        .dev = {
* C( |' K# ^  X1 x' {: E                .platform_data = &da850_evm_tl_leds_pdata,
8 s7 \( W! C& t+ ?4 e0 `                .release = led_dev_release,
& c( a$ I6 v6 O  L5 U        }
, F% l6 _, ?0 i* A6 M. |};2 w+ ~( M- }( j' x+ K

2 i& @# S! R/ Z2 N: e) Gstatic int __init led_platform_init(void)& l% K) o7 }" R1 o9 u: ~- c. l2 E
{8 @3 d) X' ^/ j# Y& S( ~
        int ret;, o5 \. D  f' e' P# |4 Y& h, h$ ]# g
#if 0
0 g, E; ^; o1 ?; q9 y0 E: v" j% _        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  [- A. n* P5 i
        if (ret)
% T4 _* m+ J# c1 U+ E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ f' Z  H% e5 v0 V
                                "%d\n", ret);
9 A8 Y( I2 |; z$ r/ @* V6 n#endif; h5 _( Y; e! v. B5 P. P* R
        ret = platform_device_register(&da850_evm_tl_leds_device);$ r, Q- J+ q: v1 R: _- I9 k
        if (ret)
. Y: w, O1 j) o% V+ y: U! {) A                pr_warning("Could not register som GPIO expander LEDS");
' c& {1 k% z6 ]4 T. x9 z! v7 J2 Z: m        else
* \0 {- S2 q& X0 Y( a                printk(KERN_INFO "LED register sucessful!\n");
, H5 h8 |/ A% b  _0 M8 _
9 F, A% t4 }. q2 ~        return ret;
$ Y( G% D' M. K% J' ]2 K% ~0 g5 \  Y9 f}
( i# F# j% Y6 n7 [0 h# O
$ C/ n8 @) E' B2 u5 C9 Z8 ^static void __exit led_platform_exit(void)9 D8 n! J% Y7 m
{1 L( P8 N& N7 D! ]& _; `
        platform_device_unregister(&da850_evm_tl_leds_device);' `7 G. m, q1 [4 i2 C8 F
3 G" ?7 h9 q3 n: H0 u
        printk(KERN_INFO "LED unregister!\n");
2 N3 u# D6 l; T. E8 n7 E+ G" ~}$ r. z( K* C9 p* Q7 ^
  O, |0 a2 z$ l& l* _4 ~: J
module_init(led_platform_init);& T, D- e  k( J/ U% |
module_exit(led_platform_exit);7 d" A* s, \7 K8 p2 W
9 v+ `3 `4 I' t( E2 {
MODULE_DESCRIPTION("Led platform driver");3 T7 Q4 M- r+ @8 d2 X
MODULE_AUTHOR("Tronlong");
$ P. d; q/ w/ \& ~+ [9 o9 S( UMODULE_LICENSE("GPL");
6 Z; d, G  `$ r! V  F8 v! m, d4 g5 e/ u& k3 }* J7 @- a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 23:44 , Processed in 0.038919 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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