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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 X  p- w' E& M
#include <linux/init.h>2 s8 @$ i. q; U
#include <linux/module.h>
7 T/ I, z, T, U- v1 i  ~( `#include <linux/kernel.h>
* A3 a% L( F" z/ \+ ?; A( a  f#include <linux/types.h>0 {* _% q7 k4 X' [$ n
#include <linux/gpio.h>
5 s, f/ d% }4 H- p% Y- h#include <linux/leds.h>% l/ |0 b  e4 X' i3 Z; \4 Z* C
#include <linux/platform_device.h>* g" I2 q; B3 `. U  n! `. V0 r
1 T9 I2 h# }( Q2 c5 `
#include <asm/mach-types.h>
* J: x* L/ ~8 ^, W4 L+ f0 o1 Q#include <asm/mach/arch.h>
4 q- u& O/ A4 q* {3 L/ t8 a#include <mach/da8xx.h>
% t5 Z9 V, b9 J#include <mach/mux.h>: B- E! e1 }1 k; N. @

0 n% W% ^+ a/ h  z- q7 l. b( q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 {8 [  l( q* u+ s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 ~# |/ {  u& ]" }3 C! x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" r  g; l+ \4 G% b' ~$ r
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ P/ z  u0 G4 C( p! M+ d' s! n( |4 r

$ Y5 {$ }. \- Q# O" M/* assign the tl som board LED-GPIOs*/
, i4 i4 Y3 T5 F' _9 N7 A1 K7 ]* hstatic const short da850_evm_tl_user_led_pins[] = {
( E; m) b# ~1 L7 o        /* These pins are definition at <mach/mux.h> file */( b) b9 {1 Y1 |0 r
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% l! S; S$ u5 B2 \+ o        -1
0 w5 ?7 j! M2 I! D: p};
+ f- A( r. ?4 @, ^) \* g' K* P: v3 }, B' B& Q5 g  Q% E6 Q' p
static struct gpio_led da850_evm_tl_leds[] = {
. i, T2 F7 n2 [        {# {4 m- D  ^. S% A
                .active_low = 0,8 h% q* N2 z, k/ n) _( m. o# t
                .gpio = DA850_USER_LED0,
; y4 X2 M6 t; I/ T                .name = "user_led0",: a/ F0 N' m! o0 Q7 A! a
                .default_trigger = "default-on",+ v. T) ~3 I$ s5 a; a' C, p# X
        },2 H/ {5 W/ T: ~4 g: C2 m" j
        {
- l" l5 P4 G. D/ l" V0 t* c                .active_low = 0,
% n/ Q( b7 U. m" O, `) e                .gpio = DA850_USER_LED1,
, \% z& U/ O& V: L                .name = "user_led1",
1 J1 S  A2 U& ?# U: @9 g1 V9 _                .default_trigger = "default-on",
7 i5 F' f# s5 E& d! E  R0 j        },
. `% \, y# o# @2 l6 |5 w        {0 `, B; R6 K! S4 [' J8 A
                .active_low = 0,! a5 l; Z7 F0 Z7 `5 O& b5 y
                .gpio = DA850_USER_LED2,4 \* M9 G2 \7 ~. H. X, W, s; k
                .name = "user_led2",) z8 Z( s# t' z# S: ]4 I
                .default_trigger = "default-on",
# W8 f% G, o# Y! L! I$ z        },9 a, I+ C$ ?! y# y. K
        {) X. ]; O1 R/ v: ~; ]9 O) P! w
                .active_low = 0,7 g3 \6 S5 z2 D- Z5 D* }( M
                .gpio = DA850_USER_LED3,$ g& w" N; F" m5 x; j
                .name = "user_led3",
! ?% V" W; V. ?" y$ Y8 V                .default_trigger = "default-on",% A4 d! t$ r1 t6 R9 [
        },) H3 y+ C* P& a! |* R1 t. e
};
* A& u; Y0 d& W* Z( q
: ^' i# T' W2 E! `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. F- C/ u& M* z8 ^" Z        .leds = da850_evm_tl_leds,3 v9 U4 H% `( w4 _$ x
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* T6 j. ^% [3 ?5 P# s3 m};
" g$ `7 Y) l3 q: W3 J
/ ]7 J- I* T: m: u! l2 i9 W, A' v1 X- ?/ Fstatic void led_dev_release(struct device *dev)7 X* h9 W, P3 ]% Z# q& \- ^
{
' n1 a" t) p. V2 |1 L5 p, @& m};
3 i0 ]' c; \2 x; D, ^1 [7 i# ]1 }# R0 t% ]- G' S8 ~3 c( s- L
static struct platform_device da850_evm_tl_leds_device = {
# @0 ~: J; y& [        .name                = "leds-gpio",. d  z6 J, g' p5 s. d
        .id                = 1,
! Y0 \$ k* Y! U9 @; C8 h* I        .dev = {/ E! G' O! E- ]2 M- b% v1 V& D8 n+ i" X
                .platform_data = &da850_evm_tl_leds_pdata,
8 N3 _9 y/ f* q) O! c                .release = led_dev_release,
- ?2 Q: R3 D/ W3 \, Q* x        }4 v* V9 o7 X6 x* j$ D) s) k$ _3 @5 X; i
};
$ s. [( o! x/ J$ e$ A; k5 A. x# A, a: u' Y
static int __init led_platform_init(void)  a, n) m* K5 R; c
{
2 n$ A8 ~* B5 Z' g        int ret;
2 I6 I; X3 h+ ^' B3 O9 d#if 07 s# q. F" p, M% A- G3 w. q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ y0 M! i1 [% o* Y# D0 n4 R1 ^; C        if (ret)
; A( s' n7 n& ]: }7 T" n( {' A                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 q9 M5 Y% p) a
                                "%d\n", ret);/ y! A2 y: Q, |
#endif, F; y3 D- `9 P' @  v' i
        ret = platform_device_register(&da850_evm_tl_leds_device);
* Y- x3 @% v2 c2 j5 `. y/ f) q        if (ret)
* P$ X  `* Z/ C& `3 @/ w& j( Z                pr_warning("Could not register som GPIO expander LEDS");
. j  _- i8 Q6 M- F$ }8 g        else
  R- m4 b5 ~+ _0 z: ~; a                printk(KERN_INFO "LED register sucessful!\n");
8 i1 G8 t" @9 f8 i+ @) n: v& W
7 T6 X" k/ b2 @* Q- U        return ret;
) Y1 J- x& v. S5 U! I9 ]}
7 y& d) \! N3 D0 }0 }2 H
  s# e: V% h0 L  b7 \static void __exit led_platform_exit(void)
5 H+ @1 j8 R( W2 k, @- d' d& X8 I5 A{
# J: O& ^9 `7 k" S' `        platform_device_unregister(&da850_evm_tl_leds_device);
* k& g5 S  r, v# g
% N, V( W! ]/ R) j( ~0 X# r        printk(KERN_INFO "LED unregister!\n");
1 f" K; b# ?; @6 u) {2 H- H# V}8 |) I0 l4 a% s" |8 M* {! ?* ]

- y+ V+ x5 u- F! o% y& N6 Mmodule_init(led_platform_init);! A0 g. {6 X& i  `
module_exit(led_platform_exit);
9 G- K, F7 T; b% F) w6 Y
+ N" _4 m& K  Q- m- RMODULE_DESCRIPTION("Led platform driver");5 F3 |; m+ q3 \7 U1 s& A, b$ f
MODULE_AUTHOR("Tronlong");- y1 r8 r- u; A: w9 [6 b. a
MODULE_LICENSE("GPL");
% N' c+ ^% U/ p9 N0 S+ W- I1 f
9 G( D4 W" _$ J8 w7 E2 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-29 00:49 , Processed in 0.040265 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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