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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 f( V% s8 R' @# h
#include <linux/init.h>
5 Z' V1 a( l- `#include <linux/module.h>' P) H( }* A7 i
#include <linux/kernel.h>
: X6 g' A# x, \9 N! O1 e8 n#include <linux/types.h>
) p5 z" o8 v0 k9 O#include <linux/gpio.h>0 X/ s/ z; f) e; x* H
#include <linux/leds.h>3 J# N; Y# o) f+ j9 ^# J
#include <linux/platform_device.h>5 B" y% y( y4 [* J2 F) T
9 y- |4 _. M: X. N9 Y( R% L5 j2 E
#include <asm/mach-types.h>
: D' T: l3 f) g! X) c1 j2 \#include <asm/mach/arch.h>
3 j1 c' K% m  |3 {6 T2 \#include <mach/da8xx.h>
! p7 A% c5 I5 k#include <mach/mux.h>+ l; r* y+ B6 D( H4 ?
- M4 A3 r* G% z6 g) G: i( Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 C! z6 U! e& `& T#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! {/ n8 F: M, M; x6 [
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; s: s/ U' O% o' }7 P" A#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 m. ]1 i* I; C  F# N4 Y3 ~  b* H$ d1 W& w
/* assign the tl som board LED-GPIOs*/- R7 B4 a. p- Y9 @
static const short da850_evm_tl_user_led_pins[] = {! `' j2 Z  _: k" M% h' j" n5 a
        /* These pins are definition at <mach/mux.h> file */
* r. B' e  i9 \% f) }1 F5 P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* ?( U2 ~4 l; T' n5 m9 f
        -1( z# w6 J5 e1 h1 l1 B: w  e+ m
};' Y4 M$ _- X( `  K
* V8 I; h' U" w5 @' M1 G
static struct gpio_led da850_evm_tl_leds[] = {) r" V! G* ^3 s, g5 w( c
        {8 K* f6 {: ]" X2 k
                .active_low = 0,0 k8 V5 Z9 S. ^6 s
                .gpio = DA850_USER_LED0,* t6 X' r- v& y
                .name = "user_led0",9 O+ ]; t! Z" V0 L% w! w# H0 A
                .default_trigger = "default-on",4 Z. l% d' P% x6 K
        },  e! v* l  f4 d1 [* F
        {
* C; w# J& T4 L" L                .active_low = 0,
) Z. A( R2 d9 O, N( T                .gpio = DA850_USER_LED1,
4 M0 i7 g7 ^% F( g) d                .name = "user_led1",
. T) x) U1 T* D% n0 V% B- L                .default_trigger = "default-on",
; B2 A* N  B! r        },$ F1 h2 _* y1 k/ v
        {
5 _. x2 I$ K" L# ?; l4 G9 F0 {                .active_low = 0,8 A1 |( E& q3 t* j5 l# M
                .gpio = DA850_USER_LED2,
( ]+ A( k! J; j1 [% A                .name = "user_led2",
3 S% M, K' @; m% G; j- |' ?                .default_trigger = "default-on",! _; e' M$ i2 l; i
        },
+ J& o  ]1 Q2 G# |$ X* Y        {
! L2 R" i+ r: A                .active_low = 0,$ r* N" z$ i( n" k: X( p# s
                .gpio = DA850_USER_LED3,
- T: L  t8 e% _7 H- V                .name = "user_led3",
  G& B& _5 }( B6 S, N4 g                .default_trigger = "default-on",
3 l- a) l: H  \2 Y/ b  |9 m. y+ S& G: |        },
  Q5 z( Z& h4 j};
: [/ I4 ]3 Q0 K
. i0 k+ t! X' H1 Y) j, |8 Vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& F0 P$ [7 G/ v6 {        .leds = da850_evm_tl_leds,0 o3 {0 [: J* S+ E
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: I3 x9 i' C' ?' k};; Z2 n1 c7 f/ y( q7 f
4 |; `9 t3 F' ^# U! k" J
static void led_dev_release(struct device *dev)
" v2 @% @, }( o! n3 y9 N( m{
' D* i  }4 x# b2 V% i};+ F$ I, p( L$ X
9 M6 {# k& @9 }
static struct platform_device da850_evm_tl_leds_device = {
) ], F6 L6 b; R, I" E8 r7 a6 x        .name                = "leds-gpio",
1 ~  J4 j& i, d$ J/ C        .id                = 1,. r: `, X& O, [9 ?2 ]
        .dev = {1 `8 }# u$ n  ^. k( }
                .platform_data = &da850_evm_tl_leds_pdata,
% G$ G4 J7 K. c' B                .release = led_dev_release,
( g9 ]) S7 ]! G6 p, x        }- e" K4 B' [5 B. ?7 i: W9 U
};! g8 b# P2 {& _8 n& O' {: g
2 Q& l- c6 Q8 |) p: A! \
static int __init led_platform_init(void)
" I/ Z# d: f/ ]: [/ K' f0 H{6 \  a0 E* k# G: q8 K
        int ret;; r, m- q* F$ X1 @$ [5 B
#if 0
& _) r  b, e: Y; Q* e$ ]' u2 D8 r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 \) I- |; \0 Q/ u. Y4 |: E' O        if (ret)9 \! O* U" a* v7 y6 b
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  I! C& w, B3 ^( y- _, _
                                "%d\n", ret);" {) b: _0 a) y- y& q
#endif5 q# ]( v# ?) M& m
        ret = platform_device_register(&da850_evm_tl_leds_device);/ e! G- [7 T8 P% t4 I
        if (ret)5 I& O0 Q7 f& G+ S- i4 u+ {
                pr_warning("Could not register som GPIO expander LEDS");/ H) I; L. [/ ]$ A& h
        else. e3 a& Y5 N3 H3 a. J
                printk(KERN_INFO "LED register sucessful!\n");7 b) X: T' ^4 L; p  I
7 P$ D4 D1 ]  A$ d
        return ret;
( ~$ P  X* U# l  l. F4 m}
! T( j( z6 N+ W; r$ \+ S5 O/ P
/ j0 A. I" q" h4 f" T2 istatic void __exit led_platform_exit(void)+ \% Q% c2 d; ~6 |
{# c2 y8 r9 e* O. ?! c$ i; N  l
        platform_device_unregister(&da850_evm_tl_leds_device);
7 s6 R+ [7 t5 r* I
& a$ U0 c* ?# `7 Y1 u% q% w        printk(KERN_INFO "LED unregister!\n");: |" o5 D+ _; o9 Z  J( \* ]
}
4 s* T; M; [  K2 \5 \% [# t& u8 C8 U) c7 S3 E( W3 i
module_init(led_platform_init);/ t% g, W) b0 g6 W7 F$ F& Y
module_exit(led_platform_exit);
# I6 U. ]- q6 @- b, U$ D
( p9 y% ~2 W% j% J& e: j* [MODULE_DESCRIPTION("Led platform driver");# @9 V7 T+ ]* d' X
MODULE_AUTHOR("Tronlong");- O4 x- }  j7 {
MODULE_LICENSE("GPL");
, J3 x! j+ B4 F/ m( j$ r' a; ~
9 u8 R6 x  N' z/ ~2 D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 11:42 , Processed in 0.037559 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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