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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, e) a0 P) r; _* ?% C$ s
#include <linux/init.h># d, [: _- I9 U; Y* e9 C
#include <linux/module.h>
( k. S; V; W! k  @& y1 U#include <linux/kernel.h>
6 L8 g* G; @: h/ I( u( Q. H6 q#include <linux/types.h>. Z1 F- n. a6 k: j- Y9 r' B
#include <linux/gpio.h>
: Y# m4 m( y- C4 x#include <linux/leds.h>
( E( q9 T7 d5 Q/ f/ w" X#include <linux/platform_device.h>+ r+ r2 o$ U% u9 ~

( A7 M1 r3 g# ^8 J& M6 w* Z#include <asm/mach-types.h>
5 s  p! z9 H! o: l  R* b#include <asm/mach/arch.h>
% _% g" J( o5 f6 ?/ K#include <mach/da8xx.h>
" e& Y: s  y3 E#include <mach/mux.h>
9 z6 ^7 v$ R  v% X# b* H- g! W% R0 W9 ?' T! H' e' H1 |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). h2 |9 \( u& i' O; A# }0 d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ u5 y2 U, A3 Q' o9 W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 d2 p6 q* B+ g! t  i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# P- o3 Q# ^4 V8 u( y$ _9 o7 X( M! p" r

8 k/ r: E( b; ^! ~2 M' j- m' P/* assign the tl som board LED-GPIOs*/
- D5 I$ L3 Z3 U' @/ Gstatic const short da850_evm_tl_user_led_pins[] = {8 v& D" _- Q$ l6 w8 q$ q
        /* These pins are definition at <mach/mux.h> file */  a. b' W  L/ I, q2 N/ ~
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, K' l* e9 y  O, b
        -1
3 f) p6 s  X# s8 G& b; ^- o};
; C, I7 k5 X( e9 B, [2 |
' L4 D; ~- a8 L& ?3 K; O' ystatic struct gpio_led da850_evm_tl_leds[] = {1 ^, T5 U' E# R1 Z
        {6 K* j4 E& {) e  O1 B- F, P
                .active_low = 0,
' i; f. W' U- M8 J+ e7 Q# z  Q                .gpio = DA850_USER_LED0,! w! x  T' N0 ~1 k* q6 k
                .name = "user_led0",! v& q& i9 p, P; P3 m; Y- f3 ~* ]
                .default_trigger = "default-on",! j: O- {: T% g2 ?& e  v3 h6 j
        },7 i3 F/ X7 A% a( z; T5 X
        {
, O9 M2 |' R6 ?  C9 C                .active_low = 0,- n5 X  S. p( |, g/ V
                .gpio = DA850_USER_LED1,
8 Q  {; P! g4 p8 o7 U5 s! y                .name = "user_led1",5 B. P. M5 i% U$ @
                .default_trigger = "default-on",2 D' O/ S- r0 e9 n9 g! j
        },; D$ q" m! q8 ^& W6 ]9 |* ~& u) {
        {0 L1 W. ]+ |- I0 |0 s8 o6 h
                .active_low = 0,
9 ^! L6 Q6 Z8 P+ g5 i                .gpio = DA850_USER_LED2,
$ f  E# v! B% N  c: {" C" K                .name = "user_led2",- B: `0 f8 N; ^! n3 x5 }1 T1 j
                .default_trigger = "default-on",, b1 h' B3 c1 o# V' }& n9 u
        },5 B. e. D) ]0 Y9 y' i: I1 u
        {
' W8 ^2 s0 E  o7 E1 n                .active_low = 0," R5 U! V' X" i
                .gpio = DA850_USER_LED3,
) ^+ O* R# v2 u5 P$ Q                .name = "user_led3",7 ?; I- K; R) }
                .default_trigger = "default-on",
; w& b6 z+ I, }2 a! c/ u        },
% |2 G5 m  I% Y( ~4 }- e};. r7 H" Z  x0 t; T/ p7 V5 c# O1 p
8 N3 y* e6 Q; Q2 t0 _* w1 |. R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' G$ Y- d$ {7 f9 T4 T
        .leds = da850_evm_tl_leds,
. M  @7 K& S  }+ K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; ~: c! x7 x) H9 ~) t};
" F& J* [) n* z8 P! ~/ v, N, L% f6 F
static void led_dev_release(struct device *dev)
. q* w* n/ U3 ~+ F, V6 F0 |7 o{
- |' o5 ]+ Y) o$ @0 w% r$ g};- O! A& m8 Q& O) }  X

5 X5 n5 p2 I+ R  a; ?static struct platform_device da850_evm_tl_leds_device = {
) h+ L; M) a" r5 f7 d        .name                = "leds-gpio"," Z; L3 w* N* b$ m8 {+ J* d6 h+ I
        .id                = 1,( g5 Q5 I) ^! i' P% A
        .dev = {
- Y9 b& Y" K- W& s6 x1 c                .platform_data = &da850_evm_tl_leds_pdata,
" Q9 n" J5 j# U% J" j5 s7 Z- W                .release = led_dev_release,4 w- {$ z, ]: l
        }
3 o4 T7 s* k3 |# t+ x};
0 m! b$ e: j- q% h; }
# d6 W  _: V# ~6 M, G) dstatic int __init led_platform_init(void)6 ^, @6 T; L! V1 K/ W
{; c) _0 W8 x$ m; @- P
        int ret;
# L0 w- p; w; x' V/ H5 H#if 01 n  H& F- s9 m- T
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" n# R3 }; x6 w# v7 U" T0 I( ~+ X6 N# K
        if (ret). j" ~$ _2 \8 E+ T; c8 S( Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ f2 b9 \5 v) F* H0 `* @2 h% C+ P                                "%d\n", ret);
* M7 c+ b4 B" O0 U( b9 G% ^; e7 ]#endif; }6 l! a; b0 y4 \: U5 r
        ret = platform_device_register(&da850_evm_tl_leds_device);9 b/ O/ q& l! m( G1 [& ?
        if (ret)
  R$ c) d. U9 A/ M* H                pr_warning("Could not register som GPIO expander LEDS");7 K" E+ Y4 l1 F. M' T  r
        else5 X' g; L9 }( Z' f, n. |
                printk(KERN_INFO "LED register sucessful!\n");
- [  C- x6 N6 n( e  C( |- s7 U8 u; j+ T/ Y. r" w# u0 D  I
        return ret;5 q0 z( |0 H" X! Q7 U
}
& u8 _6 F1 y$ e6 t- Y
3 Q* B  c. b# v, n- [- {( jstatic void __exit led_platform_exit(void)- q, }, B% h! a% |2 d' ~* D
{
7 }% j1 K' V) Y) K2 q  o        platform_device_unregister(&da850_evm_tl_leds_device);
' w) W- u$ B6 h) a; {6 W
2 b, o- Z: w5 p% P  t7 [8 K        printk(KERN_INFO "LED unregister!\n");( t, E) ~, Q2 m" O- X, P
}( h! }/ I8 ~% K, g* r

& w8 l8 X- Z* Y6 b: smodule_init(led_platform_init);; b3 P- T5 R1 G& ^% U! c8 W3 U
module_exit(led_platform_exit);
; g! t2 ^- h$ l" K7 O( E# S8 e5 c0 L3 u5 G; g% p
MODULE_DESCRIPTION("Led platform driver");8 q/ w. _3 g3 W8 @
MODULE_AUTHOR("Tronlong");
) q2 R% @/ c+ z0 K+ yMODULE_LICENSE("GPL");
: |, J' ]8 M* \
1 Z; ^  [! s* Z; Y$ Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-17 19:42 , Processed in 0.038819 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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