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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 t; Y. H: k' c* {5 X+ n1 n
#include <linux/init.h>: L% z$ ]5 B6 o2 r3 @& T' C
#include <linux/module.h>
- P! O& l/ r( A) i; ]#include <linux/kernel.h>
% x# O8 W) n4 r* F#include <linux/types.h>4 Z& o. F5 h! l3 N( A0 P! b& S
#include <linux/gpio.h>
: B% }8 T/ c$ g" F2 n+ \#include <linux/leds.h>! m2 |5 a5 @* t
#include <linux/platform_device.h>1 h; d7 J5 o1 N" y

1 \& O, s- Y3 I$ g#include <asm/mach-types.h>
$ z9 x6 {8 z2 {) C#include <asm/mach/arch.h>
( |- Y) q% U8 T. Q, G) Z#include <mach/da8xx.h>4 {4 C& A; k' V7 C4 J! U" L: T* ]& B
#include <mach/mux.h>& y2 ~# d3 f  t

4 p+ ~) \- B$ x( k" ^* j" A1 |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" v- j6 x$ D6 Z/ w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 C3 m- ^1 u: F" S0 R0 E, b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! t" r7 y- c. D5 g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ c. v5 s* B' @! G3 ~/ L
/ J) P5 e, q  i% y' L* P/* assign the tl som board LED-GPIOs*/
4 @, L! e: i1 H8 L  ^" v6 ~' t1 T) dstatic const short da850_evm_tl_user_led_pins[] = {
, j7 j- ^. l$ H# N8 f* N3 }        /* These pins are definition at <mach/mux.h> file */3 }/ u6 ?& ^2 M. m' n& t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 F* w/ a. n: C9 F, r# k2 y        -16 i3 o# H; \& u, B1 V+ l* h
};, I$ U# U  a) v3 K9 ?5 R- D$ ~; _

! U7 n4 M% ?7 V# T$ p: @5 sstatic struct gpio_led da850_evm_tl_leds[] = {
" I) X5 L+ `/ E8 Q% L! F        {
; v$ O  i* E  U, R+ H3 M                .active_low = 0,
0 N7 z" x# L7 \. u                .gpio = DA850_USER_LED0,' j' c5 U6 ~1 ^/ n# ~6 A, S! W
                .name = "user_led0",1 y* A1 X/ `: c4 m5 ~2 E
                .default_trigger = "default-on",0 J$ o! u* Q7 D% ~
        },
# a+ t# m/ C& i9 v8 |        {
  C2 w% P9 P( Y0 R! {  b. g  r                .active_low = 0,
" q9 ?1 U$ l- y2 A                .gpio = DA850_USER_LED1,
( B0 t5 C7 a9 K2 L1 D# p                .name = "user_led1",! u4 x" ?) F+ U
                .default_trigger = "default-on",
+ j$ a5 [7 a8 [        },5 y" X9 N" }8 u) I( m+ \8 ?4 g
        {
+ k/ u- m8 P  e& x$ ?: i                .active_low = 0,, f1 [' a( F( ]( X8 R) Y+ p
                .gpio = DA850_USER_LED2,
; l' l+ L1 C/ ?$ _                .name = "user_led2",3 _8 z: w6 M) V% N0 u
                .default_trigger = "default-on",  C- A! i/ e; s2 j. d9 H7 Q) W
        },
2 x- b/ ^: |" m) Y2 i8 v        {$ G8 A8 B' {' o3 Z; [
                .active_low = 0,4 A/ h3 {( ~# }7 k3 V2 C4 c) M- V+ s
                .gpio = DA850_USER_LED3,8 N- ?( m: a7 j8 g+ B8 p
                .name = "user_led3",5 m+ \/ E0 l( Y* ~( `
                .default_trigger = "default-on",( j0 N: L& H! D# O( L
        },
3 `) \6 b& t& ]" N5 M};
$ e" t2 Y! Q! N3 D; w6 \, F
/ [$ V6 U' o- ]" g1 vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ L5 A0 W  P# N, ?  O% O4 p( X
        .leds = da850_evm_tl_leds,
5 {  \8 I# _4 b, g& F6 S. j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ ^! K; J" {/ b- q* H
};
9 T- B6 ?1 B! x( }
5 o5 i# S. z/ P; k% M% h+ U: Astatic void led_dev_release(struct device *dev)% o" t# }" ], E) F3 p. l7 y. h" B
{
8 a2 J, v5 }7 v( K; ~8 R9 ~$ k; ^};. `* C1 n, a7 Y/ T# @

" H/ M. c+ @8 I1 |* p4 M$ V1 E0 Y' q1 hstatic struct platform_device da850_evm_tl_leds_device = {( F' i6 d4 |# d7 q8 ?
        .name                = "leds-gpio",
6 _  R/ Z$ V1 l) U" f- X3 y        .id                = 1,
# s( G1 c& \" q) V. e        .dev = {
& f- `9 z. c, K& E! b                .platform_data = &da850_evm_tl_leds_pdata,
. ^9 A! G( X! @6 h# U) g* e( v                .release = led_dev_release,: D' P$ F& s7 V( [/ v: ^/ m- ^
        }
* T4 c2 {: D# [3 S. L$ ?};. n& z  {8 Z( v
' M) t! ^: f9 o4 _  B( z6 r
static int __init led_platform_init(void)0 o- y0 V, j1 Q+ d7 P
{1 M5 n7 u; V% x* |
        int ret;+ E  r- }% k" Q3 H- y& G  i2 U
#if 0
5 V' M+ ~, G( o& R- S4 ^6 S! t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ L9 ~0 T; d% W& f# x( v        if (ret)
' `  Y! f8 y# }. e6 R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 g$ f3 i, V& {& V% z% q1 K9 a2 W# B                                "%d\n", ret);
4 C6 `# M6 c, s* S. Y#endif
- z6 k1 i& t; X: i7 V9 ?. i        ret = platform_device_register(&da850_evm_tl_leds_device);3 {/ m5 y2 c: J8 a
        if (ret)
1 r" o; j* v! k                pr_warning("Could not register som GPIO expander LEDS");6 G4 P1 \( Q( F( ]  b7 P( W( H
        else
: C3 n* g2 j) \% H/ y                printk(KERN_INFO "LED register sucessful!\n");+ ]. \. X3 n, r7 H) ^
+ ?4 ]) [. P5 P+ W5 a+ X
        return ret;
$ j6 g( z" V- L: ]$ n, p}' B# D. W! y+ i6 b: T# A# l

4 _* Y0 F! K5 y4 l6 k. Rstatic void __exit led_platform_exit(void)
$ T# f+ k( }* r& T1 E' e+ c# S5 |{
7 [7 R% T3 a4 ~0 n. y% s' S        platform_device_unregister(&da850_evm_tl_leds_device);
# C5 D! U, v$ f9 l' S( V5 g1 p* X2 X/ U
        printk(KERN_INFO "LED unregister!\n");+ y+ M0 S& K. m$ b/ I( R
}
/ |) ~- |6 R/ ~. ~8 v
- @! q" h# `+ V/ ?/ n, W. Jmodule_init(led_platform_init);0 z# g7 t- H% g* c9 |8 x& p
module_exit(led_platform_exit);
2 P: A0 j( b' |( o3 V6 a; }  }9 ~0 L
9 o4 {% {( M* P* wMODULE_DESCRIPTION("Led platform driver");
6 u% [9 s1 A- EMODULE_AUTHOR("Tronlong");* O& ^# T/ H) E0 f8 {- o5 l
MODULE_LICENSE("GPL");
2 g0 ]5 m8 o0 m) `3 \  _3 U- x; w  e6 \; N% G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-24 00:11 , Processed in 0.043916 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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